Booking Meeting Rooms Across Organizations in a Shared Workspace

A shared workspace meeting room, bookable by clients from multiple organizations

Organizations in shared workspaces or coworking environments often run into difficulty sharing their meeting rooms. Microsoft 365 and Google Workspace are designed for a single organization, so typically you would need to create calendars for your meeting rooms in each organization's calendar system, and use a third-party tool to keep them in sync. This guide shows you how to use a single calendar for each room, shared between each organization, without needing any third-party tools or subscriptions.

Set up your room calendars

In this guide we're going to set up your meeting room calendars in Microsoft 365 as it's the easiest to get working. If you need to set the meeting room calendars up in Google Workspace, it is possible (but a little more involved). Contact us for details.

Choose a Microsoft 365 tenant to hold your meeting room calendars

You need to create a calendar for each of your meeting rooms in one Microsoft 365 tenant. We recommend using the tenant belonging to the operator of the shared workspace to make the ownership and administration of the room calendars simpler.

Create a room mailbox for each meeting room

If you don't already have calendars for your meeting rooms, you can set them up as Room mailboxes in Exchange Online. Follow Microsoft's online guide to create a room mailbox for each meeting room. When creating the mailbox, you can optionally enter extra information about the room such as its capacity.

Configure each room mailbox to accept external bookings

Once created, the room mailbox will work straight away for users in your Microsoft 365 tenant - they'll be able to see the rooms in Outlook Room Finder and book them. By default, your room mailboxes won't allow anyone outside your organization to book them, so you'll need to change a setting on each one so that your clients can also book the rooms. This is controlled by the ProcessExternalMeetingMessages setting, which defaults to off.

You can only access this setting through Microsoft 365 PowerShell. If you haven't connected to Microsoft 365 PowerShell before, connect by following part 1 of our PowerShell guide. Complete part 1 of that guide, then return here and run these commands:

Check the current setting for one of your rooms (replace the placeholder with the email address of your meeting room):

Get-CalendarProcessing -Identity THE_EMAIL_ADDRESS_OF_THE_ROOM | FL -Property Identity,ProcessExternalMeetingMessages

If it shows True, the room is already accepting external bookings. If it shows False, turn it on:

Set-CalendarProcessing -Identity THE_EMAIL_ADDRESS_OF_THE_ROOM -ProcessExternalMeetingMessages $True

Remember, here True means you want the room to accept bookings from outside your tenant.

With this done, the room will accept bookings from any external client. Repeat this process for all of your meeting room mailboxes.

Optional: Restrict external booking so only your clients can book

When you turn on ProcessExternalMeetingMessages for a mailbox, the calendar will accept booking invitations from any email address. If you'd like to restrict booking to a whitelist of approved domains, you can set up a mail flow rule in Exchange Online

Create a Mail-Enabled Security Group

We're going to create a security group for your room mailboxes. In the Exchange Online Admin Center:

  1. Go to Recipients > Groups > Mail-enabled security
  2. Click Add a group. Make sure the type of the group is Mail-enabled security, then give it a name (e.g., Meeting room mailboxes group)
  3. Give the group an owner - this can be any admin (for example, your own account)
  4. Add all of your room mailboxes as members of the group
  5. Give the group an email address (e.g. meetingrooms@yourcompany.com)
  6. Create the group

Now we're going to create a mail-flow rule that applies to this group

  1. Go to Mail flow > Rules and click Add a rule, then Create a new rule
  2. Name the rule (e.g. "Room bookings from shared workspace")
  3. Under Apply this rule if, select the sender is external/internal and choose Outside the organization
  4. Click + to add a new condition then select the recipient, and is a member of this group, then choose the security group you just created
  5. Under Do the following, select Block the message and choose Reject the message and include an explanation. Enter an explanation (e.g. "Only members of the office space can book meetings in the rooms")
  6. Under Except if, select The sender and choose Domain is, then add the email domains of all of your tenants
  7. Set the rule mode to Enforced and then save the rule

Let the client organizations see your calendars

For Clients Using Microsoft 365

With external processing enabled, a Microsoft 365 client can already book your rooms by inviting them directly. What they can't do yet is see whether the room is free before sending that invite. Set up an organization relationship between your tenant and theirs to let their Outlook users see your rooms' free/busy status in the Scheduling Assistant.

You can set up an organization relationship for each of your clients (who are using Microsoft 365) by following the instructions in Microsoft's guide.

For Clients Using Google Workspace

Google Workspace doesn't have a direct equivalent to Exchange's organization relationships, so in order for your clients to see the calendar schedules you'll need to publish each calendar, and then have each user subscribe in their Google Calendar.

Publish Your Room Calendars

Since Google Workspace can't directly query Exchange free/busy information, you'll publish a calendar feed clients can subscribe to using the standard ICS format.

  1. In Outlook on the web, add each room's calendar to My calendars. To do this, click Add calendar then select Add from directory and start typing the name or email address of the room.
  2. Open Settings (the cog icon at the top right of the screen), then select Shared calendars. Select each room calendar under Publish calendar, and publish it with Can view when I'm busy permissions.
  3. Save the ICS link Outlook generates for each room, and have them ready for the next step.

Have Each Client Subscribe to the Feed

Each Google Workspace user who needs to see room availability:

  1. In Google Calendar, under Other calendars, click +, then select From URL, and paste in the room's ICS link.
  2. Add the room as a contact at contacts.google.com, using the room's email address, so it's easy to find when composing an invite.

Note: An ICS subscription in Google Calendar isn't real-time. It refreshes on Google's schedule, so a Google Workspace user might see a slight lag behind what's actually booked. This doesn't affect the booking's success (since the room will accept or reject the booking using the latest information), but it means two people could briefly both think a room is free.

Add a display to each room

Dash running on an iPad, mounted outside a shared meeting room

Everything above exists to answer a single question: is the room free? Outlook and Google Calendar answer the question if people remember to check. A Dash display mounted outside the room answers the question instantly, to anyone passing by, without needing to go back to their desk. Just connect Dash to your Microsoft 365 tenant that owns the room mailboxes, and you'll be able to see bookings made by you or any of your clients.

A read-only display is completely free, or you can subscribe to Dash Business for $3.99 USD per device per month to book, end, and extend meetings directly from the display. Dash Business also adds check-in to automatically release the room if no one shows up to a booking, as well as custom branding and more.

Managing more than a few rooms? A Dash Enterprise subscription adds central configuration and usage analytics across every room, so you can see how they're actually being used.

Common Questions

Do I need to do anything differently in Dash for this to work?

No. Dash reads your room mailbox calendar directly, regardless of which organizations are booking. Once Dash is connected, it shows accurate status automatically. You can learn how to connect Dash in our configuration guide.

Can Google Workspace clients book rooms without an organization relationship?

Yes. Organization relationships are an Exchange-to-Exchange feature and don't apply to Google Workspace at all. Booking depends on ProcessExternalMeetingMessages being enabled on the room; visibility is handled separately through the published ICS feed.

Will my Microsoft 365 clients see rooms in the Scheduling Assistant without the organization relationship?

Not by default. Without it, their Outlook won't show your rooms in the Scheduling Assistant, or let them see the free/busy status by default. However, if they add the ICS feeds (from the Google Workspace section of this guide) they'll be able to see each room's free/busy status, and can still book a room by inviting it to their meetings.

Does this work if some clients are on neither Microsoft 365 nor Google Workspace?

Yes. Anyone who can send a calendar invite to the room's email address can book it once ProcessExternalMeetingMessages is enabled. Many other email/calendar clients support ICS so we recommend checking the documentation for the product they're using. If you've followed the optional restrict booking steps in this guide, remember to add their email domain to the mail-flow rule so that they can make bookings.

Doesn't turning on "ProcessExternalMeetingMessages" mean that anyone in the world can book my meeting rooms?

By default, yes. But you can create a mail-flow rule to restrict bookings to just members of your workplace. We cover this in the Optional: Restrict external booking so only your clients can book section of the guide above.

← All posts