Overview
Cal.com supports integration with major calendar providers:- Google Calendar
- Microsoft Outlook / Office 365
- Apple Calendar (CalDAV)
- CalDAV-compatible calendars
- Availability checking: Cal.com reads your calendars to find free time slots
- Event creation: Bookings are written to your destination calendar
You can connect multiple calendars for availability checking but only one destination calendar for new bookings.
Connecting Calendars
1
Navigate to Calendar Settings
Go to Settings → Calendars from your dashboard
2
Connect Calendar Provider
Click “Connect” next to your calendar provider (Google, Outlook, etc.)
3
Authorize Access
Follow the OAuth flow to grant Cal.com permission to access your calendar
4
Select Calendars
Choose which calendars to check for conflicts (you can select multiple)
5
Set Destination Calendar
Choose which calendar will receive new booking events
Calendar Types
Selected Calendars (Check for Conflicts)
Destination Calendar
- User-level destination: Default calendar for all your bookings
- Event type-level destination: Specific calendar for certain event types
- User-Level
- Event Type-Level
All bookings go to the same calendar unless overridden by event type settings.
Calendar Sync
Cal.com maintains a sync with your connected calendars:Calendar Watch (Push Notifications)
For Google Calendar, Cal.com can subscribe to push notifications:Push notifications allow near-instant availability updates when your calendar changes, providing a better booking experience.
Calendar Cache
To improve performance, Cal.com caches calendar events:Availability Checking
When someone visits your booking page, Cal.com:1
Fetch Events
Retrieves events from all selected calendars (or uses cached data)
2
Calculate Busy Times
Determines which time slots are occupied
3
Apply Schedule
Overlays your availability schedule
4
Apply Buffers
Adds before/after event buffers
5
Show Available Slots
Displays free time slots to the booker
Event Type Calendar Settings
Event types can override user calendar settings:Calendar Permissions
Different calendar operations require different permissions:Read Permission
Required to check availability and view events
Write Permission
Required to create/update/delete booking events
Troubleshooting Calendar Sync
Calendar Not Syncing
1
Check Connection Status
Go to Settings → Calendars and verify the calendar shows as “Connected”
2
Review Permissions
Ensure Cal.com has both read and write permissions to your calendar
3
Reconnect Calendar
Disconnect and reconnect the calendar to refresh credentials
4
Check Sync Errors
Booking Conflicts
If bookings are being created during busy times:- Verify selected calendars: Ensure all your calendars are selected for conflict checking
- Check calendar permissions: Cal.com needs read access to all selected calendars
- Review event status: Only “confirmed” events block time (tentative events don’t)
- Clear calendar cache: Force a fresh sync from Settings → Calendars
Calendar Settings by Priority
Calendar settings are applied in this order (higher priority overrides lower):
- Event type-level destination calendar
- User-level destination calendar
- Event type-level selected calendars (if
useEventLevelSelectedCalendars: true) - User-level selected calendars
Best Practices
Select All Calendars
Connect every calendar where you have commitments to prevent double-booking
Use Event Type Calendars
Send different event types to different calendars for organization
Monitor Sync Status
Regularly check that calendars are syncing without errors
Set Appropriate Buffers
Use buffer time to account for travel or preparation between meetings
Advanced: Calendar Watch
For Google Calendar, push notifications keep availability updated in real-time:maxAttempts, Cal.com falls back to polling.
Related Features
- Availability - Configure your working hours
- Event Types - Set event-specific calendar settings
- Bookings - View events created in your calendar