Connecting a calendar
A calendar source is attached to one board, not shared across boards — it exists to pull interview events into candidate rows on a recruitment board. It needs its own Microsoft Graph token and a wider permission scope than the org-directory connection uses.
A connected calendar, ready to sync interviews.
What it does, and where the data comes from
Once connected, Sync now pulls the calendar owner's events in a window from 14 days back to 60 days ahead, keeps the ones that look like interviews and aren't cancelled, and materializes each as a candidate row — deduplicated by the calendar event's own id, so re-syncing never creates duplicates. Each candidate's Interview date column is set from the event.
How to connect a calendar
- Open Microsoft Graph Explorer and sign in with the Microsoft account whose calendar you want.
- Open Modify permissions and consent to Calendars.Read. A default Graph Explorer token only carries
User.Read, which returns 403 on calendar reads until you add this scope. - Run
GET /me/calendarViewonce in Graph Explorer and confirm it returns 200, not 403 — that's your signal the token actually has calendar access before you paste it. - Copy the token from the Access token tab, paste it into the board's calendar source, set the Calendar owner (email / UPN), and click Connect.
- Click Sync now.
User.Read. If you skip the "Modify permissions" step, the connection saves fine but every sync fails with a permissions error — the fix is re-consenting to Calendars.Read and pasting a new token, not recreating the connection.Under the hood
The pasted token lasts about an hour, same as the org-directory paste flow — re-paste to re-sync once it expires. A sync failure is classified before it's shown to you: a 403 reads as "missing the Calendars.Read permission — go re-consent," while an expired/revoked token reads as "paste a fresh Graph token," so you're not left guessing which one it is.
If it looks wrong
| Symptom | Cause | Fix |
|---|---|---|
| "That token wasn't accepted by Microsoft" | Pasted value isn't a valid access token | Copy a fresh Access token from Graph Explorer's Access token tab |
| Last sync failed with a permissions error | Token only has User.Read, not Calendars.Read | Re-consent to Calendars.Read in Graph Explorer, then paste a new token |
| Sync succeeds but no candidates appear | No events in the ±14/60-day window look like interviews, or they're marked cancelled | Confirm the event subjects read as interviews and aren't cancelled in the calendar |
Related
- Syncing your org directory from Microsoft Graph — the other Graph-backed source, scoped per org tree instead of per board.
- Boards — recruitment board templates and pipeline stages.
Last updated