Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

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.

...

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.

...

Info

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.
https://learn.microsoft.com/en-us/graph/outlook-change-notifications-overview

Documentation for webhooks approach.
https://learn.microsoft.com/en-us/graph/change-notifications-delivery-webhooks

Documentation for Creating a subscription. We need the subscription for event, which requires Calendars.Read to set up.
https://learn.microsoft.com/en-us/graph/api/subscription-post-subscriptions

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.
https://learn.microsoft.com/en-us/graph/change-notifications-with-resource-data?tabs=csharp#creating-a-subscription

As seen from the API, where we list the events we can get the details we need using only Calendars.ReadBasic.
https://learn.microsoft.com/en-us/graph/api/user-list-events