Microsoft 365
Migrating Room Mailboxes
from Exchange to Microsoft 365
Move room resource mailboxes from on-premises Exchange or hybrid to Microsoft 365 — and point your room displays at the new mailboxes without losing bookings.
Short answer: migrate room mailboxes the same way you migrate user mailboxes — but treat calendar processing as a separate, manual step. Auto-accept, booking windows, and delegate settings do not always survive the move, and duplicate resource objects from a botched hybrid sync are the number-one cause of double bookings after cutover. Verify Get-CalendarProcessing on every room after migration, then point your displays at the cloud mailboxes.
Moving to Microsoft 365 is well-trodden ground for user mailboxes. Room mailboxes are quieter, so they get less attention — and that is exactly why they break. Nobody notices a room's scheduling policy silently reset to None until meetings stop auto-accepting and the calendar fills with unprocessed invitations.
This guide walks through a clean cutover for room resources specifically, the pitfalls that bite IT admins, and how to reconnect your wall-mounted displays afterward.
Before you start: inventory every room resource
You cannot migrate what you have not counted. On your on-prem Exchange server, list every room mailbox and its current calendar processing settings so you have a known-good baseline to restore against.
Get-Mailbox -RecipientTypeDetails RoomMailbox |
Select Name, PrimarySmtpAddress
For each room, export the calendar processing config that actually matters:
Get-Mailbox -RecipientTypeDetails RoomMailbox | ForEach-Object {
Get-CalendarProcessing -Identity $_.PrimarySmtpAddress |
Select Identity, AutomateProcessing, AllBookInPolicy,
BookingWindowInDays, MaximumDurationInMinutes,
AllowRecurringMeetings, ResourceDelegates
} | Export-Csv room-processing-baseline.csv -NoTypeInformation
Keep that CSV. It is your recovery plan if the migration flattens a setting.
The three migration paths
| Path | Best for | Key risk |
|---|---|---|
| Cutover migration | Small orgs, all mailboxes at once | Downtime window; room settings reset |
| Hybrid (staged) | Larger orgs migrating in waves | Duplicate room objects from directory sync |
| Recreate manually | Few rooms, messy legacy config | Losing historical bookings |
For a handful of rooms with tangled legacy policies, recreating them fresh in Microsoft 365 is often faster and cleaner than migrating baggage. See our room mailbox setup guide for the from-scratch path. For dozens of rooms, migrate the mailbox data and reapply policies from your baseline CSV.
Pitfall 1: duplicate room mailboxes
In a hybrid deployment, Azure AD Connect (now Entra Connect) syncs your on-prem directory to the cloud. If a room object exists both as a synced on-prem resource and as a cloud-created mailbox, you get two calendar objects competing for the same room. Bookings land on one, the display reads the other, and the room looks free when it is not.
Before cutover, confirm each room exists exactly once and that its source of authority is what you expect:
Get-Mailbox room-101@yourcompany.com |
Select Name, IsDirSynced, RecipientTypeDetails
After migration, IsDirSynced should reflect your intended end state. If you are fully cloud, decommission the on-prem object rather than leaving it to re-sync a duplicate.
Pitfall 2: calendar processing resets
This is the big one. When a room mailbox moves, AutomateProcessing can revert to None — meaning the room stops auto-accepting entirely. Invitations pile up unprocessed and the room appears permanently "pending."
Reapply your baseline immediately after cutover:
Set-CalendarProcessing -Identity room-101@yourcompany.com `
-AutomateProcessing AutoAccept `
-BookingWindowInDays 180 `
-MaximumDurationInMinutes 480 `
-AllBookInPolicy $true
Then re-verify against your CSV. Do not assume — check every room. Delegate assignments (ResourceDelegates) and approval policies are especially prone to being dropped.
Pitfall 3: permissions and the display account
Room displays need to read the room calendar, and for the smoothest instant-booking they need direct access to the mailbox. Migration can strip Full Access grants. After cutover, re-grant access to whatever account your displays sign in with:
Add-MailboxPermission -Identity room-101@yourcompany.com `
-User display-service@yourcompany.com `
-AccessRights FullAccess -InheritanceType All
This matters because The Room Display talks to Microsoft 365 over the Microsoft Graph API using OAuth (there is no Microsoft service-account equivalent — that is Google-only). Full Access on the mailbox is what lets a booking made at the panel appear instantly rather than waiting on an invitation round-trip.
Cutover timing
Schedule the room migration for a low-traffic window — a Friday evening or weekend — and watch for these:
- Propagation delay. New or moved rooms can take up to 24–48 hours to appear consistently in Room Finder and Graph. Do not panic if a room is invisible an hour after cutover.
- In-flight recurring meetings. Long recurring series can behave oddly across the move. Spot-check a few high-use rooms for orphaned or duplicated occurrences.
- Freeze new bookings. If you can, ask staff to avoid booking the migrating rooms during the window.
Repointing your displays
Once mailboxes live in Microsoft 365 and calendar processing is verified, reconnecting the panels is quick. On each iPad running The Room Display:
- Open the app and go to settings.
- Select Microsoft 365 as the platform and sign in via OAuth.
- Pick the migrated room mailbox from the list.
- Confirm the display shows live status and upcoming meetings.
Because the app is local-only — it reads your calendar directly with no third-party cloud in between — there is no external sync to reconfigure. The moment the mailbox answers Graph, the display is current.
Frequently asked questions
Do room bookings and history survive the migration?
Existing calendar items migrate with the mailbox in cutover and hybrid moves. If you recreate rooms from scratch instead, historical bookings do not carry over — only future setup does.
Why did rooms stop auto-accepting after we migrated?
Almost always AutomateProcessing reset to None. Run Get-CalendarProcessing on the affected rooms and set it back to AutoAccept. This is why keeping a pre-migration baseline CSV is essential.
Can I run displays during a hybrid migration?
Yes, but point each display at the mailbox in its current authoritative location. Once a room is fully in the cloud, repoint that display to the Microsoft 365 mailbox to avoid reading a stale on-prem copy.
How long until migrated rooms show up in Room Finder?
Up to 24–48 hours for full propagation. If a room is still missing after that, check room list membership and place metadata — see the fix guide below.
Does The Room Display need a service account for Microsoft 365?
No. Microsoft 365 uses OAuth via Microsoft Graph only; there is no Microsoft service-account equivalent. Service accounts are a Google Workspace concept.
Related guides
- How to Set Up Microsoft 365 Room Mailboxes
- Room Mailbox Permissions and Delegation Explained
- Room Not Showing in Outlook's Room Finder? Here's the Fix