Hi there,

This is Kusaka; I often write blogs on the subject of system integration

I was asked by a customer about integration with the Outlook calendar in Microsoft365/Office365. Here’s a summary of how to set up that integration.

Table of Contents
1: Background of Cooperation between Outlook and Questetra
2: Settings for linking Outlook and Questetra
 2.1: OAuth Settings in Outlook (Microsoft 365/Office 365)
 2.2: OAuth Settings in Questetra
3: Setting to call Outlook’s API from Questetra
4: Summary

1: Background of Cooperation between Outlook and Questetra

The following two cases are common in the integration with various calendar services, not only for Outlook.

  • Adding an event to the calendar in the middle of a business process flow
  • Launching a Workflow (Process) linked to an appointment registered in the calendar

First of all, this article describes in detail how to achieve the former case.

  Related article: Google Calendar: Insert Event * Prepared as a component for data integration (add-on XML)
                              How to Start Workflow by Events of Google Calendar

2: Settings for Linking Outlook and Questetra

We have a previous article on integration with Microsoft 365/Office 365, not just with Outlook.
   Related article: How to Cooperate between Office 365 and Cloud-based Workflows
As I wrote in this article, when we use Authorization Code in AzureAD v2.0 endpoint, we can only use OAuth2 configuration on the Questetra side. This time, we were able to achieve it in the same way.

2.1: OAuth Settings in Outlook (Microsoft 365/Office 365)

Please refer to the following article to obtain a Client ID and Client Secret.
 Application Registration Procedure in Office 365 for Linking Office 365 and Questetra Cloud Workflow with API

2.2: OAuth Settings in Questetra

It’s the same as the section “2.2: OAuth settings on the Questetra side” in the following article. Please refer to that article for the configuration.
Set the Scope to ”https://graph.microsoft.com/calendars.readwrite offline_access.“
    How to Output Files from Cloud-based Workflow Questetra to OneDrive

3: Setting to call Outlook’s API from Questetra

It’s very simple because it just sends the JSON in a fixed format to the designated URL.

By POSTing the following JSON data, the event is registered. To prepare the JSON, use the [Service Task (Data Assignment)] or [Script Task].
Related Manuals: M227: Auto Executing Data Binding, Arithmetic Operations
         M230: Auto Executing Complicated Data Processing (ECMAScript)
The following article is also helpful.
 The section “3.2: Setting on Questetra Not Using an Add-ons” in Posting to Microsoft Teams from Workflow
See here for details of the JSON format
 Microsoft Graph / v 1.0 Reference / Schedule / Events / Event resource type

{
  "subject": "(Scheduled name)",
  "body": {
    "contentType": "HTML",
    "content": "(Schedule Description)"
  },
  "start": {
      "dateTime": "2020-08-31T10:00:00",
      "timeZone": "Tokyo Standard Time"
  },
  "end": {
      "dateTime": "2020-08-31T11:00:00",
      "timeZone": "Tokyo Standard Time"
  },
  "location":{
      "displayName":"(Location)"
  },
  "attendees": [
    {
      "emailAddress": {
        "address":"test@example.com",
        "name": "Tsuyoshi Kusaka"
      },
      "type": "required"
    }
  ]
}

It can be sent using the Throwing Message Intermediate Event (HTTP).
Related Manuals: M225: Auto Sending of HTTP Requests with Business Data Inserted

  • Communication settings
    • HTTP Method:「POST (Specify Request Body)」
    • Data Item sent as the request body: String-type Data Item containing the JSON data to be sent
    • Request body’s Content-Type: application/json
    • Data Item for storing the response: Although not required, it is better to specify a character type data item to check the result
    • Data Items for storing errors: Although not required, it’s better to specify these Data Items so you can check the details of the error. Furthermore, it is better to set up a flow in case of error following this event that is determined if an error occurred or not by referring to this Data Item.
  • Header
    • Authorization Header: Select OAuth2.0
    • OAuth2 setting: specify the name set in 2.2

You can check the Teams calendar to see if it has been added correctly.

It would be easy to prepare it as a component (add-on XML) for data integration. I’ll summarize that in another post.

4: Summary

I have struggled with the Microsoft 365/Office 365 APIs in various ways in the past, but due to my expertise so far, it was easy to achieve than I expected this time around.

In the next article we will discuss another pattern.
 ・How to Start Cloud BPM Workflow Questetra Operations from Outlook Scheduler (Microsoft Power Automate integration/API integration)

If you have any questions, please feel free to contact us here.

Reference Documents
    Microsoft Graph / v1.0 reference / Users / Calendar / Create calendar

%d bloggers like this: