Google Calendar event projection via the outbox queue
- Dominant language
- HTML
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 34m
- Merged PRs (30d)
- 23
Description
The second outbound projection, using the service-account pattern proved in phase 0. Writes go only to the Orrey calendar — **never to the user's Social calendar.**
- [ ] Queue message shape for "project session N to Google"; same producer as the Discord event projection.
- [ ] Deterministic base32hex event id per session, stored in `calendar_links.gcal_event_id`.
- [ ] Upsert: `insert`, and on `409` `update`. Fingerprint the content; skip when unchanged; record `synced_at` / `last_error`.
- [ ] Service-account JWT → access token, cached for its lifetime in the Worker (no refresh token exists to expire).
- [ ] Idempotent on redelivery; failures to the DLQ with `last_error` set.
Echo-loop prevention (the Google *return* path) is phase 7; the fingerprint stored here is what makes that possible later.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the existing Discord event projection and its shared producer, then trace the outbox queue and Worker boundaries. Use calendar_links.gcal_event_id, synced_at, and last_error as the persistence anchors; done means idempotent Google Calendar writes to the Orrey calendar, cached service-account access, unchanged-content skips, and DLQ handling on failure.
Written by the indexing model from the issue text.
Assessment
- Domain
- cloud, databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100