Gaurav Diwanji
ServiceNow Employee
ServiceNow Employee

In this blog, we will explore the steps for setting up the Workplace Calendar Synchronization with Microsoft Exchange Online using the Guided Setup in ‘Normal’ mode (non-strict mode).

 

This is a companion blog to Configuring Microsoft Exchange Workplace Calendar Sync with Workplace Reservation

Management, please refer to the blog for additional details and reasoning behind some of the steps.

 

In addition, here are some additional resources related to calendar sync:

 

Before we begin, ensure we have the right plugins installed. The list of needed plugins is shown in the screenshot below.

GauravDiwanji_0-1733760280044.png

GauravDiwanji_1-1733760280046.png

For additional guidance on these pre-requisite steps, please refer to the steps here.

 

At a high level, these are the steps we will be performing as a part of this setup:

  • Setup Microsoft Azure
  • Basic Setup in SN WSD
    1. Configure the Microsoft Exchange Online Connection
    2. Configure Microsoft Exchange Online as a Calendar Provider
    3. Generate Callback URL for Exchange Online Webhook Registry
    4. Set Retry Policy for MS Exchange Online
    5. Configure Calendar Sync time zone

 

 

Guided Setup

Navigate to Workplace Calendar Synchronization > Administration > Guided Setup

 

*You may want to mark this as a favorite since we will be navigating here often.

GauravDiwanji_2-1733760280048.png

 

 

We will start with the Azure Setup.

 

Azure Setup

The ‘Azure Setup’ section documents best practices for setting up the application in MS Exchange.

GauravDiwanji_3-1733760280063.png

 

 

Click on Accept Best Practices. We will work in a normal mode configuration. For details on Normal mode v Strict mode, please refer to the product documentation.

GauravDiwanji_4-1733760280071.png

 

As a part of this step, we create a new application in MS Exchange Online server and grant the below ‘API permissions’.

Please note that currently, we need application-level permissions.

 

Personal Authentication is on the roadmap, under Safe Harbor, so users can individually grant access without the need for application permissions.

 

Calendars.ReadWrite

Read and write reservations users’ calendar

Calendars.Read.Shared (Only needed for Struct Mode)

Only needed in case strict mode is used
The user who will be used needs to be a delegate for the room resource. This is done in the Office portal, not the Azure portal.
Strict mode: The system cannot make a reservation directly in the users’ calendar, but the user will be invited.

offline_access

(Only needed for Struct Mode)

 

For ServiceNow to request Refresh tokens, which are used to request new access tokens when the current one becomes invalidated

 

Note down the Client Id, Client Secret, Authorization URL, and Token URL noted for this app.

The product documentation for this step is linked here.

Mark this step as complete.

 

Next, we will configure SN.

GauravDiwanji_5-1733760280082.png

 

 

MS Exchange Online Connection

 

Click on the ‘Configure the Microsoft Exchange Online’ link to expand it.

 

Step 1: Application Registries

Read the instructions and click on Configure.

We will use the OOB connection records for this setup, however customers can also create their custom connection records.

GauravDiwanji_6-1733760280095.png

 

 

Open the highlighted records.

GauravDiwanji_7-1733760280112.png

Change the scope to ‘Microsoft Exchange Online Spoke’ and enter in the fields as shown below and Update.

GauravDiwanji_8-1733760280131.png

 

GauravDiwanji_9-1733760280146.png

 

 

For the Microsoft Exchange Online record, navigate to the OAuth Entity Scopes related list and ensure the below scope are present (they should be present OOB).

 

GauravDiwanji_0-1733764064950.png

 

Similarly navigate to the ‘Microsoft Exchange Online_clientCredentials’ records and enter in the highlighted fields and Update.

GauravDiwanji_1-1733764064964.png

 

 

Note that the OAuth Entity Scopes for this record just has one record.

GauravDiwanji_2-1733764212399.png

 

Navigate back to the Guided Setup and Mark Step 1 to Complete.

GauravDiwanji_65-1733761698864.png

 

 

Navigate to Step 2.

 

Read the instructions and click on Configure.

GauravDiwanji_66-1733761698868.png

Select the highlighted record to open it.

GauravDiwanji_67-1733761698884.png

Validate the fields highlighted below.

GauravDiwanji_68-1733761698893.png

 

Navigate back to the Guided Setup and Mark Step 2 as Complete.

GauravDiwanji_69-1733761698905.png

 

Navigate to Step 3 and complete the validation steps similar to the previous one.

GauravDiwanji_70-1733761798945.png

GauravDiwanji_71-1733761798966.png

 

GauravDiwanji_72-1733761799011.png

 

In the Guided Setup, Mark Step 3 as complete and navigate to Step 4.

In this step, we will validate the connections and get an OAuth token.

 

Click on Configure.

GauravDiwanji_73-1733761799020.png

GauravDiwanji_74-1733761799065.png

 

Open Graph 1 record and set the OAuth Entity Profile value as below and Update.

GauravDiwanji_75-1733761799078.png

 

Click on Get OAuth Token related list and ensure we get the token back. In case of errors, validate previous steps or double check the MS Exchange credentials provided.

 

GauravDiwanji_76-1733761799119.png

 

Similar steps are to be followed for the MS Graph 2 record.

GauravDiwanji_77-1733761799141.png

 

Mark Step 4 as complete.

GauravDiwanji_78-1733761842512.png

 

 

Configuring Microsoft Exchange Online as a Provider

Step 1:

GauravDiwanji_79-1733761842518.png

 

Click Configure. In the next screen for Providers, create a New provider.

GauravDiwanji_80-1733761842521.png

 

 

Create a new record as below and click Submit.

GauravDiwanji_81-1733761842527.png

Note: Sync Past Reservation field is also a part of this form - you can configure form layout in case it is not visible OOB.

 

Navigate to Guided Setup and Mark the step as complete.

GauravDiwanji_82-1733761842533.png

 

Step 2: Read the Instructions and Click Configure.

Select the highlighted record.

GauravDiwanji_83-1733761842547.png

 

Ensure the Grant type is Client Credentials since we are configuring for Normal (non-Strict) mode.

GauravDiwanji_84-1733761842553.png

 

Navigate back to the Guided Setup and mark this step as complete.

GauravDiwanji_85-1733761842555.png

Step 3 is relevant for Strict Mode. We would mark it as Authorization Code if we needed Strict Mode. We set it to mark as complete.

GauravDiwanji_86-1733761885378.png

 

Navigate to Step 4.

 

In this step, we will configure spaces in SN WSD that will synchronize with MS Exchange.

 

As a prerequisite, these spaces need to have an email address associated with them. To validate this, go to the space record, change the view to Synchronization, and ensure the space has an email address that corresponds to its resource email address in MS Exchange.

GauravDiwanji_87-1733761885390.png

 

 

In the Guided Setup, Click Configure.

GauravDiwanji_88-1733761885393.png

Click New.

GauravDiwanji_89-1733761885398.png

 

 

Create a record for the room and click Submit. An example is as shown below.

 

Note that this step needs to be done for all the resources/rooms/spaces that need to be synced with MS Exchange, but we recommend testing it out for a single space first.

GauravDiwanji_90-1733761885405.png

 

Navigate to Guided Setup and Mark Step 4 as complete.

GauravDiwanji_91-1733761885409.png

Generate Callback URL

Click configure in the below section.

GauravDiwanji_92-1733762299557.png

 

Click on the Callback URL button and ensure that the callback URL link is generated. Click Update.

GauravDiwanji_93-1733762299563.png

 

Navigate to Guided Setup and Mark as Complete.

GauravDiwanji_94-1733762299567.png

 

Retry policy for MS Exchange Online

Click Configure.

GauravDiwanji_95-1733762299570.png

 

Open highlighted record.

GauravDiwanji_96-1733762299574.png

 

Set Retry Strategy section values as below and Update.

GauravDiwanji_97-1733762299585.png

 

In the Guided Setup, Mark as Complete.

GauravDiwanji_98-1733762299588.png

 

Configure Calendar Sync timezone

 

Step 1

GauravDiwanji_99-1733762418944.png

 

Set the property value as needed. Please ensure the scope is ‘Workplace Calendar Synchronization’ if updating.

 

Setting the value to true allows you to control the time zone (System or User or Building) that is sent over to Exchange when sending over reservation details.

GauravDiwanji_100-1733762418951.png

 

For additional details, see product documentation for this property.

GauravDiwanji_101-1733762418955.png

 

Navigate to Step 2. Since we set the previous property to true, click configure.

GauravDiwanji_102-1733762418958.png

 

This property determines the time zone sent to MS Exchange – whether it is the user, building, or system time-zone.

GauravDiwanji_103-1733762418963.png

 

Once this property is validated/ updated, navigate back to the Guided Setup Step 2 and Mark as Complete.

GauravDiwanji_104-1733762418967.png

Navigate to Step 3 and click on Configure.

GauravDiwanji_105-1733762503332.png

 

Identify and set up the email notification, Who will receive section to identify the user to be notified of subscription failures.

GauravDiwanji_106-1733762503344.png

 

Navigate back to the Guided Setup, Step 3, and Mark as Complete.

GauravDiwanji_107-1733762503347.png

 

 

Verify Configurations

As a final step, you can click the Instance Scan link to verify the above configurations, as detailed here.

GauravDiwanji_108-1733762503349.png

 

Navigate to Instance Scan > Suites > Workplace Calendar Synchronization Configurations.

GauravDiwanji_109-1733762503366.png

 

Click Execute Suite Scan > Full Instance > Execute Scan 

GauravDiwanji_110-1733762540497.png

 

Once completed, click on Go to Results. Review results and update as needed.

GauravDiwanji_111-1733762540499.png

 

Navigate to Guided Setup and Mark as Complete.

 

GauravDiwanji_112-1733762540503.png

 

 

Additional Resources

Review additional resources in the next step.

GauravDiwanji_113-1733762540510.png

 

 

This KB is helpful for troubleshooting the most common issues.

 

Mark as complete.

 

We have now successfully completed setting up the Workplace Calendar Sync in Normal mode.

 

To carry out a functional validation of the calendar sync, please review the ‘Testing: making sure it works’ section in this blog.

 

For further details, please refer to the Product Documentation here.