The Set-CalendarProcessing cmdlet in Exchange Online is a powerful tool used to configure calendar settings for resource mailboxes, such as meeting rooms and equipment. It is very helpful for organizations with many Meeting rooms to manage with efficiency.
There are common settings which we can enable for Meeting Rooms from Exchange Admin Center such as Booking Details (if need a approver or not, Booking duration etc), Delegations etc.
![Booking Details]()
But from commands, we can achieve more broader settings in a meeting room.
Note. All these commands should run in PowerShell with at least Exchange Administrator Role permissions.
Most Common Commands need for Administrators
Get All Rooms that exist in the tenant with details.
Get-Mailbox -RecipientTypeDetails RoomMailbox |
Get-MailboxRegionalConfiguration |
Select-Object Identity, DisplayName, PrimarySmtpAddress, ResourceCapacity
To check the meeting room all settings.
Get-CalendarProcessing -Identity "RoomIdentity" | Format-List
To block two meetings at once,
When someone blocks the time of a meeting room, other users shouldn’t block the same time and the user should receive a reject email.
Get-CalendarProcessing -Identity "RoomName" | Set-CalendarProcessing -AllRequestOutOfPolicy $False
![Reject email]()
If there are no conflicts, the user will receive a notification email as below.
![Conflicts]()
To visible Meeting Room Calendar details (arranged meeting info) to every user.
By default when a user adds a Meeting Room calendar to user’s calendar, cannot visible the arranged meeting details. Only limited to time block status.
Set-MailboxFolderPermission -Identity "roommailbox:\Calendar" -User Default -AccessRights LimitedDetails
Default View
![Default View]()
After applying the command, it shows the Other organizer and subject.
![Subject]()
![Meetings]()
Making Meeting Details Visible on the Calendar
Set-CalendarProcessing -Identity "RoomName" `
-AddOrganizerToSubject $false `
-DeleteSubject $false `
-RemovePrivateProperty $false
- -AddOrganizerToSubject $false: Prevents the organizer's name from being appended to the subject.
- -DeleteSubject $false: Keeps the original subject of the meeting instead of replacing it with "Reserved".
- -RemovePrivateProperty $false: Ensures that if a user marks a meeting as "Private", the room calendar still shows its details.
To see the organizer's name only,
Set-CalendarProcessing -Identity "RoomName" `
-AddOrganizerToSubject $true `
-DeleteSubject $true `
-RemovePrivateProperty $true
OrganizerInfo: Displays organizer information on the calendar.
Check who has access to a meeting room's calendar.
Get-MailboxFolderPermission -Identity "RoomIdentity:\Calendar"
Other Settings
- AutomateProcessing: Defines how meeting requests are processed. Options include AutoAccept, AutoUpdate, or None.
- AllowConflicts: Permits double-booking if set to $true.
- AllowRecurringMeetings: Allows recurring bookings.
- BookingWindowInDays: Sets the maximum number of days into the future that bookings are allowed.
- EnforceCapacity: Prevents bookings that exceed room capacity.
- MaximumDurationInMinutes: Limits the length of bookings.
- MinimumDurationInMinutes: Enforces a minimum booking duration.
- ScheduleOnlyDuringWorkHours: Limits bookings to defined work hours.
- AllBookInPolicy: Automatically accepts all requests.
- AllRequestInPolicy: Requires approval for all in-policy bookings.
- AllRequestOutOfPolicy: Requires approval for all out-of-policy requests.
- BookInPolicy: Specifies users whose bookings are auto-approved.
- RequestInPolicy: Specifies users who can request in-policy bookings.
- RequestOutOfPolicy: Specifies users who can request out-of-policy bookings.
- ResourceDelegates: Defines delegates responsible for approving bookings.
- ForwardRequestsToDelegates: Forwards requests to assigned delegates.
- DeleteAttachments: Strips attachments from meeting requests.
- DeleteComments: Removes meeting comments.
- DeleteNonCalendarItems: Deletes non-calendar items sent to the mailbox.
- RemoveOldMeetingMessages: Deletes outdated meeting messages.
- RemoveCanceledMeetings: Removes canceled meetings.
- RemoveForwardedMeetingNotifications: Deletes forwarded notifications.
- ConflictPercentageAllowed: Sets the allowable percentage of conflict before rejecting a booking.
- MaximumConflictInstances: Limits the number of overlapping bookings.
- PostReservationMaxClaimTimeInMinutes: Maximum time to claim a tentative booking.
- TentativePendingApproval: Holds a booking tentatively until it is approved.
- AddAdditionalResponse: Appends a custom response message.
- AdditionalResponse: The content of the custom response message.
- EnableAutoRelease: Automatically releases unclaimed reservations.
- EnforceSchedulingHorizon: Enforces time window limits.
- ProcessExternalMeetingMessages: Allows processing of external meeting requests.
- BookingType: Specifies the type of booking (Standard, Workspace, Reserved).
- IgnoreDefaultScope: Expands search scope across the entire organization.
Note. By making all settings $true or $false admins can set up settings as Organizations Policies.