Alternative Setup (beta)
Note that this functionality is currently in beta. It is not an out-of-the-box setup and requires resources on both the customer side and in MazeMap.
If the customer is unwilling to accept the permissions we ask for in the regular setup, this page describes an alternative way of setting up resource booking with MS365. The downside compared to the regular setup is that this requires some work on the customer side. It basically means that the customer sets up the calendar subscription and passes the events on to us.
Description
The MazeMap resource booking has a cache in order to be able to display availability in a timely manner. For the cache to work, it needs to know about calendar events so that it can refresh the cache for that calendar.
Instead of MazeMap subscribing to the calendar (see the page describing regular setup for details), the customer can subscribe to calendar events and set the notification endpoint to us.
The customer needs to run something; a script, a program, an Azure function, or something that makes the call to set up the subscription. It can be as easy as a command line curl, or a python script. The script could probably be run as an Azure function if that is something the customer is familiar with.
Note that making changes to the resources that changes the resource ID in Microsoft, or adding new resources or deleting old, requires setting up the subscriptions again.
If the customer wants the solution to support active changes in Map Editor and booking cache updating itself, then the customer can run an Azure function which we can call that sets up the subscriptions we need. How the subscription is set up is still controlled by the customer, but we can help develop the function.
Technical details
Alternative 1: target MazeMap
This option allows the customer to set up the subscription with MazeMap as target.
Alternative 2: target customer
This option allows the customer to receive the notification, and then notify MazeMap. This requires additional work by the customer.
The endpoint just needs to include basic details (start, end, title, availability - excluding body content/attachments/attendees)
Relevant Microsoft documentation
This section contains technical documentation that is relevant for an implementation of the alternative setups.
Best practice documentation for Change notification.
Change notifications for Outlook resources in Microsoft Graph - Microsoft Graph
Documentation for webhooks approach.
Receive change notifications through webhooks - Microsoft Graph
Documentation for Creating a subscription. We need the subscription for event
, which requires Calendars.Read
to set up.
Create subscription - Microsoft Graph v1.0
Setting up a subscription that includes Rich data is documented here. The API is the same, so it requires the Calendars.Read
permission, but we do not need it so the field with "includeResourceData": true
, can be set to false. That should give us the same data as we would have gotten if we pulled events with Calendars.ReadBasic
.
Set up change notifications that include resource data - Microsoft Graph
As seen from the API, where we list the events we can get the details we need using only Calendars.ReadBasic
.
List events - Microsoft Graph v1.0