Managing meeting room bookings in Microsoft 365 can be very frustrating. Especially if you want a specific group of people to book a room without restrictions, while everyone else gets an automatic decline.
Unfortunately, the Exchange Admin Center doesn’t support this scenario. It only allows you to assign delegates who manually approve or decline meeting requests. Not exactly ideal for a busy workplace.
In this post, we’ll show you how to configure meeting room booking permissions exactly as you want using PowerShell.
The Goal
Allow a select list of users (e.g., department managers) to book a specific room without needing approval.
Automatically decline any booking requests from users not on this list.
No manual intervention by delegates.
Why Can’t I Do This in the Exchange Admin Center?
The Exchange Admin Center (EAC) lets you:
Assign delegates to approve/decline meeting requests.
Set global options, such as “accept or decline all” requests.
But it does not allow you to:
Specify a list of users who can book a room automatically.
Automatically reject requests from everyone else.
This level of control requires Exchange Online PowerShell.
⚡ Configuring Room Booking Permissions with PowerShell
Here’s how to achieve it:
1️⃣ Open an Exchange Online PowerShell session:
Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com
2️⃣ Set the booking permissions for the meeting room:
# Replace room-cph-2.4 with your room mailbox name
# Replace user emails with the ones allowed to book directly
Set-CalendarProcessing room-cph-2.4 `
-BookInPolicy "ole.romer@yourdomain.com","hans.orsted@yourdomain.com" `
-AllBookInPolicy $false `
-AllRequestInPolicy $false `
-AllRequestOutOfPolicy $false `
-AutomateProcessing AutoAccept
Here’s what these settings mean:
| Parameter | Description |
|---|---|
| BookInPolicy | Users allowed to book the room directly. |
| AllBookInPolicy | If True, anyone can book without approval (we set False). |
| AllRequestInPolicy | If True, anyone can send requests for approval (we set False). |
| AllRequestOutOfPolicy | If True, requests outside policy go to delegates (we set False). |
| AutomateProcessing | AutoAccept makes the room mailbox process requests automatically. |
3️⃣ Verify the configuration:
PS C:\> Get-CalendarProcessing room-cph-2.4 | fl *delegates,*policy,*processing
ForwardRequestsToDelegates : False
ResourceDelegates : {}
RequestOutOfPolicy : {}
AllRequestOutOfPolicy : False
BookInPolicy : {/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)
/cn=Recipients/cn=f92e4fc8ee174c2c9967bbb1f1ae2d55-ole.romer,
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)
/cn=Recipients/cn=f4c177fa6bbf4b72a55192fa611bb051-hans.c.orst}
AllBookInPolicy : False
RequestInPolicy : {}
AllRequestInPolicy : False
AutomateProcessing : AutoAccept Observe that the delegates are converted to X. 500 values, which can be quite annoying to decipher.
Use the following script to translate the delegates into DisplayName values:
PS C:\> (Get-CalendarProcessing room-cph-2.4).BookInPolicy | % { (Get-Recipient $_).DisplayName }
Ole Romer
Hans Christian Orsted A good third-party tool, like EasyEntra, will automatically present configurations in a user-friendly format:
✅ Validating the Room Configuration in Outlook
Once you’ve configured the room mailbox, the most solid way to validate it is directly from Outlook:
1️⃣ Create a test meeting using a user who is in the delegate list.
2️⃣ Repeat the test with a user not in the delegate list.
If everything is configured correctly:
The first request should be accepted automatically.
The second request should be declined automatically with a notification to the sender.
This quick test ensures your BookInPolicy and related settings are working as expected, before rolling it out to production.
A Simpler Way: EasyEntra
While PowerShell is great for automation and bulk editing, it’s terrible for ad-hoc first-level user support:
Requires PowerShell experience.
Prone to typos or errors that could disrupt room bookings.
Difficult to delegate to junior IT staff.
With EasyEntra, you can isolate senior IT from (what should be) trivial first-line user support:
Manage meeting room permissions via a user-friendly GUI.
Assign or remove users from booking policies in seconds.
Avoid PowerShell scripts entirely.
Enable even non-technical staff to maintain room access rules confidently.
💡 EasyEntra is FREE when managing tenants with fewer than 25 licensed users.
Summary
Configuring meeting room access for specific users is possible, but not via the Exchange Admin Center. You’ll need PowerShell (or a smarter tool like EasyEntra).
Read more about how to get the most out of your meeting rooms.
Download EasyEntra today to instantly transform the way you manage hybrid and cloud-only Entra ID.
“One of the best products I’ve used.” – CIO, Mirick Law, United States
“We really love working with EasyEntra.” – Head of IT, IKN GmbH, Germany
“EasyEntra has significantly streamlined our workflow, simplifying everything. It feels almost like a revolution.” – IT Manager, Arjeplog Kommun, Sweden