The Dime.Scheduler Exchange connector - unsurprisingly - provides a link between Dime.Scheduler and Exchange. Using the Azure development platform that connects the various systems and data stores across Microsoft 365, appointments of connected Exchange calendars can be kept in sync with the planning in DIme.Scheduler.
This is a bidirectional and real-time connector that keeps data producted in Dime.Scheduler and Exchange in sync. In what follows next is an in-depth description of how the connector works, how to set it up and how to use it.
Bidirectional message flow
The Dime.Scheduler Exchange connector provides two-way communication with Dime.Scheduler.
Not only are appointments scheduled by the planner in Dime.Scheduler traced back to the Outlook calendars of the resources, the calendar can also be synchronized back to Dime.Scheduler. That, by definition, makes the Exchange connector bidirectional.
To connect these applications, some sort of integration component is required, and that is what the Exchange connector is. On the one hand, a component listens for changes in the planning board and pushes those changes into the Outlook calendars of the resources. On the other hand, Microsoft does the same thing and notifies the Exchange connector that changes have been made to one of the calendars, and then adjusts the planning in the planning accordingly.
A brief tour of the Exchange connector
The Exchange connector consists of two applications:
- A web application
- A Windows Service
The web application is used to monitor the traffic between Dime.Scheduler and Exchange. It is also responsible for receiving incoming webhooks calls from the Microsoft Graph API, the gateway to Microsoft 365 and Exchange. In other words, it's a messenger that redirects changes from the Outlook calendars to the planning board in Dime.Scheduler. The connector automatically creates user accounts for the tracked resources in the Dime.Scheduler Exchange connector web application, allowing them to manage the synchronization settings themselves. For example, they can decide to allow private appointments to be shown in the planning board.
The Windows service is in charge of handling the workflow at the other end: it listens for changes in the planning board in Dime.Scheduler and pushes the modified appointments to the Outlook calendars of the resources. Thus, the connector depends on the data fed by Dime.Scheduler and administrators also need to decide which resources should receive updates of their planning in their calendars. This setup can be done in the settings view in Dime.Scheduler, but it can also be managed by other back office systems such as Microsoft Dynamics 365 Business Central.
The image below is a simplified representation of the ecosystem. Dime.Scheduler and Exchange do their own thing, tied together by the Graph API and the Exchange connector, fueled by the settings as configured by administrators in Dime.Scheduler and the resources (and administrators) in the Exchange connector.
About Microsoft Graph
The Exchange connector does most of the heavy lifting using the developer platform on Azure, which is branded as Microsoft Graph. While we could entertain you for weeks with many of the interesting intricacies of this platform, it suffices to know that this is why you need to register an Azure AD app in order to get the Exchange connector up and running. The reasoning behind this is that is ultimately up to the consumer (i.e. your client) to decide which permissions to give to external applications.
Bidirectional traffic is optional
A positive side-effect of the technical design of the Graph API and the Exchange connector is that you can opt in to each message flow.
If the planning in the planning board does not need to be traced back to the Outlook calendars, then you simply don't install the component responsible for that message flow, being the Exchange Connector Windows Service.
On the other hand, if you don't want to distort the planning in the planning board with the calendars of the resources, then you can safely skip the installation and configuration of the synchronization part in the Exchange Connector Web Application.