When a room mailbox in Exchange Online or on-premises stops automatically accepting meeting requests, users see pending or declined bookings despite the room being available. The auto-accept feature relies on a background process called the Calendar Attendant or a resource booking assistant that processes incoming requests. This article explains the most common causes for the auto-accept failure and provides step-by-step fixes to restore automatic processing for room mailboxes.
Key Takeaways: Restoring Room Mailbox Auto-Accept
- Exchange Admin Center > Recipients > Resources > Room Mailbox > Booking Options: Verifies the Automatically process meeting requests and Decline conflicting meeting requests checkboxes are enabled.
- Set-CalendarProcessing PowerShell cmdlet: Enables or disables the AutomateProcessing parameter with the AutoAccept value to force the Calendar Attendant to run.
- Get-CalendarProcessing PowerShell cmdlet: Checks the current configuration of the room mailbox to confirm the auto-accept settings are applied correctly.
Why the Room Mailbox Auto-Accept Stops Working
The auto-accept feature for room mailboxes is managed by the Exchange Calendar Attendant or the Resource Booking Attendant, depending on your Exchange version. When a meeting request is sent to the room mailbox, the attendant checks the room’s calendar for conflicts, the booking window, and the maximum duration settings. If any of these settings are misconfigured, or if the mailbox itself becomes corrupted or disabled, the attendant stops processing requests automatically.
Common root causes include:
Misconfigured Booking Policies
The most frequent cause is that the Automatically process meeting requests checkbox is unchecked in the Exchange Admin Center. This setting tells Exchange to run the Calendar Attendant on incoming requests. If it is disabled, all requests remain in the organizer’s inbox as pending or are declined by default.
Corrupted Calendar or Mailbox
A corrupted calendar item or mailbox property can prevent the attendant from processing requests. This can happen after a migration, a failed update, or a manual edit to the room mailbox’s calendar.
License or Service Plan Changes
Room mailboxes in Microsoft 365 require an Exchange Online license (Plan 1 or Plan 2) to enable the resource booking functionality. If the license is removed or the service plan is changed, auto-accept may stop working.
Steps to Diagnose and Fix the Auto-Accept Issue
Follow these steps in order. After each step, send a test meeting request to the room mailbox to see if the issue is resolved.
Step 1: Verify the Room Mailbox Booking Settings in the Exchange Admin Center
- Open the Exchange Admin Center
Go to https://admin.exchange.microsoft.com and sign in with an account that has Exchange admin privileges. - Navigate to Recipients > Resources
In the left navigation pane, select Recipients then click the Resources tab. - Select the room mailbox
Find the room mailbox that is not auto-accepting requests. Click its display name to open the properties window. - Open the Booking Options tab
In the properties window, click Booking Options. Verify that the following checkboxes are checked:– Automatically process meeting requests
– Decline conflicting meeting requests
– Decline recurring meetings that conflict (optional but recommended)If any are unchecked, check them and click Save.
Step 2: Use PowerShell to Force the Calendar Attendant
If the Exchange Admin Center settings appear correct but auto-accept still fails, use Exchange Online PowerShell to reset the automation setting.
- Connect to Exchange Online PowerShell
Open Windows PowerShell as an administrator and run:Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com
Enter your admin credentials when prompted. - Check the current processing settings
Run:Get-CalendarProcessing -Identity "RoomName" | fl AutomateProcessing, AllowConflicts, BookingWindowInDays, MaximumDurationInMinutes
Replace RoomName with the name of your room mailbox. Look at the AutomateProcessing value. It should be AutoAccept. If it is None or blank, the attendant is disabled. - Enable auto-accept
Run:Set-CalendarProcessing -Identity "RoomName" -AutomateProcessing AutoAccept
This forces the mailbox to use the Calendar Attendant for automatic processing. - Set additional booking policies
To also enforce conflict detection and booking limits, run:Set-CalendarProcessing -Identity "RoomName" -AllowConflicts $false -BookingWindowInDays 180 -MaximumDurationInMinutes 1440
Adjust the window and duration values to match your organization’s policy.
Step 3: Remove Corrupted Calendar Items
If the mailbox settings are correct but auto-accept still does not work, a corrupted calendar item may be blocking the attendant. Use PowerShell to remove all future calendar items and let the attendant rebuild them.
- Connect to Exchange Online PowerShell
Use the same connection method as Step 2. - Remove all calendar items from a specific date onward
Run:Search-Mailbox -Identity "RoomName" -SearchQuery "Received:>01/01/2024 AND Kind:meeting" -DeleteContent
This deletes all meeting items in the room mailbox received after January 1, 2024. Adjust the date as needed. The attendant will re-create the calendar entries when new requests arrive.
Step 4: Verify the Room Mailbox License in Microsoft 365
- Open the Microsoft 365 Admin Center
Go to https://admin.microsoft.com and sign in as a global admin. - Go to Users > Active Users
Find the room mailbox in the list. Room mailboxes are listed with a room icon. - Check the license assignment
Click the room mailbox name, then click the Licenses and Apps tab. Ensure an Exchange Online license (Plan 1 or Plan 2) is assigned. If no license is assigned, assign one and click Save changes.
If the Room Mailbox Still Has Issues After the Main Fix
Room mailbox continues to decline all requests
If the room mailbox declines every request, even when no conflicts exist, the AllowConflicts parameter may be set to $false but the room’s calendar still has a phantom conflict. Run Get-CalendarProcessing -Identity "RoomName" | fl AllowConflicts in PowerShell. If it shows $false, run Set-CalendarProcessing -Identity "RoomName" -AllowConflicts $true temporarily, send a test request, then set it back to $false.
Auto-accept works for some users but not others
This usually indicates a permission issue on the room mailbox. Verify that all users have at least Contributor permission on the room calendar. In the Exchange Admin Center, go to Recipients > Resources, open the room mailbox, click Mailbox Delegation, and add the affected users or a security group to the Full Access list. Save the changes and test again.
Room mailbox stops auto-accepting after a migration
When a room mailbox is migrated from on-premises to Exchange Online, the Calendar Attendant settings may not transfer correctly. Run the PowerShell commands from Step 2 to set AutomateProcessing to AutoAccept again. Also verify that the migration batch did not fail or skip the mailbox.
| Item | Exchange Admin Center GUI | Exchange Online PowerShell |
|---|---|---|
| Enable auto-accept | Recipients > Resources > Room > Booking Options > Automatically process meeting requests | Set-CalendarProcessing -Identity “RoomName” -AutomateProcessing AutoAccept |
| Decline conflicts | Same page > Decline conflicting meeting requests | Set-CalendarProcessing -Identity “RoomName” -AllowConflicts $false |
| Set booking window | Same page > Booking window in days | Set-CalendarProcessing -Identity “RoomName” -BookingWindowInDays 180 |
| Set max duration | Same page > Maximum duration in minutes | Set-CalendarProcessing -Identity “RoomName” -MaximumDurationInMinutes 1440 |
| Remove corrupted items | Not available in GUI | Search-Mailbox -Identity “RoomName” -SearchQuery “Kind:meeting” -DeleteContent |
After applying the fixes, send a test meeting request from a user mailbox to the room mailbox. The room should respond with an acceptance within a few minutes. If auto-accept still fails, check the Exchange Online service health in the Microsoft 365 Admin Center under Health > Service health for any ongoing incidents affecting the Calendar Attendant.
To prevent future issues, document the correct booking policy for each room mailbox and set them using PowerShell scripts during provisioning. Use the Get-CalendarProcessing cmdlet periodically to audit all room mailboxes for the correct AutomateProcessing value.