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.

deckgauge · Board · Source · Calendar
Microsoft calendar
Calendar ownerStatus

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

  1. Open Microsoft Graph Explorer and sign in with the Microsoft account whose calendar you want.
  2. 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.
  3. Run GET /me/calendarView once in Graph Explorer and confirm it returns 200, not 403 — that's your signal the token actually has calendar access before you paste it.
  4. 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.
  5. Click Sync now.
The default-scope trapGraph Explorer's default token only has 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

SymptomCauseFix
"That token wasn't accepted by Microsoft"Pasted value isn't a valid access tokenCopy a fresh Access token from Graph Explorer's Access token tab
Last sync failed with a permissions errorToken only has User.Read, not Calendars.ReadRe-consent to Calendars.Read in Graph Explorer, then paste a new token
Sync succeeds but no candidates appearNo events in the ±14/60-day window look like interviews, or they're marked cancelledConfirm the event subjects read as interviews and aren't cancelled in the calendar

Related

Last updated