How to Block Room Bookings with Exchange Online

Configure Policies for the Exchange Online Resource Booking Assistant

With many offices closed, people working from home, and Outlook making online meetings the default, thoughts might turn to how to stop people scheduling meetings in traditional meeting rooms in buildings to encourage them to consider an alternative, even when employees return to offices.

Different Ways to Block Room Bookings

Several ways suggest themselves to stop users scheduling meetings in rooms:

  • Remove the room mailbox. This works, but it is not a recommended approach. You will want to use these rooms in the future and won’t want to recreate the rooms and the location data for the rooms.
  • Hide the room mailboxes from address lists. This is better because it stops people searching for rooms when scheduling meetings. The downside is that people might know the email address of a room and can use that to schedule a meeting.
  • Block room schedules with dummy meetings. You could schedule meetings in all rooms to block other people from being able to reserve times. Again, this works, but it’s s tiresome process to schedule meetings, especially if you have a lot of rooms to process and normal working doesn’t restart soon.

Employ the Resource Booking Assistant

Hiding rooms from address lists is the best of the three approaches, but it’s not the answer. The Exchange Online resource booking assistant responds to meeting requests according to policies configured for room mailboxes. The resource booking assistant runs in the background to monitor inbound requests sent to room mailboxes. If the policy allows and the requested slot is available, the resource booking assistant accepts the request and confirms the booking.

The Set-CalendarProcessing cmdlet updates policy settings, and we can use it to create a policy to ensure that meeting requests for rooms are not accepted, even when a slot is available.

For example, to set a blocking configuration for the “Room 101” room:

Set-CalendarProcessing -Identity "Room 101" -AllBookInPolicy $False -AllRequestInPolicy $False 
Set-Mailbox -Identity "Room 101" -MailTip "Rooms are currently unavailable"

The MailTip is defined to give some immediate feedback if someone adds a blocked room to a meeting, but if they go ahead and try to book the room, the resource booking assistant will decline and respond with a polite note (Figure 1).

The Resource Booking Assistant turns down a room booking request
Figure 1: The Booking Assistant turns down a room booking request

Exceptions to the Booking Policy

If you want to allow some people to book the room when it’s blocked by default, enter their mailboxes (email addresses, aliases, display names, etc.) in the BookInPolicy parameter. Requests from people specified here are automatically accepted by the resource booking assistant. To make this easier to manage, use a distribution list instead of individual aliases.

Set-CalendarProcessing -Identity "Room 101" -BookInPolicy "Senior Leadership Team"

A variation on the theme is to set the maximum duration allowed for a meeting to a very short period. Here we restrict meetings to one minute.

Set-CalendarProcessing -Id "SF Room 101" -MaximumDurationInMinutes 1

Most people try to book 30- or 60-minute meeting slots, so this will stop them doing that. The downside is that the message received from the resource booking assistant tells them why their meeting request was declined (Figure 2). The danger then exists that some people will go ahead and book one-minute meetings on the basis that once they get into the room, they’ll be able to stay there for a longer period.

A booking request is declined because it exceeds the maximum time slot
Figure 2: A booking request is declined because it exceeds the maximum time slot

Reversing the Process

When normal times resume and you want to make rooms available again, reverse the process by running the command:

Set-CalendarProcessing -Identity "Room 101" -AllBookInPolicy $True -AllRequestInPolicy $True -MailTip $Null

This is a small point, but detail is important when you manage an Office 365 tenant because a detail might just be the way that you can get something done. Learn detail in the Office 365 for IT Pros eBook. We have lots of it!

12 Replies to “How to Block Room Bookings with Exchange Online”

  1. Thank you for this article.
    However, the -mailtip parameter can’t be set with the “Set-CalendarProcessing” cmdlet. You will get an error when running this script, you need another line: Set-Mailbox -Identity “Room101” -MailTip “Rooms are currently unavailable”
    Thanks again for all your work on the Office 365 for IT Pros ebook!

    Best regards

    1. You’re right. From my original notes, it looks like a cut and paste error on my part. Fortunately, the readers of this blog are so intelligent that they automatically adjusted for my error!

  2. And, if the resource booking assistant doesn’t respond with a polite note? In my case, the meet was not accepted showing a “provisioned” status with the message: “The meet was not accepted”; How do we fore a room to decline every book request?

      1. I realize that if there are some delegated owner or a bookinpolicy exception group/users, the resource only rejects the invite, but it doesn’t sends a e-mail informing. Removing both fixed the issue. Tks!

      2. It’s easiest when all requests in policy are automatically accepted without going near a delegate…

  3. Thanks for the guide! Is there a way to auto block meeting requests for every alternating week? Our school has bi-weekly schedules where some rooms are only available in week A – not week B…

  4. Tony, I set this up using a d-list with three members, one being a test user. Logged into Outlook as the test user, I am still getting the blocked message (with my posted tool tip, “This room is reserved for Marketing Team only.”) I’ve tried resyncing the OAL with GAL in Outlook, no difference.

    Below are the parameters on the resource room. What am I missing?

    RunspaceId : 020af8e7-5b88-4207-a1b5-8e4dc61c8d53
    AutomateProcessing : AutoAccept
    AllowConflicts : False
    AllowDistributionGroup : True
    AllowMultipleResources : True
    BookingType : Standard
    BookingWindowInDays : 180
    MaximumDurationInMinutes : 1440
    MinimumDurationInMinutes : 0
    AllowRecurringMeetings : True
    EnforceAdjacencyAsOverlap : False
    EnforceCapacity : False
    EnforceSchedulingHorizon : True
    ScheduleOnlyDuringWorkHours : False
    ConflictPercentageAllowed : 0
    MaximumConflictInstances : 0
    ForwardRequestsToDelegates : True
    DeleteAttachments : True
    DeleteComments : True
    RemovePrivateProperty : True
    DeleteSubject : True
    AddOrganizerToSubject : True
    DeleteNonCalendarItems : True
    TentativePendingApproval : True
    EnableResponseDetails : True
    OrganizerInfo : True
    ResourceDelegates : {}
    RequestOutOfPolicy : {}
    AllRequestOutOfPolicy : False
    BookInPolicy : {/o=ExchangeLabs/ou=Exchange Administrative Group
    AllBookInPolicy : False
    RequestInPolicy : {}
    AllRequestInPolicy : False
    AddAdditionalResponse : False
    AdditionalResponse :
    RemoveOldMeetingMessages : True
    AddNewRequestsTentatively : True
    ProcessExternalMeetingMessages : False
    RemoveForwardedMeetingNotifications : False
    AutoRSVPConfiguration : Microsoft.Exchange.Data.Storage.AutoRSVPConfiguration
    MailboxOwnerId : Marketing Room
    Identity : Marketing Room
    IsValid : True
    ObjectState : Changed

  5. Hi, I have done this but now i cant remove the MailTip at all. even if i change the mailtip, its keep sending the old mailtip.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.