In addition to regular user mailboxes, Exchange lets you create resource mailboxes for meeting rooms and equipment. Resource mailboxes have their own calendars where you can schedule appointments for room and equipment bookings. Using the Set-CalendarProcessing cmdlet, you can manage settings and responses to calendar meeting requests for resource mailboxes. This cmdlet is available in both Exchange Online (EOL) and on-premises Exchange Server.
Manage Resource Mailbox Scheduling
To book a resource for a specific time, create a new calendar event in Outlook or OWA. Enter the address of the resource you want to reserve in the Location field.

Connect to Exchange Online
For Exchange Online, you should use the Exchange Online PowerShell module with modern authentication:
Install-Module ExchangeOnlineManagement -Scope CurrentUser
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Connect-ExchangeOnline uses REST-based connections and supports modern authentication with MFA. The older Remote PowerShell connection method is deprecated and is no longer the standard way to connect to Exchange Online.
After completing the configuration, don’t forget to disconnect from Exchange Online:
Disconnect-ExchangeOnline
Required permissions
You need the appropriate Exchange RBAC permissions to run Get-CalendarProcessing and Set-CalendarProcessing. Note that access to individual parameters can also depend on the management roles assigned to your account.
In Exchange Online, you should use an appropriately scoped Exchange role/role group rather than granting broad admin permissions. In case a cmdlet/parameter is unavailable, you need to check the permissions assigned to your account/ask an Exchange admin to run the command.
Microsoft provides a cmdlet permissions lookup to identify the roles required for a specific cmdlet and its parameters.
Create a Resource Mailbox
Before configuring booking policies, you need to create a resource mailbox for a meeting room/equipment. However, first you may want to check whether a room or equipment mailbox already exists:
Get-Mailbox -RecipientTypeDetails RoomMailbox,EquipmentMailbox |
Select-Object Name,PrimarySmtpAddress
Now you can create a room mailbox. Run the following command:
New-Mailbox -Name "Meeting Room 1" -Room
Licensing note. Exchange Online room and equipment mailboxes don’t require a license for basic use. An unlicensed resource mailbox is limited to 50 GB. A license is required in case you need a larger mailbox/features that have additional licensing requirements.
In order to create an equipment mailbox, use:
New-Mailbox -Name "Projector 1" -Equipment
Verify that the new resource mailbox has been created:
Get-Mailbox -RecipientTypeDetails RoomMailbox,EquipmentMailbox |
Select-Object Name,PrimarySmtpAddress
After creating the resource mailbox, you can config its booking behavior using the Set-CalendarProcessing cmdlet.
Now verify the resource mailbox:
Get-Mailbox -Identity "Meeting Room 1" |
Select-Object Name,PrimarySmtpAddress,RecipientTypeDetails
The AutoAccept policy is enabled by default for resource calendars in Exchange Server 2019 and Exchange Online. This policy causes the Calendar Attendant to automatically approve bookings unless they conflict with other appointments.
Check the current Automate Processing policy settings using the command:
Get-CalendarProcessing -Identity "Meeting Room 1"

To quickly review the most important resource mailbox scheduling settings, you can display only the commonly used properties:
Get-CalendarProcessing -Identity "Meeting Room 1" |
Select-Object `
AutomateProcessing,
AllowConflicts,
BookingWindowInDays,
AllBookInPolicy,
AllRequestInPolicy,
ResourceDelegates
Modes available for processing booking requests
The following modes are available for processing booking requests:
- None โ the resource is not intended for automatic booking.
- AutoUpdate โ meeting requests can be added to the resource calendar as Tentative entries. Delegate approval behavior depends on the resource mailbox delegation and booking-policy settings.
- AutoAccept โ the meeting is automatically approved by the Calendar Attendant if there is no time overlap.
Note. When AutoUpdate is used with room mailboxes, delegate behavior may differ from regular user mailboxes. Meeting requests can be added to the calendar as Tentative entries without generating the same approval workflow that administrators may expect from user mailbox delegation.
You can change the AutomateProcessing mode:
Set-CalendarProcessing -Identity "Meeting Room 1" -AutomateProcessing AutoUpdate
In order to restore the default automatic booking behavior, you need to switch the resource mailbox back to AutoAccept:
Set-CalendarProcessing -Identity "Meeting Room 1" -AutomateProcessing AutoAccept
Note that by default, Exchange may remove the original meeting subject and add the organizer’s name to the subject displayed in the resource mailbox calendar. To preserve the original meeting subject, you need to disable both behaviors. Use the following command:
Set-CalendarProcessing -Identity "Meeting Room 1" `
-DeleteSubject $False `
-AddOrganizerToSubject $False
Keep in mind that some Exchange Online calendar-processing changes may take several minutes to become effective across clients and room-booking interfaces. Microsoft Places autorelease settings are different and can take up to 48 hours to take effect.
Prevent the room calendar from showing details of meetings
You can also preserve the Private flag for meetings marked as Private by adding the -RemovePrivateProperty $false parameter:
Set-CalendarProcessing -Identity "Meeting Room 1" `
-DeleteSubject $False `
-AddOrganizerToSubject $False `
-RemovePrivateProperty $False
This keeps private meetings marked as Private in the resource mailbox calendar and helps you to prevent disclosure of meeting details to users who have calendar access.
If you only need to preserve the Private flag without changing the subject settings, use the following command:
Set-CalendarProcessing -Identity "Meeting Room 1" `
-RemovePrivateProperty $False
To allow all users view meeting details without editing events, the calendar permissions of the resource mailbox must be changed. Use Set-MailboxFolderPermission command:
Set-MailboxFolderPermission -Identity "Meeting Room 1:\Calendar" `
-User Default `
-AccessRights LimitedDetails
List all properties of the resource mailbox calendar, including the Calendar Attendant, resource booking assistant, and calendar configuration:
Get-CalendarProcessing -Identity "Meeting Room 1" | Format-List *

Automated Booking Policy
The Automated Booking Policy allows you to configure how a booking attendant responds to scheduling requests.
- In Policy โ a request that does not violate any of the configured scheduling options.
- Out of Policy โ the booking request which violated a configured scheduling option (for example, the scheduled time may already be booked, or the meeting duration too long).
To allow all users to submit in-policy requests, but only if one of the specified delegates approves or declines the request:
Set-CalendarProcessing -Identity meeting_room_1 -AutomateProcessing AutoAccept -AllRequestInPolicy $true -AllBookInPolicy $false -ResourceDelegates v.ebner,b.busch
Important. ResourceDelegates, BookInPolicy, and RequestInPolicy accept recipient identities. In Exchange Online, invalid recipient values previously could resolve to $null and unintentionally clear an existing list. This behavior was changed in December 2025: Exchange Online now returns a ManagementObjectNotFoundException when an invalid recipient is supplied.
However, you should still validate recipient identities before applying changes in production automation. Also remember that specifying a new value for a multi-valued parameter such as -ResourceDelegates replaces the existing list; it does not append to it. If you need to add/remove individual entries, retrieve the current config, modify the list, and then write the updated list back.
Also, note that specifying the -ResourceDelegates parameter replaces the existing delegate list. You need to verify the current delegate config before making changes.
In case you need to view the users who are currently configured as resource delegates for a room/equipment mailbox, run the following command:
Get-CalendarProcessing meeting_room_1 |
Select-Object ResourceDelegates
The following command returns only the delegate accounts assigned to the resource mailbox:
(Get-CalendarProcessing meeting_room_1).ResourceDelegates
If you want to allow a specific user to submit out-of-policy booking requests for review by a resource delegate, add the -RequestOutOfPolicy parameter:
Set-CalendarProcessing -Identity "Meeting Room 1" -RequestOutOfPolicy username
Allow the room to accept external meeting invitations:
Set-CalendarProcessing -Identity "Meeting Room 1" -ProcessExternalMeetingMessages $true
Conflicts in the resource calendar are not allowed by default. To allow double bookings for the resource mailbox, run the command:
Set-CalendarProcessing `
-Identity "Meeting Room 1" `
-AllowConflicts $true
Users can schedule meetings in designated conference rooms up to 180 days in advance. To reduce the maximum available time of the planned booking to 30 days:
Set-CalendarProcessing -Identity "Meeting Room 1" -BookingWindowInDays 30
After changing resource mailbox scheduling settings, you can check the current config using the following command:
Get-CalendarProcessing -Identity "Meeting Room 1" |
Select-Object `
AutomateProcessing,
AllowConflicts,
BookingWindowInDays,
AllBookInPolicy,
AllRequestInPolicy,
ProcessExternalMeetingMessages,
ResourceDelegates
Hint. Additionally, you can configure custom working hours for resource mailboxes using the Set-MailboxCalendarConfiguration cmdlet.
Configure a Resource Mailbox for Microsoft Teams Rooms
Microsoft Teams Rooms use resource mailboxes for room reservations and meeting invitations. Microsoft recommends specific calendar-processing settings to ensure that meeting subjects, meeting content, recurring meetings, attachments, private flags, and external invitations are handled correctly.
To config an existing room mailbox for a Teams Rooms device, you need to apply the following settings:
Set-CalendarProcessing -Identity "ConferenceRoom01" `
-AutomateProcessing AutoAccept `
-AddOrganizerToSubject $false `
-AllowRecurringMeetings $true `
-DeleteAttachments $true `
-DeleteComments $false `
-DeleteSubject $false `
-ProcessExternalMeetingMessages $true `
-RemovePrivateProperty $false `
-AddAdditionalResponse $true `
-AdditionalResponse "This is a Microsoft Teams Meeting room!"
The config above enables automatic booking, preserves meeting subjects and private flags, keeps meeting content available for processing, allows recurring and external meetings, removes attachments, and adds a custom response to booking requests.
For Microsoft’s complete Teams Rooms resource-account requirements, check the official Create and configure resource accounts for Teams Rooms documentation.
Enable Automatic Release with Microsoft Places
Microsoft Places can automatically release a room reservation when nobody checks in within the configured time after the meeting starts. This helps you to reduce unused room reservations in hybrid offices.
As example, you can enable autorelease with the default 10-minute claim period. Run the command:
Set-CalendarProcessing -Identity "Meeting Room 1" `
-EnableAutoRelease $true
To use a different claim period, you need to specify PostReservationMaxClaimTimeInMinutes:
Set-CalendarProcessing -Identity "Meeting Room 1" `
-EnableAutoRelease $true `
-PostReservationMaxClaimTimeInMinutes 20
The room is automatically released if no usage is detected within the configured period after the meeting starts. We recommend this feature particularly for rooms with Teams Panels/Microsoft Teams Rooms devices, which provide users with a way to check in. Keep in mind that changes to autorelease settings can take up to 48 hours to take effect.
Licensing and eligibility
Room autorelease has licensing requirements. Users with a Teams Premium license acquired before April 1, 2026 can use check-in and autorelease with any room. Autorelease is also available for rooms configured with a Microsoft Teams Rooms/Microsoft Teams Shared Space license.
You can enable autorelease with Set-CalendarProcessing, but licensing eligibility still applies.
For more info, check Microsoft’s documentation on check-in and autorelease for rooms.
What is the Set-CalendarProcessing cmdlet?
Set-CalendarProcessing is an Exchange PowerShell cmdlet used to manage how room and equipment mailboxes handle meeting requests, booking policies, approvals, conflicts, delegates, and calendar privacy settings.
Does Set-CalendarProcessing work in Exchange Online and Exchange Server?
Yes. The cmdlet is available in both Exchange Online (Microsoft 365) and on-premises Exchange Server environments.
What is a resource mailbox?
A resource mailbox is a special Exchange mailbox designed for scheduling shared resources such as:
- Meeting rooms
- Conference rooms
- Projectors
- Company vehicles
- Other shared equipment
What happens when AutoUpdate is enabled?
Meeting requests are placed in the calendar as tentative entries. A delegate can then review and approve or decline the request.
What are Resource Delegates?
Resource delegates are users responsible for reviewing and approving booking requests for a room or equipment mailbox.
