No description
Find a file
randogoth bc64f19211 Push local changes up to Google, completing the Google leg
Mirrors are created with events.import, updated and deleted with
sendUpdates=none, so a write to an aggregate cannot mail anyone about a meeting
that was already invited from its source.

The import question the plan flagged is settled from Google's own API discovery
document rather than by guesswork: events.import accepts no sendUpdates parameter
at all, while insert, update and delete all do, and it is documented as adding "a
private copy of an existing event". A method with notification behaviour would
need that control. Confirmed live that attendees survive an import with their
response statuses intact.

Testing against the real API caught a defect that unit tests could not: the first
push dropped VALARM entirely and Google substituted the calendar's default
reminders. Alarms are never stripped by decision, so they now map to and from
Google's reminder overrides in both directions, with relative TRIGGER durations
converted to whole minutes. A trigger Google cannot express — absolute, or after
the start — is dropped rather than guessed at.

Known gaps recorded in TODO.md rather than papered over: a series' exceptions are
not pushed, since Google models those as separate events against an existing
series; and a failed Google pull still aborts the cycle, which is safe but stops
the CalDAV side too.

121 tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 13:27:12 +03:00
src Push local changes up to Google, completing the Google leg 2026-09-10 13:27:12 +03:00
.gitignore Add Google OAuth, and let feed URLs come from a secret command 2026-09-10 13:01:06 +03:00
Cargo.lock Pull Google calendars into their local vdirs 2026-09-10 13:19:34 +03:00
Cargo.toml Pull Google calendars into their local vdirs 2026-09-10 13:19:34 +03:00
devbox.json Scaffold calcalist: repo, toolchain, config model and doctor 2026-09-10 09:31:32 +03:00
devbox.lock Scaffold calcalist: repo, toolchain, config model and doctor 2026-09-10 09:31:32 +03:00
SPECS.md Scaffold calcalist: repo, toolchain, config model and doctor 2026-09-10 09:31:32 +03:00
TODO.md Push local changes up to Google, completing the Google leg 2026-09-10 13:27:12 +03:00