calcom/cal.diy · warning · NotFoundException
Meeting not found
Error message
Meeting not found
What it means
GoogleCalendarService.getEventDetails throws NotFoundException('Meeting not found') when the Google Calendar API returns a successful response with no event.data. This branch is reached when the calendar.events.get call resolves but yields an empty body — the event id does not exist in the target calendar.
Source
Thrown at apps/api/v2/src/modules/cal-unified-calendars/services/google-calendar.service.ts:58
const ownerUserEmail = bookingReference?.booking?.user?.email;
// Get authenticated calendar instance
const calendar = await this.getAuthorizedCalendarInstance(
ownerUserEmail,
bookingReference.credential?.key,
bookingReference.delegationCredential
);
try {
const event = await calendar.events.get({
calendarId: bookingReference?.externalCalendarId ?? "primary",
eventId: bookingReference?.uid,
// fields: "id,status,created,updated,summary,description,location,creator,organizer,start,end,attendees,conferenceData"
});
if (!event.data) {
throw new NotFoundException("Meeting not found");
}
return event.data as GoogleCalendarEventResponse;
} catch (error) {
throw new NotFoundException("Failed to retrieve meeting details");
}
}
async updateEventDetails(
eventUid: string,
updateData: UpdateUnifiedCalendarEventInput
): Promise<GoogleCalendarEventResponse> {
const bookingReference =
await this.bookingReferencesRepository.getBookingReferencesIncludeSensitiveCredentials(eventUid);
if (!bookingReference) {
throw new NotFoundException("Booking reference not found");
}
View on GitHub (pinned to 176037d0af)
Solutions
- Verify the event still exists in the Google Calendar UI for the credential's account.
- If the event was deleted, clear or recreate the booking reference accordingly.
- Check externalCalendarId on the reference — if stale, update it to the correct calendar id.
Defensive patterns
Strategy: try-catch
Validate before calling
// Before fetching details, ensure the external event still exists
const exists = await calendar.events.get({ calendarId, eventId }).then(r => !!r.data).catch(() => false);
if (!exists) throw new Error('Meeting no longer exists in Google Calendar'); Try / catch
try {
return await api.v2.calUnified.getEvent(eventUid);
} catch (err) {
if (err?.statusCode === 404 && /Meeting not found/i.test(err?.message)) {
// mark the booking reference as externally-deleted and move on
}
throw err;
} Prevention
- When an event is deleted in Google, clear the booking reference accordingly.
- Keep externalCalendarId on the reference in sync with the live calendar.
- Handle 'event gone' as a permanent state, not a retryable one.
When it happens
Trigger: The booking reference exists, but the external Google Calendar event it points to (bookingReference.uid in externalCalendarId) has been deleted or moved outside the queried calendar.
Common situations: The event was deleted directly in Google Calendar after booking; the event was moved to another calendar; the externalCalendarId on the reference is stale (calendar deleted/recreated).
Related errors
- Booking reference not found
- Failed to retrieve meeting details
- Failed to update meeting
- Failed to update meeting details
- Booking with uid ${bookingUid} not found
AI-assisted analysis of calcom/cal.diy@176037d0af (2026-08-12).
Data as JSON: /api/errors/b8227b96bdb84ed4.
Report an issue: GitHub.