Google Calendar Availability Sync
Personal Project, Fall 2025
A Google Apps Script to automatically sync events from multiple source calendars to a single “Availability” calendar. This script creates customizable availability blocks (e.g., “Personal”, “Work”, “Class”) based on the source calendar, allowing you to share your availability without revealing the private details of your appointments.
Features
- One-Way Sync: Copies events from multiple source calendars to one destination calendar
- Privacy-Focused: Creates customizable events, hiding original titles, descriptions, and guest lists while showing relevant availability context
- Per-Calendar Event Naming: Assigns custom event titles based on the source calendar (e.g., “Personal”, “Work”, “Class”) instead of generic “Busy” titles
- Automatic Title Updates: Gradually updates existing event titles to match new naming configurations without hitting API rate limits
- Robust Reconciliation: Accurately creates and deletes events, preventing duplicate or orphaned entries
- Automatic Deletion: Removes availability blocks when the original event is deleted or rescheduled
- Manual Event Protection: Allows manually added events on the destination calendar without script interference
- Automatic Nightly Reset: Sync cursor resets every morning, ensuring long-term accuracy
How It Works
- Configure your source calendars (personal, work, school, etc.)
- Create a destination “Availability” calendar
- The script syncs events every 15-30 minutes via Google Apps Script triggers
- Share the public URL or iCal address of your availability calendar with others
Technologies Used
- Google Apps Script
- JavaScript
- Google Calendar API
