Small business IT

Room and Equipment Mailboxes in Exchange Online: Booking Setup

Create room and equipment mailboxes in Exchange Online, group rooms into room lists, and control who can book them with Set-CalendarProcessing.

By EpiFive Editorial TeamReviewed/updated 10 min readHow we check articles
On this page

To make a meeting room or a piece of shared equipment bookable in Microsoft 365, create a resource mailbox with New-Mailbox -Room or New-Mailbox -Equipment, then tune its booking rules with Set-CalendarProcessing. Users add the resource to a meeting invitation like any other attendee, and Exchange accepts or declines the request automatically, or forwards it to an approver.

Who this is for and what you will have

This guide is for administrators of small and mid-sized Microsoft 365 tenants who need a reliable way to book meeting rooms, projectors, loan laptops or a pool car without a separate booking system. By the end you will have:

  • A room mailbox and an equipment mailbox with sensible names and metadata.
  • Booking limits (how far ahead, how long, working hours only).
  • Either open booking, restricted booking for named groups, or delegate approval.
  • A room list so users can browse rooms by building.
  • A verification routine and fixes for the common problems.

Room versus equipment mailboxes

Microsoft defines two kinds of resource mailbox:

TypeRepresentsExamples
Room mailboxA resource assigned to a physical locationConference room, auditorium, training room
Equipment mailboxA resource that is not location specificPortable computer, projector, microphone, company car

Room mailboxes support extra metadata such as wheelchair accessibility, tags and audio, display and video device names. The admin centre lists those extra fields for room mailboxes only. Both types are booked in the same way, and the booking rules you configure later apply to both.

Prerequisites

  • An account with permissions to manage recipients in Exchange Online (for example, Exchange Administrator).
  • The Exchange Online PowerShell module. If you have not connected before, see /blog/connect-exchangeonline-errors-fix for connection problems.
  • A naming convention. The Microsoft documentation suggests summarising key details in the Name value because users see the name when they pick the resource from the address book. A pattern such as Room - HQ - 2F - Boardroom (12) carries the building, floor and capacity without extra lookups.
  • In a hybrid deployment, create resource mailboxes where they belong: room mailboxes for your on-premises organisation in on-premises Exchange, and room mailboxes for your Exchange Online organisation in Exchange Online.
  • Do not use nested groups anywhere a resource mailbox setting accepts a group. Only non-nested groups work.

Connect first:

Connect-ExchangeOnline -UserPrincipalName [email protected]

Create the mailboxes

In the Exchange admin centre

  1. Open the Exchange admin centre at https://admin.exchange.microsoft.com and go to Recipients > Resources.
  2. Select Add a room resource or Add an equipment resource. The wizard is the same for both.
  3. On the setup page enter a unique Name and a Resource mail address: an alias on the left of the at sign and an accepted domain on the right.
  4. On the Set properties page you can optionally set Capacity, Location, Phone number, Department, Company, an Address book policy and the postal address fields.
  5. On the Booking delegate settings page choose the booking options and whether requests are accepted automatically or sent to delegates (both are covered below).
  6. Review, select Create, then Done.

With PowerShell

The PowerShell syntax from Microsoft's documentation is:

New-Mailbox -Name <Name> <-Room | -Equipment> [-Alias <Alias>] [-DisplayName "<DisplayName>"] [-PrimarySmtpAddress <EmailAddress>]

Create one of each:

New-Mailbox -Name "HQ-2F-Boardroom" -Room -DisplayName "Boardroom (HQ 2F, 12 seats)" -PrimarySmtpAddress [email protected]
 
New-Mailbox -Name "Projector-01" -Equipment -DisplayName "Projector 01" -PrimarySmtpAddress [email protected]

If you omit -Alias, the Name value is also used as the alias in the email address, so avoid spaces in Name when you do not pass -PrimarySmtpAddress.

Add capacity and room metadata

Set-Mailbox can record capacity, and Set-Place adds metadata that improves search and room suggestions in Outlook. Set-Place is available only in the cloud service and Microsoft recommends the EXO V3 module for it.

Set-Mailbox -Identity [email protected] -ResourceCapacity 12
 
Set-Place -Identity [email protected] -Building "HQ" -Floor 2 -FloorLabel "Second floor" -Capacity 12 -IsWheelChairAccessible $true -AudioDeviceName "Conference speakerphone" -DisplayDeviceName "75-inch display"

In a hybrid environment, Set-Place does not change City, CountryOrRegion, GeoCoordinates, Phone, PostalCode, State or Street on synchronised room mailboxes. Use Set-User or Set-Mailbox on-premises for those.

Understand the booking defaults

Check what a new resource does out of the box:

Get-CalendarProcessing -Identity [email protected] | Format-List AutomateProcessing,AllBookInPolicy,AllRequestInPolicy,BookingWindowInDays,MaximumDurationInMinutes,AllowRecurringMeetings,ScheduleOnlyDuringWorkHours,DeleteSubject,AddOrganizerToSubject

From the Set-CalendarProcessing reference, the relevant defaults are:

SettingDefaultMeaning
AutomateProcessingAutoAccept (for mailboxes created in the admin centre, or in PowerShell after 15 November 2018)The resource booking attendant accepts or declines based on policy
AllBookInPolicyTrueIn-policy requests from everyone are approved automatically
AllRequestInPolicyFalseNobody is routed to a delegate for approval
BookingWindowInDays180How far ahead the resource can be booked (0 to 1080)
MaximumDurationInMinutes1440Longest allowed meeting (24 hours)
AllowRecurringMeetingsTrueRecurring meetings are allowed
ScheduleOnlyDuringWorkHoursFalseRequests outside working hours are accepted
AllowConflictsFalseConflicting bookings are declined
DeleteSubjectTrueThe subject of the request is removed
AddOrganizerToSubjectTrueThe organizer's name replaces the subject
ProcessExternalMeetingMessagesFalseRequests from external senders are rejected

Note the last three. Many administrators are surprised that a room calendar shows the organizer's name rather than the meeting title. That is the default, not a fault.

The AutomateProcessing value matters. None disables calendar processing completely. AutoUpdate means only the Calendar Attendant works and requests stay tentative until a delegate approves. AutoAccept enables the resource booking attendant, which is what makes the booking rules in this article work. Resource mailboxes created in PowerShell before 15 November 2018 default to AutoUpdate, so set it explicitly on old resources.

Configure who can book and how

Open booking with limits

The default already allows anyone to book. Add limits that suit a typical office:

Set-CalendarProcessing -Identity [email protected] `
  -AutomateProcessing AutoAccept `
  -BookingWindowInDays 90 `
  -MaximumDurationInMinutes 480 `
  -ScheduleOnlyDuringWorkHours $true `
  -DeleteSubject $false `
  -AddOrganizerToSubject $false

This accepts bookings up to 90 days ahead, caps meetings at eight hours, declines requests outside the mailbox's working hours and keeps the real subject visible. Working hours default to 8:00 to 17:00 Monday to Friday and can be changed with the WorkDays, WorkingHoursStartTime, WorkingHoursEndTime and WorkingHoursTimeZone parameters of Set-MailboxCalendarConfiguration.

By default a recurring meeting that runs past the booking window is declined, because EnforceSchedulingHorizon defaults to true. Set it to false if you would rather accept the series and have Exchange trim it to the window.

To apply a rule to every room at once, filter by recipient type, as the Microsoft documentation does:

Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'RoomMailbox'" | Set-CalendarProcessing -ScheduleOnlyDuringWorkHours $true -MaximumDurationInMinutes 540

Restrict booking to named people

For a resource such as a company car, allow only specific users or a non-nested group to book. Everyone else is declined automatically:

Set-CalendarProcessing -Identity [email protected] `
  -AutomateProcessing AutoAccept `
  -AllBookInPolicy $false `
  -BookInPolicy "[email protected]","[email protected]"

Microsoft calls this scoped auto-approval: AutomateProcessing is AutoAccept, ForwardRequestsToDelegates is false, AllBookInPolicy is false, AllRequestInPolicy is false and BookInPolicy lists the approved bookers.

Require approval from a delegate

For a high-demand room or expensive equipment, let anyone request but require an approver:

Set-CalendarProcessing -Identity [email protected] `
  -AutomateProcessing AutoAccept `
  -AllBookInPolicy $false `
  -AllRequestInPolicy $true `
  -ResourceDelegates "[email protected]","[email protected]"

ForwardRequestsToDelegates defaults to true, so requests go to the delegates. If you assign more than one delegate, only one of them has to act on a request. Give the delegates access to the calendar folder so they can see it:

Set-MailboxFolderPermission -Identity "[email protected]:\Calendar" -User [email protected] -AccessRights Editor -SharingPermissionFlags Delegate

Repeat for each delegate. In the admin centre the same choice is under the Booking tab, Manage delegate settings.

Two further scenarios are worth knowing. -AllRequestOutOfPolicy lets all users submit requests that break the policy limits (for example, too long) for delegate approval, and -RequestOutOfPolicy does the same for named users only. Use these when you want most people held to the limits but a few exceptions to be approved by hand.

Allow external organisers

If partners or customers send invitations to the room, set:

Set-CalendarProcessing -Identity [email protected] -ProcessExternalMeetingMessages $true

Group rooms into a room list

Room lists are distribution groups that contain only room mailboxes. Microsoft recommends them if you have, or expect, more than 100 rooms, or rooms in several buildings. You can create room lists only in PowerShell, not in the admin centre.

New-DistributionGroup -Name "HQ Meeting Rooms" -RoomList
 
Add-DistributionGroupMember -Identity "HQ Meeting Rooms" -Member [email protected]

To turn an existing distribution group that already holds rooms into a room list:

Set-DistributionGroup -Identity "Building 34 Conference Rooms" -RoomList

If you want a room hidden from the address book, use Manage hide from GAL on the General tab of the resource. A hidden resource can still be booked by anyone who types its email address.

Verify the setup

  1. Confirm the mailbox type:

    Get-Mailbox -Identity [email protected] | Format-List Name,RecipientTypeDetails,PrimarySmtpAddress

    You should see RoomMailbox or EquipmentMailbox.

  2. Confirm the booking policy with the Get-CalendarProcessing command shown earlier.

  3. List all resources: Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails EquipmentMailbox,RoomMailbox.

  4. Confirm room lists and their members:

    Get-DistributionGroup -ResultSize Unlimited -RecipientTypeDetails RoomList
    Get-DistributionGroupMember -Identity "HQ Meeting Rooms"
  5. Send a real test: as a normal user, create a meeting in Outlook and add the room as a resource or in the Location field. Book the same slot from a second account to confirm the conflict is declined. Then try a meeting longer than your maximum and one outside the booking window, and check the decline message.

Troubleshooting

The room never responds to invitations

Check AutomateProcessing. If it is None or AutoUpdate, requests are not accepted automatically. This is most likely on resources created in PowerShell before 15 November 2018. Set it to AutoAccept.

Requests are declined that should be allowed

Look at the limits first: MaximumDurationInMinutes, BookingWindowInDays and ScheduleOnlyDuringWorkHours. A recurring series is declined when it extends beyond the booking window while EnforceSchedulingHorizon is true, and when any occurrence conflicts while AllowConflicts is false. ConflictPercentageAllowed and MaximumConflictInstances both default to 0.

Delegates never receive requests

Delegate routing needs AutomateProcessing set to AutoAccept, ForwardRequestsToDelegates true, AllBookInPolicy false and AllRequestInPolicy true (or the out-of-policy equivalents). The Set-CalendarProcessing reference also notes that setting AutoUpdate on a room mailbox means delegates do not get requests at all.

Group values do not work

Nested groups are not supported in resource mailbox settings. Use a flat, non-nested group in BookInPolicy, RequestInPolicy or ResourceDelegates.

The meeting title is missing

This is the DeleteSubject and AddOrganizerToSubject default behaviour described above. Set both to false. Users also need at least the LimitedDetails role on the resource's calendar folder to see subjects, because the default AvailabilityOnly role hides them.

Attachments and body text are stripped

DeleteAttachments and DeleteComments also default to true, so attachments and body text in incoming requests are removed. Set them to false if people rely on the invitation body in the room's calendar.

Synchronised room properties will not change

In hybrid setups, edit them on-premises as described under Set-Place above.

Checklist

  • Naming convention agreed, mailboxes created with New-Mailbox -Room or -Equipment.
  • AutomateProcessing is AutoAccept on every resource.
  • Booking window, maximum duration and working-hours limits set deliberately.
  • Restricted resources use BookInPolicy; approval resources use ResourceDelegates with calendar permissions.
  • Subject, body and attachment settings chosen on purpose.
  • Room lists created for each building and populated.
  • Test bookings run, including conflict, overlong and out-of-window cases.

If your resources become busy shared inboxes rather than calendars, see /blog/shared-mailbox-vs-microsoft-365-group for when each mailbox type fits, and /blog/calendar-permissions-exchange-online-powershell for managing calendar folder permissions.

References

Questions people ask

What is the difference between a room mailbox and an equipment mailbox?

A room mailbox represents a physical location such as a conference room or training room. An equipment mailbox represents a resource that is not tied to a location, such as a projector, a portable computer or a company car. Both are booked by adding them to a meeting request, and both are managed with the same cmdlets.

How do I stop everyone from booking a room?

Run Set-CalendarProcessing with AllBookInPolicy set to false and list the permitted users or groups in BookInPolicy. Requests from anyone else are declined. If you would rather route other users' requests to an approver, set AllRequestInPolicy to true and add ResourceDelegates instead.

Why does the meeting subject disappear from the room calendar?

DeleteSubject defaults to true on resource mailboxes, and AddOrganizerToSubject also defaults to true, so the organizer's name replaces the subject. Set DeleteSubject and AddOrganizerToSubject to false with Set-CalendarProcessing if you want the original subject kept.

Can people outside my organisation book a room?

Not by default. ProcessExternalMeetingMessages defaults to false, so meeting requests from external senders are rejected. Set it to true on the resource mailbox if you want external organisers to be able to book it.

Exchange OnlineRoom MailboxOutlookPowerShell
  1. Microsoft 365 Backup for Small Businesses: Native Retention vs Backup

    What Microsoft 365 keeps by default for Exchange, SharePoint and OneDrive, where those protections end, and when a small business should add Microsoft 365 Backup or a third-party backup.

  2. Organisation-Wide Email Signatures in Microsoft 365: Options

    Compare ways to apply one email signature to all staff in Microsoft 365: mail flow rule disclaimers, per-mailbox Outlook on the web settings and add-ins.

  3. Scan to Email with Microsoft 365: Printer SMTP Options That Still Work

    Fix scan to email on a printer or scanner using Microsoft 365: compare SMTP client submission, SMTP relay connector, Direct Send and High Volume Email, with settings for each.

  4. Windows 11 Hardware Requirements: Check TPM, Secure Boot and CPU Support

    Check whether a PC meets the Windows 11 requirements: TPM 2.0, Secure Boot, UEFI, processor, RAM and storage, using PC Health Check and PowerShell.

  5. Make UPI, WiFi and vCard QR Codes with a Logo: EpiFive QR Code Generator

    How to make styled QR codes for links, UPI payments, WiFi and contacts with EpiFive QR Code Generator, the free MIT-licensed generator that runs in your browser, and how to self-host it.

  6. Cyber Insurance Security Requirements Checklist for Small Businesses

    A control-by-control checklist to prepare for a cyber insurance application or renewal: MFA, backups, EDR, patching, admin accounts and an incident response plan, with evidence to collect and CISA sources.