Calendar V1 Integration Guide
Set up Calendar V1 so users can connect calendars and auto-record synced meetings.
Recall-Managed Bot Scheduling
The calendar integration allows every unique user in your app to connect their Google or Microsoft calendars and have Recall bots join their meetings automatically.
You can integrate Recall APIs directly into your Web/Mobile applications.
Step 1: Generate a calendar auth token
This token authenticates all subsequent requests to the Calendar Integration API. You can generate a token using the Create Calendar Authentication Token endpoint as shown below.
curl --request POST \
--url https://us-east-1.recall.ai/api/v1/calendar/authenticate/ \
--header 'Authorization: RECALL_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json'The token is stateless, expires after 24 hours, and can be generated multiple times for the same user. Keep the following in mind:
- The
user_idfield should remain consistent for a specific user across multiple calls, failure to do so can result in duplicate calendar users and multiple bots joining calls.
Calendar auth token best practices example
We recommend generating calendar auth tokens through a server-side endpoint rather than calling this endpoint directly from your client application. This prevents your Recall API key from being exposed in browser or mobile app code.
For example:
- Your client requests a token from your backend:
POST /api/calendar/auth-token- Your backend calls Recall using your private API key:
POST https://us-east-1.recall.ai/api/v1/calendar/authenticate/
Authorization: YOUR_RECALL_API_KEY
Content-Type: application/json
{
"user_id": "user_123"
}- Your backend returns the generated calendar auth token to the client.
See the example proxy implementation.
Step 2: Initiate a user's calendar connection
Set up OAuth clients for each supported calendar platform, then redirect users to the appropriate calendar connection URL. See the code example.
Google Calendar Setup
- Go to the Google API console
- Once inside, create a Google Project if you have not already
- Inside the Google Project, enable the Google Calendar API
- Once complete, follow this Google Calendar Setup guide
Microsoft Outlook Calendar Setup
- Follow this Microsoft Outlook Calendar Setup guide
Step 3: Fetch upcoming meetings
Once a user's calendar is successfully connected. You can retrieve their upcoming meetings via the List Calendar Meetings API endpoint by passing the calendar auth token as x-recallcalendarauthtoken header in the request.
The calendar integration automatically syncs updates to calendar events in near real-time, so every subsequent request to the list endpoint should give you the latest data.
For meetings that will be recorded by Recall, the meeting object will have the bot_id attribute populated. That bot will be scheduled to join the meeting.
Step 4: Update recording preferences
Allow a user to update their Recording Preferences using the API. For more detailed documentation on that endpoint, see Calendar V1 Auto Recording Logic & Preferences for more details.
Step 5: Configuring calendar bots
- This step is optional since you can accept the default bot configuration initially.
- Bots will join 2 minutes before the scheduled start time of the meeting.
Updating your bot configurationAll options available in the Create Bot API endpoint are supported in Calendar V1
You can update your Calendar V1 Create Bot configuration under the "bot config" tab in the dashboard:
Bot config examples:
- In Calendar V1, any of these configurations below would apply to all calendar bots scheduled from this integration
For more granular control over bot configuration, such as per-user or per-event settings, consider the Calendar V2 integration. Note, this is a completely different integration than Calendar V1, so make sure you read the Calendar V1 vs V2 section.
Example 1: Setting an image for calendar bots
{
"automatic_video_output": {
"in_call_recording": {
"kind": "jpeg",
"b64_data": "base64_jpeg_data"
},
"in_call_not_recording": {
"kind": "jpeg",
"b64_data": "base64_jpeg_data"
}
}
}Example 2: Enabling real time transcription for calendar bots
{
"recording_config": {
"transcript": {
"provider": {
"recallai_streaming": {}
}
},
realtime_endpoints: [
{
"type": "webhook",
"events": ["transcript.data"],
"url": "..."
}
]
},
}
Note:PATCHing not supportedSince Calendar V1 bots get their configuration from this preset as they join meetings, PATCH requests to Update Scheduled Bot won't have an effect on the bot configuration.
Updated 5 days ago
