Member Junction
    Preparing search index...

    A normalized calendar invite — the provider-agnostic shape every ICalendarSource adapter returns, regardless of whether it came from Microsoft Graph (/me/events) or the Google Calendar API. The CalendarWatcher consumes only this shape, so adding a new calendar backend never touches the watcher.

    interface NormalizedCalendarInvite {
        Attendees: CalendarInviteAttendee[];
        EndTime?: Date;
        ExternalEventID: string;
        JoinUrl?: string;
        Organizer?: CalendarInviteOrganizer;
        StartTime: Date;
        Subject?: string;
    }
    Index

    Properties

    The full attendee list (normalized). The watcher confirms the agent identity is among them.

    EndTime?: Date

    The meeting's scheduled end time (UTC), when known.

    ExternalEventID: string

    The platform's stable unique id for the event (Graph event.id, Google event.id). The watcher dedupes on this so the same invite never spawns two scheduled bridges.

    JoinUrl?: string

    The online-meeting join URL (Graph onlineMeeting.joinUrl, Google hangoutLink / conferenceData.entryPoints[].uri). May be absent for a non-online event — the watcher skips invites with no join URL (there is nothing to bridge to).

    The organizer (normalized).

    StartTime: Date

    The meeting's scheduled start time (UTC) — becomes the bridge's ScheduledStartTime.

    Subject?: string

    Human-readable subject/title of the meeting, when available (for diagnostics + display).