Integration Guide
1. Initial setup
Create an API Key in the Recall dashboard. This will be used for API authentication.
2. Setup OAuth Clients for Providers
Setup OAuth Providers for the calendar platforms you are planning to support.
Keep note of CLIENT_ID
& CLIENT_SECRET
values as they will be required later to connect calendar in Recall.
3. Authorize User & Get Refresh Token
At this point you should implement the OAuth 2.0 authorization code flow in your system.
- Redirect the user to the authorization endpoint for a specific provider.
- Receive a callback from the provider on successful connect.
- Use the authorization code to retrieve a
refresh_token
. Refer to provider specific guides below
4. Create Calendar
With the above data you can now proceed to Create Calendar in Recall. The following parameters will be needed
oauth_client_id
: (obtained in Step 2)oauth_client_secret
(obtained in Step 2)oauth_refresh_token
(obtained in Step 3)platform
(google_calendar
ormicrosoft_outlook
)
This will create a calendar in Recall which represents the primary calendar of the account that authorized the connection. Keep a hold of the id
returned in the response. You can attach it to an entity that suits the business logic of your application.
OAuth refresh tokens are long lived
The refresh token you provide to Recall when creating a calendar is long-lived and allows us to manage refreshing a user's OAuth token for you automatically.
A user's refresh token will only need to be updated if it's revoked by the user, which occurs in one of two cases:
- The user manually revokes permissions (e.g. in Google or Microsoft settings)
- The user changes their password and their user settings requires them to re-authenticate OAuth permissions
When a user's refresh token is revoked, the calendar will become disconnected. In this case, the user should go through the OAuth flow and you should call Update Calendar to update the refresh token accordingly.
5. Process Web hooks
Once a calendar has been created you should start receiving web hooks related to updates for it via Svix. Refer to this guide on the type and how to handle each web hook.
6. Fetch Calendar Events
You can use the List Calendar Events to fetch the list of events for a specific calendar.
7. Schedule bots to calendar events
There are a couple of options here:
Recall Managed Scheduling (Recommended)
Use Recall's scheduling endpoints to add/remove bots from calendar events with deduplication support. Please refer to the Scheduling Guide for more details.
Self Managed Scheduling
With this option the API consumers can use the existing Create Bot & Delete Bot endpoints in combination with meeting_url
& start_time
values from a calendar event to add/remove bots to calendar events. This means the API consumer is responsible for managing the relationship b/w bots and calendar events completely on their end and handles cases such as de-duplication, event re-schedule/delete etc.
Updated 4 months ago