Overview
Connect calendar providers to Recal
Connect your OAuth app so Recal can access users' calendars. Pick your provider:
Prefer to be walked through the console? Paste the coding agent setup prompt into your agent and it will take you step by step, with Recal's requirements already filled in.
Reference
Scopes
| Scope | Access |
|---|---|
write | Read/write calendars and events, and availability |
read | Read-only calendars and events, and availability |
free-busy | Availability only — on Microsoft this grants the same as read |
edit | Deprecated — synonym for write, to be removed |
The levels are a hierarchy: write covers everything read does, and read covers availability,
so a connection made with a higher level never needs a second one to read free/busy. Pick the
lowest level that covers what you need.
free-busy is the narrowest level each provider offers, which is not the same narrowness on both:
on Google it grants calendar.freebusy, which exposes busy intervals and nothing else, while
Microsoft Graph has no free/busy-only permission, so it grants Calendars.Read — the same as
read. If a connection must not expose event titles or attendees, that is achievable on Google
and not on Microsoft.
Upgrading Scopes
Requires users to re-authenticate. Plan before launch.
A connection that has stopped working shows up as authorizationInvalid or insufficientScopes in availability responses — reconnecting a calendar.
Redirect URLs
Configure your production URL in the Recal dashboard.
- Must match exactly in both Recal and your OAuth provider
- Dev/staging: override with
?redirectUrl=http://localhost:3000/callback