Optionalgraph: IGraphCalendarLikeThe injected Graph 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 Microsoft Graph calendars over an injected IGraphCalendarLike surface, so it builds + unit-tests with no Graph SDK install and no network.
Pages a Graph delta poll: starting from
sinceCursor(a prior@odata.deltaLink), it follows@odata.nextLinkpage-to-page, normalizing every event via normalizeGraphEvent, until the surface returns a@odata.deltaLink— which becomes the CalendarPollResult.NextCursor for the next poll. Credentials are resolved upstream (the host binds IGraphCalendarLike with a Graph 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 so a misconfigured deployment fails loudly.
Remarks
TODO (production): bind
@microsoft/microsoft-graph-client(an optionalDependency, loaded only when a Graph-backed identity is configured), request UTC viaPrefer: outlook.timezone="UTC", and inject it as IGraphCalendarLike.