Design Google Calendar
MediumSystem design · Collaboration
Design a calendar service. Users create single and recurring events, invite attendees (including people on other providers), view their calendar across devices, look up when others are free, and receive reminders.
In scope: the event and recurrence model, time zones, attendee responses, free/busy lookup with privacy, incremental sync, and reminders. Out of scope: video-call integration and meeting-room resource booking.
Requirements
- Store recurring events as rules plus per-occurrence overrides, with daylight saving and time zone correctness
- Free/busy across many calendars without leaking event details
- Deliver invitations, updates, cancellations and reminders reliably, including to external calendars
- Incremental, offline-capable sync using a per-calendar change log and sync tokens