Google Calendar Availability Sync
Personal Project — Summer 2025
This Google Apps Script solves a common scheduling problem: sharing real-time availability without exposing the details of personal or work calendars. It pulls events from multiple source calendars, strips out titles, descriptions, and guest lists, and writes consolidated, generically-labeled busy blocks to a single “Availability” calendar that can be shared with scheduling tools like Calendly — including the availability page on this site.
Under the hood, it runs as a state-based reconciliation pipeline on a time-driven trigger: it filters out declined and free/transparent events, splits multi-day or all-day events into per-day timed segments so booking tools treat them as busy, merges overlapping slots from different calendars, and diffs the result against the destination calendar using metadata tags to create, update, or delete events — with exponential backoff for API rate limits and dynamic timezone detection.
Highlights
- Privacy-preserving sync: real event details are replaced with generic availability labels
- Merges and consolidates overlapping events across multiple source calendars
- Splits multi-day/all-day events into per-day busy blocks for booking-tool compatibility
- State-based reconciliation with rate-limit backoff and dynamic timezone handling
- Powers the Availability page on this site