Matrix Booking's Microsoft 365 integration overview
This page explains the integrations available when using Matrix Booking alongside Microsoft 365, focussing specifically on Microsoft Outlook and Microsoft Teams.
Note: this page provides high-level integration descriptions and makes references to some capabilities that aren’t yet generally available. The scope and timings of integrations contained herein are subject to review.
Contents
Introduction
Matrix Booking provides a rich set of integrations with Microsoft 365. These integrations allow staff to check the availability of rooms when arranging in-person and online meetings via Outlook, Teams, and the Matrix Booking web and mobile apps.
The following high-level integrations are available:
a bidirectional sync between Matrix Booking and Microsoft 365 resource calendars with the ability to check the availability of internal attendees
a Microsoft 365 add-in that brings powerful capabilities from Matrix Booking directly into Outlook
the ability to add a Microsoft Teams meeting when arranging meetings in the Matrix Booking web and mobile apps
These integrations support all versions of Outlook that allow a room that has been defined as a Microsoft 365 resource to be invited to a meeting. This includes Outlook for:
Windows
Mac
iOS
Android
in-browser (for example, Google Chrome)
As the integration is based on Microsoft 365 resources, this integration also supports when a room is invited to an online meeting that has been arranged using Microsoft Teams.
This integration between Microsoft 365 and Matrix Booking supports the complexities that arise when updating and cancelling meetings in either system. This includes the scheduling and rescheduling of recurring meetings or individual meetings.
A series of scenarios for the room bookings is described in this document to showcase the capabilities of our integrations.
Requirements and security
Matrix Booking’s bidirectional integration with Microsoft 365 uses Microsoft’s Graph API.
Microsoft 365 to Matrix Booking
Any resource meetings made via Microsoft 365 are replicated within Matrix Booking by subscribing to Graph API webhooks. Webhooks allow Microsoft 365 to notify Matrix Booking when meetings for resources are added, maintained, and deleted. Resource subscriptions are typically short-lived, requiring renewal to continue receiving notifications on an ongoing basis. Matrix Booking automatically creates Microsoft 365 resource subscriptions and renews expiring subscriptions as needed.
Matrix Booking to Microsoft 365
Bookings created within Matrix Booking are replicated within Microsoft 365 by making outbound calls to the Microsoft Graph API. These calls are made by Matrix Booking servers directly to Microsoft 365 over the Internet. They are protected by secure protocols based on X.509 digital certificates. To provide access to call the Microsoft Graph APIs needed for our integration, Matrix Booking will need to be added to the Microsoft Azure Active Directory (AD) tenant as a client application with the following Graph API permissions:
read directory data
read and write calendars in all mailboxes
This access also enables our real-time attendee availability check functionality.
Outlook
Whilst our Microsoft 365 Outlook add-in is web-based and doesn’t require any client-side installation, setup or configuration, the add-in does need to be installed by a Microsoft 365 administrator using the centralised deployment feature in the Microsoft 365 admin centre.
Since its inception, our Microsoft 365 add-in has required a minimum of the following Outlook versions:
Outlook via Microsoft 365
Retail perpetual Outlook 2016 and later
Volume-licensed perpetual Outlook 2021
Note: all the above require Version 1910 (Build 12130.20272) or higher. The minimum version required is dictated by the support for “Outlook add-in API requirement set 1.8”, where “Outlook add-in” means an add-in for Outlook and not our add-in for Outlook’s desktop app. For more information, see Microsoft’s guidance on Outlook client support.
The versions that our Microsoft 365 add-in doesn’t support are:
Volume-licensed perpetual Outlook 2019
Volume-licensed perpetual Outlook 2016
Perpetual Outlook 2013
Any versions older than the above
Teams
Whilst our bidirectional integration with Microsoft 365 uses OAuth 2.0 client credentials, this same approach isn’t supported by Microsoft for our Teams integration. Instead, this integration requires delegated user permissions (see Microsoft Teams integration setup guide).
Further requirements
Whilst our 2 way integration with Microsoft 365 is ground-breaking in its depth and richness, there are some items of importance:
Room resource calendars must be set up within Microsoft 365 to automatically accept meeting invitations and decline those that overlap with an existing booking.
To optimise staff experience, it’s best to align those room booking rules that Microsoft 365 supports with the superset of rules supported by Matrix Booking.
There can be a delay between a booking made in Microsoft 365 and it being reflected in Matrix Booking (this delay depends solely on how long it takes Microsoft 365 to notify Matrix Booking that the room’s resource calendar has changed).
This integration requires the Microsoft Graph API, and thus, requires Exchange Online.
Data security
The meeting times, the title, and the attendees appear within Matrix Booking. Visitors are automatically added to the visitor list for the day of the meeting for the reception team to welcome them.
Note: the information contained in the text box of a meeting invitation and any attachments aren’t synchronised to Matrix Booking. These potentially sensitive details aren’t stored by Matrix Booking. Despite this, these important details are retained even when the meeting is rescheduled from within Matrix Booking.
Microsoft 365 to Matrix Booking
Outlook and Teams
In this integration scenario, the organiser of a meeting adds a room and attendees to a meeting invitation in Outlook, and optionally adding a Teams online meeting. When the meeting invitation is sent, the room’s resource calendar automatically accepts or declines the invitation depending on whether the room is already booked in Microsoft 365.
The organiser is using Microsoft Outlook’s features to find and add the room, which has been defined as a resource in Microsoft 365.

Microsoft 365 notifies Matrix Booking that the room’s calendar has been updated. This allows the integration to reflect the booking in Matrix Booking and ensures that the 2 systems remain synchronised. Generally, this occurs quickly and without exception.
If timing is such that the room isn’t available in Matrix Booking, the room will be automatically removed from the meeting and the organiser will be sent an email explaining why the room wasn’t booked. The same could happen when the room is available, but a customer-defined business rule isn’t observed. For example, the meeting organiser might not have access to book the room or the booking might be too far in advance.
Matrix Booking’s Microsoft 365 add-in
Whilst the integration between Microsoft 365 and Matrix Booking is based on the standard capabilities of Outlook and Teams to add rooms to meetings, it can be difficult for people to find an available room, especially in buildings with many rooms spread over many floors. For this reason, a companion to our Microsoft 365 to Matrix Booking integration is our Microsoft 365 add-in, which improves the experience of finding a room that meets your needs.

The Microsoft 365 add-in gives you a list of suitable and available rooms that you have permission to book. When you select a room, it’s added to the standard Outlook calendar event. You can add options, such as layouts, catering, and equipment, to your calendar event after it has been sent by returning to and editing it. The calendar event needs to sync with Matrix Booking first before you can add options.
Notes:
Microsoft’s architecture for Microsoft 365 add-ins is web-based and supported by Microsoft across multiple platforms and versions. Our Microsoft 365 add-in officially supports Microsoft 365 for Windows, macOS, and in a browser.
Don’t confuse our Microsoft 365 add-in with our Outlook add-in on Windows. In fact, the 2 are mutually exclusive as our Outlook add-in isn’t compatible with our bidirectional Microsoft 365 integration.
Matrix Booking to Microsoft 365
In this integration scenario, a room booking is made using Matrix Booking via our web and mobile apps, digital room signage, floor plan kiosks and our client API.
When booking the room, the full complement of Matrix Booking functionality is available, such as adding attendees, adding a Teams online meeting, catering, and more.
When the booking is saved, if the room is associated with a Microsoft 365 resource, the event will be added to the organiser’s calendar in real-time, automatically sending the invitation to the meeting room and any attendees.

Microsoft 365 notifies Matrix Booking that the room’s calendar has been updated, which completes the cycle and ensures that the 2 systems remain synchronised.
Checking attendee availability
When making or updating a booking via the Matrix Booking web or mobile apps, Matrix Booking can automatically check whether the attendees are available by checking each attendee’s calendar within Microsoft 365.
This integration checks the email domain of each attendee to only check the availability of people within your organisation’s Microsoft 365 tenant.
Matrix Booking to Microsoft Teams
Independent of our 2 way integration with Microsoft 365, Matrix Booking offers a specific integration with Teams. This integration allows a Teams online meeting to be added when a meeting is arranged or updated via the Matrix Booking web or mobile apps. People receiving this meeting invitation will be able to join the Teams online meeting by selecting on the link in the meeting’s agenda.


Notes:
Although our integration with Teams isn’t dependent on our Microsoft 365 calendar integration, the Join button will only appear on in-room Teams equipment if calendar integration is in place.
Adding a room to an online meeting arranged from within Microsoft Teams isn’t part of this integration, but does need our Microsoft 365 calendar integration.
Caveats and limitations
Matching rules
There are some areas where you’ll need to ensure any rules you have match (are set up) in both Microsoft 365 and Matrix Booking as the rules will need to exist at both ends to function:
applying forward booking limits
restricting bookings to certain security groups
restricting bookings to office hours or availability limits
For example, if:
you have a forward booking limit of 2 months set in Matrix Booking, but nothing set in Microsoft 365;
and a staff member makes a booking in Microsoft 365 for a room in 3 months’ time;
the booking will be accepted by Microsoft 365. However, when this reaches Matrix Booking via the synchronisation, the booking will be rejected as it breaks the forward booking business rule.
Note:
Your Matrix Booking Administrator and your IT team need to make sure that your organisation’s business rules match.
If bookings were successfully being made, check with your Matrix Booking Administrator and your IT team if the rules were changed.
Functionality that we support with caveats
There are elements of Microsoft 365 that we support, but they require further input:
Linking Microsoft 365 resources with Matrix Booking resources
Future bookings for resources linked between Matrix Booking and Microsoft 365
Update a room’s email address after the Calendar integration has been set up
Each piece of functionality we support with caveats is given in full below:
Linking Microsoft 365 resources with Matrix Booking resources.
If your resource hierarchies are the same in both systems, you can add the Microsoft 365 resource’s email address to its corresponding Matrix booking resource. You’ll need to make sure that the resource isn’t hidden on the global address list.
Users must be within your organisation’s Microsoft 365 directory to book or be invited to use Microsoft 365 resources that are linked with Matrix Booking resources.
Room bookings that need to be approved.
The Microsoft 365 room needs to be set to auto accept invitations. Matrix Booking will show whether the room booking needs to be approved whilst Microsoft 365 will show the room invitation as accepted.
Combined or combination room availability.
We support the functionality to display the correct availability for a room including combined or combination rooms. For more information, see our troubleshooting article on using our Microsoft 365 add-in instead of the Outlook Room Finder for accurate resource availability.
Additional booking options.
You must save your booking or send it if the booking has attendees first before you can add options to it, so the meeting made in Microsoft 365 can sync with Matrix Booking. After the calendar event has been sent, use the add-in to add the options you want (for example, room layouts, catering, equipment, and services).
Adding buffer times to bookings.
These appear within Matrix Booking apps as times when the room is unavailable. These periods of unavailability won’t be shown within the Microsoft 365 room’s calendar as Microsoft 365 doesn’t support buffer times.
If you make a booking that has buffer times, it will only be accepted if the buffer times don’t overlap with bookings either side the booking you’re trying to make. If they do, your booking will be rejected. For example, a booking for a room was made for 1:00 PM to 2:00 PM and you’re trying to book the same room for 2:00 PM that has a 15 minute setup buffer time. The booking will be rejected after the sync has happened because your booking’s setup buffer time overlaps with the previous booking.
Make bookings on behalf of someone else.
A booking made in Microsoft 365 on behalf of someone else won’t show who made the booking within Matrix Booking – only who the booking is for. Similarly, a person making a booking on behalf of another via the Matrix Booking apps will only show who the booking is for within Microsoft 365 and not who made the booking.
Outlook allows for delegate bookings which is similar to Matrix Booking’s book on behalf of someone. The booking will appear in both the user’s and booking maker’s calendars by following these steps.
If you book a resource on behalf of someone else and they don’t have access to that resource, the booking will be successful as it’s the booking organiser’s access to the resource that’s considered by Matrix Booking.
If your organisation uses cost codes for booking, cost codes are used in the Microsoft 365 integration. They aren’t displayed in the integration, but Matrix Booking assigns your default cost code for all your bookings made via the integration. Default cost codes can be changed via the web and mobile apps.
Forward booking availability in Microsoft 365.
This is a Matrix Booking feature and isn’t fully supported by Microsoft. If a booking is made in Microsoft 365 beyond Matrix Booking’s forward booking time period (for example, you set this to 3 months in advance and no further), the booking won’t be automatically rejected. It will only cancel automatically when Matrix Booking and Microsoft 365 have synchronised and the booking owner will be notified.
Future bookings for resources linked between Matrix Booking and Microsoft 365.
If you have any future bookings against any linked resources, raise a Microsoft 365 integration support ticket and let us know which is your “master” resource booking system. You’re either using:
Matrix Booking
Microsoft 365
We’ll sync your future bookings.
Repeat bookings or booking series.
You can make repeat bookings or a booking series. However, when you edit a repeat booking or booking series in Matrix Booking, you can only change the:
Title
Notes
End date
If 1 of the bookings in a booking series or for repeat bookings overlaps with another booking, Matrix Booking will reject the whole booking series.
Booking quotas in Microsoft 365.
This is a Matrix Booking feature and isn’t fully supported by Microsoft. If a booking is made in Microsoft 365 beyond that booking owner’s quota, the booking won’t be automatically rejected. It will only cancel automatically when Matrix Booking and Microsoft 365 have synchronised and the booking owner will be notified.
Room booking quotas in Microsoft 365.
This is a Matrix Booking feature and isn’t fully supported by Microsoft. If a booking is made in Microsoft 365 beyond that room’s booking quota (for example, once per week), the booking won’t be automatically rejected. It will only cancel automatically when Matrix Booking and Microsoft 365 have synchronised and the booking owner will be notified.
Groups in Microsoft 365.
This is a Matrix Booking feature and isn’t fully supported by Microsoft. If a room is booked using Microsoft 365 and the user doesn’t have access to that room, the booking won’t be automatically rejected. It will only cancel automatically when Matrix Booking and Microsoft 365 have synchronised and the booking owner will be notified.
Update a room’s email address after the integration has been set up.
You can only update a room’s details (for example, the room’s Microsoft 365 email address) after the Calendar integration has been set up if there haven’t been any bookings made against that room. If there has, you won’t be able to change the room’s details. Make sure that the room’s information has been entered correctly during the Calendar integration set u
Due to privacy concerns regarding potentially sensitive information to be held in the meeting notes, these aren’t stored or transferred between Matrix Booking and Microsoft 365.
Whilst we don’t recommend this approach, we do support bookings made directly in the room calendar in Microsoft 365. Where these room-only bookings are made, they will be allocated to a "Microsoft 365 Service User” as a booking owner within Matrix Booking because Microsoft 365 doesn’t provide the information about who actually placed the booking in the room calendar. It records the booking organiser as the room itself.
If someone cancels a booking from the room calendar, the booking organiser is the person who is recorded as cancelling the booking even if they didn’t cancel the booking.
Unsupported limitations
With the current version of the Microsoft 365 integration, there are a few areas of functionality that aren’t entirely compatible with Matrix Booking, and therefore, they aren’t currently available in the Microsoft 365 Integration:
A single meeting in Microsoft 365 with multiple rooms (Microsoft limitation)
Repeat bookings for combination rooms (Microsoft limitation)
Repeat bookings for the individual rooms that make a combination room (Microsoft limitation)
Sync work hours automatically between Matrix Booking and Microsoft 365 (Microsoft limitation)
Cross-organisational resource sharing (Microsoft limitation)
Each unsupported limitation is given in full below:
Microsoft 365 supports rooms only. Other resources, such as desks, aren’t supported by Microsoft 365, and therefore, the other resources you have in Matrix Booking won’t be recognised.
A single meeting in Microsoft 365 with multiple rooms. This is a Matrix Booking feature and isn’t supported by Microsoft.
Bookings, including tentative bookings, that overlap with another booking of the same time and date. Although you can allow booking conflicts in Microsoft 365, Matrix Booking doesn’t.
If you try to book a resource when there’s already a booking for the time and date you’ve selected for your booking, Matrix Booking will reject your booking.
If you try to extend the time of your booking and it overlaps with another booking, Matrix Booking will cancel your booking.
If 1 of the bookings in a booking series or for repeat bookings overlaps with another booking, Matrix Booking will reject the whole booking series.
Basket bookings with multiple rooms or desks. This is a Matrix Booking feature and isn’t supported by Microsoft. Basket bookings can only be made in Matrix Booking and without the integration set up.
Repeat bookings for combination rooms. This is a Matrix Booking feature and isn’t supported by Microsoft.
Repeat bookings for the individual rooms that make a combination room. This is a Matrix Booking feature and isn’t supported by Microsoft.
Approve bookings in Microsoft 365. This is a Matrix Booking feature and isn’t supported by Microsoft. Bookings can only be approved in Matrix Booking.
Work hours synchronised automatically between Matrix Booking and Microsoft 365.
If you want to set work hours (for example, bookings can only be made 9am to 5pm Monday to Friday), you need to have the Availability feature switched on in Matrix Booking and Allow scheduling only during working hours feature switched on Microsoft 365. There isn’t automatic synchronisation between the apps for bookings in set work hours as it isn’t part of the integration. It must be done separately in both apps.
Change the booking owner of a booking when the room is linked to a Microsoft 365 resource as Microsoft doesn’t support this.
Cross-organisational resource sharing (cross-org) as both the user and the resource have to be within the same tenant organisation to make a booking. This is a Matrix Booking feature and isn’t supported by Microsoft.
Notes:
If you’re not sure about these limitations and need more information, contact your Account Manager before requesting this integration.
If your issue continues, raise a support ticket.