Syncing Calendars
Learn how to sync calendars with the API, and automatically send meeting bots to the right place at the right time
Meeting Baas allows you to automatically sync calendars from Outlook and Google Workspace to automatically deploy bots to scheduled meetings. Here's how to set it up:
Authentication: Get your OAuth credentials
To start syncing calendars, you'll need two sets of credentials:
- Your App's Credentials (Service Level)
- For Outlook: Your app's Microsoft Client ID and Client Secret
- For Google Workspace: Your app's Google Client ID and Client Secret
- End User's Credentials (User Level)
- OAuth refresh token obtained when user grants calendar access to your app
Best Practice: Request calendar access as a separate step after initial user signup. Users are more likely to grant calendar access when it's clearly tied to a specific feature they want to use.
Optional: List Raw Calendars
Before syncing calendars, you can use the List Raw Calendars endpoint to view all your user's available calendars. This is particularly useful when a user has multiple calendars and you need to choose which ones to sync.
Create a Calendar Integration
Create a new calendar integration by calling the Create Calendar endpoint with the previously obtained credentials.
And an optional raw_calendar_ID
to choose which calendar to sync. If this parameter is not provided, Meeting Baas will sync the user's primary calendar.
Managing Calendars
Once authenticated, you can manage your calendars:
- List Calendars: List Calendars - View all your synced calendars
- Get Calendar Details: Get Calendar Details - Check sync status
After initial setup, Meeting BaaS handles all calendar API interactions. You only need to respond to webhook events for calendar changes.
Event Management
Monitor and manage calendar events:
- List Events: List Events - See all upcoming meetings
- Get Event Details: Get Event Details - View meeting info and bot status
Meeting Baas automatically detects meeting links and can deploy bots based on your configuration.
Recording Management
You can schedule or cancel recording events for specific calendar events:
- Schedule Recording: Schedule Record Event - Configure a bot to record a specific event
- Cancel Recording: Unschedule Record Event - Cancel a scheduled recording
When scheduling a recording, the bot will automatically join the meeting at the scheduled time and begin recording based on your configuration.
The recording configuration supports the same options as manual bot deployment:
- Speaker view recording
- Gallery view recording
- Audio-only recording
- Speech-to-text transcription
- Custom bot names and images
- Entry messages
Remember to handle webhook notifications to track the recording status and receive the final recording data. These updates can be used to determine whether to record new or updated meetings.
Webhook Integration
In addition to live meeting events via the Live Meeting Updates, your webhook endpoint will receive calendar sync events with the type calendar.sync_events
. These events notify you about:
- New meeting schedules
- Meeting changes or cancellations
- Calendar sync status updates
Each webhook notification includes:
- An event type of
calendar.sync_events
- A
last_updated_at
timestamp for tracking changes
- Extract the
last_updated_at
timestamp from the webhook payload - Call the List Events endpoint with the
updated_at_gte
parameter equal to thelast_updated_at
timestamp - From there, you can apply your business logic to choose whether or not to record the event, using previously mentionned Schedule Record Event / Unschedule Record Event endpoints.
This allows you to:
-
Track all calendar changes in real-time
-
Decide whether to record new or modified meetings
-
Keep your system synchronized with the latest meeting data
Configure your webhook endpoint to process these real-time updates and implement appropriate retry logic for reliability.
Cleanup
To remove a calendar integration, use the Delete Calendar endpoint.