Microsoft Exchange / Microsoft 365
The Exchange adapter uses the Microsoft Graph API to look up meetings and room bookings in Exchange Online (Microsoft 365).
Prerequisites
- Microsoft 365 with Exchange Online.
- An Entra ID App Registration with Graph API permissions.
- The organization admin must grant consent for the required permissions.
Setup
-
Register an application in Microsoft Entra ID:
- Navigate to Azure Portal → App registrations → New registration.
- Set the redirect URI to
https://<your-atrium-domain>/api/v1/integrations/oauth/callback. - Under API permissions, add Microsoft Graph:
Calendars.Read(to read meetings and room bookings)Calendars.ReadWrite(if room booking is enabled)Place.Read.All(to discover meeting rooms)
- Create a client secret.
- Note the Application (client) ID, tenant ID, and client secret.
-
Admin consent: An organization admin must grant consent for the API permissions. This is typically done in the Azure Portal under Enterprise Applications.
-
Configure in Atrium:
- Navigate to Settings → Integrations → Calendar.
- Select Microsoft Exchange.
- Enter the Application ID, tenant ID, and client secret.
- Click Authorize — you'll be redirected to Microsoft to grant access.
-
Select rooms: After authorization, Atrium discovers available room resources. Select which rooms should be available for meeting room lookup and booking.
How meeting lookup works
At check-in time, Atrium:
- Queries the host's calendar via Graph API for events in a time window around the expected arrival (±30 minutes by default).
- Filters for events that include the visitor (by email) as an attendee or have a matching subject/time.
- Extracts the room resource from the event's
locationfield. - Displays the room on the kiosk completion screen.
Considerations
- Scopes must be complete from the start: Microsoft's consent flow doesn't support incremental scope additions gracefully. Request both read and write scopes during initial authorization, even if you only use room booking later.
- Rate limits: Graph API has per-app and per-tenant rate limits. Atrium batches calendar queries where possible, but high-volume sites (50+ simultaneous check-ins) should monitor their Graph API usage.
- Webhook delivery: For change tracking, Atrium registers Graph API webhook subscriptions. The Atrium server must be reachable from Microsoft's webhook infrastructure (HTTPS on a public URL). Self-hosted deployments behind strict firewalls may need to use polling instead.