Keep the familiar calendar experience
People connect accounts, choose calendars and keep creating or changing events in their usual Google or Outlook app. Sync groups carry those changes across connected calendars.
Case study / Freecal
Freecal connects Google and Microsoft Outlook calendars through two-way sync groups, with choices for shared event details and background processing shaped around each provider’s event model.
The context
Work and personal commitments often sit in separate accounts. Keeping a meeting’s time and availability consistent can require repeated edits. Freecal brings selected calendars together while people keep planning in familiar apps.
The engineering challenge
Providers represent recurring events, all-day dates and notifications differently. Sync must distinguish originals from copies, apply sharing choices consistently, and preserve pending changes when processing or provider access is interrupted.
Design + engineering
People connect accounts, choose calendars and keep creating or changing events in their usual Google or Outlook app. Sync groups carry those changes across connected calendars.
Full details carries event information into copies. Busy and Blocked replace the copied title and omit description and location. Overlapping memberships form a connected calendar network.
All-day dates, time zones, native recurring series and changed occurrences have distinct representations. Origin and copy identities guide reconciliation and help prevent changes from circulating repeatedly.
Onboarding examines today across group members before historical and future writes. Fresh changes receive priority while older work continues through durable checkpoints and bounded batches.
A dedicated control worker registers and renews provider subscriptions independently of the data worker. Notifications trigger provider reads, with recovery work available when another check is needed.
Inside the workflow
Accounts · Sync groups · Events · Workers
01
Provider sign-in connects accounts. Selected calendars become members of a sync group, with at least two calendars participating.
02
Full details, Busy and Blocked shape shared copies. The original keeps its details while the group’s mode governs what travels.
03
The model preserves recurring series and occurrence identities, date-only all-day events and time zones. Unsupported or foreign-linked items remain visible for review.
04
Checkpoints and queued batches retain processing intent. Separate data and control workers handle event writes and subscription management.
05
The aggregate view shows original events, with genuine overlaps visible. Calendar visibility preferences remain separate from synchronization membership.
Product scope
Connect Google Calendar and Microsoft Outlook calendars into two-way sync groups.
Choose Full details, Busy or Blocked for the group. Masked copies omit the original description and location.
Keep all-day dates, time zones, recurring series and occurrence changes in their provider-aware forms.
Prioritize current changes while resumable batches and checkpoints retain pending work.
Relevant technical work
The finding
Calendar sync depends on preserving what an event means and retaining the work still waiting to happen.
Discuss a similar move