Skip to content

Commit 54108d8

Browse files
committed
connector-apple-calendar: event-processing parity with google
Port four event-processing improvements from google-calendar to Apple Calendar: - Batched saveLinks(): collapse per-event saveLink RPCs into one per page via a linksBySource Map. Heavy recurring meetings with many exception instances now write as a single link with N occurrences instead of N+1 separate saves. - Order-independent pending-occurrence drain + seen_master tracking: end-of-batch drain merges pending occurrences into masters present in the batch regardless of arrival order; full-pass terminal orphan flush forwards leftover pendings whose master was seen this pass (runtime upserts onto existing master) and silently drops those whose master never appeared (deleted upstream). Replaces the wholesale clear-all-pendings at finishSync that silently dropped legitimate cross-page cancellations. - Two-pass quick + full initial sync: quick pass with now->+1y front-loads upcoming meetings; full pass walks the 2-year backfill range. Both share one sync lock; phase carried in SyncState. - Hash-keyed description notes: key as description-<sha256-8> so edits produce new notes (prior versions preserved as history) instead of overwriting in place. Apple ICS CREATED is per-spec stable across edits, so firstSeenAt isn't needed here (unlike Outlook/Google).
1 parent d5eb836 commit 54108d8

1 file changed

Lines changed: 338 additions & 78 deletions

File tree

0 commit comments

Comments
 (0)