Optionalcalendar: IGoogleCalendarLikeThe injected Google calendar surface. Omit to preserve the not-bound seam behavior (every poll throws CalendarSourceNotBoundError).
Lists invites for identityValue's calendar that are new since sinceCursor. The adapter is
responsible only for fetching + normalizing — the watcher decides attendee-membership,
join-URL resolution, and dedupe. An adapter SHOULD return only upcoming (future-start) invites
where it can, but the watcher defends against past-start invites regardless.
The agent identity's address (an email, for IdentityType='Email').
OptionalsinceCursor: stringThe cursor returned by the previous poll, or undefined on the first poll.
The new invites + the next cursor.
Production binding for Google Calendar over an injected IGoogleCalendarLike surface, so it builds + unit-tests with no
googleapisinstall and no network.Pages an incremental sync: starting from
sinceCursor(a priornextSyncToken), it followsnextPageTokenpage-to-page, normalizing every event via normalizeGoogleEvent, until the surface returns anextSyncToken— which becomes the CalendarPollResult.NextCursor. Credentials are resolved upstream (the host binds IGoogleCalendarLike with a Calendar client authenticated from the providerConfigurationvia MJ's credential system — never inline).When no surface is supplied it preserves the original not-bound behavior, throwing CalendarSourceNotBoundError.
Remarks
TODO (production): bind
googleapis(an optionalDependency, loaded only when a Google-backed identity is configured) and inject it as IGoogleCalendarLike.