Skip to main content

Microsoft Outlook Component

Read and manage Microsoft Outlook calendars

Component key: ms-outlook

Description#

Microsoft Outlook is a productivity suite for managing email and calendar.

Microsoft Outlook Connections#

OAuth 2.0 Authorization Code#

You will first need to create and configure a new "App Registration" within your Azure Active Directory tenant. When creating the application you will be prompted to select the 'Supported account types'. Under this section, be sure to select 'Accounts in any organizational directory (Any Azure AD directory - Multitenant)'.

You will need to go to "Platforms" and add the "Web" platform. In that section you should add Prismatic's OAuth 2.0 callback URL - https://oauth2.prismatic.io/callback - as a Redirect URI.

Next, go to "Certificates & Secrets" for the app and add a new Client Secret. Note this value as you will need to supply it to the connection within Prismatic.

You will also need the Application (client) ID from the "Overview" page.

The last step of configuring the "App Registration" is assigning "App Permissions". Click "Add Permission", click on the card labeled "Microsoft Graph", and then "Delegated permissions". You should select all permissions that are required for your desired integration (relevant permissions are under "Calendars" and "Users")

Now, configure the OAuth 2.0 connection in Prismatic. Add an Microsoft Outlook OAuth 2.0 connection config variable:

  • Use the Application (client) ID value for the Client ID field.
  • Use the Client Secret for the same named field.
  • If you didn't select Multitenant when creating the Azure application, you will need to replace the Authorize URL and Token URL with ones specific to your tenant.

Save your integration and you should be able to authenticate a user with OAuth 2.0 to access their Microsoft Outlook data.

InputDefaultNotes
Input
Authorize URL
string
/ Required
Default
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?prompt=consent
Notes
The OAuth 2.0 Authorization URL for Microsoft Outlook
Input
Client ID
string
/ Required
Default
Notes
 
Input
Client secret value
password
/ Required
Default
Notes
 
Input
Scopes
string
Default
offline_access Calendar.ReadWrite User.Read
Notes
Microsoft Outlook permission scopes are set on the OAuth application
Input
Token URL
string
/ Required
Default
https://login.microsoftonline.com/common/oauth2/v2.0/token
Notes
The OAuth 2.0 Token URL for Microsoft Outlook

Triggers#

Webhook#

Trigger for handling webhooks from Outlook | key: webhook


Actions#

Cancel Event#

Cancel an Event | key: cancelEvent

InputNotes
Input
Comment
string
Notes
Comment about the cancellation sent to all attendees
Input
Connection
connection
/ Required
Notes
 
Input
Event ID
string
/ Required
Notes
Event ID to manipulate

Output Example Payload#

{  "data": ""}

Create Calendar#

Create a new Calendar | key: createCalendar

InputDefaultNotesExample
Input
Color
string
/ Required
Default
auto
Notes
Color of the Calendar; see 'color' at https://learn.microsoft.com/en-us/graph/api/resources/calendar?view=graph-rest-1.0#properties for details
Example
lightRed
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
Name
string
/ Required
Default
Notes
Name of the Calendar
Example
 

Output Example Payload#

{  "data": {    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",    "@odata.id": "https://graph.microsoft.com/v1.0/users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/calendars('AAMkADJmMVAAA=')",    "id": "AAMkADJmMVAAA=",    "name": "Volunteer",    "color": "auto",    "changeKey": "DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",    "canShare": true,    "canViewPrivateItems": true,    "hexColor": "",    "canEdit": true,    "allowedOnlineMeetingProviders": [      "teamsForBusiness"    ],    "defaultOnlineMeetingProvider": "teamsForBusiness",    "isTallyingResponses": true,    "isRemovable": false,    "owner": {      "name": "Samantha Booth",      "address": "samanthab@adatum.onmicrosoft.com"    }  }}

Create Event#

Create an Event on a Calendar | key: createEvent

InputDefaultNotesExample
Input
Type
string
Key Value List
Default
Notes
Attendees of the Event
Example
 
Input
Attendees Data Collection
data
Default
Notes
Field for references to data structures representing attendees. Will be merged with Attendees if both are specified.
Example
[{ emailAddress: { address: 'example@example.com', name: 'Example Name' }, type: 'required' }]
Input
Body (HTML)
string
/ Required
Default
Notes
HTML Body of the Event
Example
 
Input
Calendar ID
string
Default
Notes
Calendar ID to list Events of; will list all events for current user if unspecified
Example
 
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
End At
string
/ Required
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T14:00:00
Input
End Timezone
string
/ Required
Default
UTC
Notes
Timezone for the End time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time
Input
Location Name
string
/ Required
Default
Notes
Name of the Location
Example
 
Input
Start At
string
/ Required
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T12:00:00
Input
Start Timezone
string
/ Required
Default
UTC
Notes
Timezone for the Start time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time
Input
Subject
string
/ Required
Default
Notes
Subject of the Event
Example
 

Output Example Payload#

{  "data": {    "subject": "Let's go for lunch",    "body": {      "contentType": "html",      "content": "Does noon work for you?"    },    "start": {      "dateTime": "2017-04-15T12:00:00",      "timeZone": "Pacific Standard Time"    },    "end": {      "dateTime": "2017-04-15T14:00:00",      "timeZone": "Pacific Standard Time"    },    "location": {      "displayName": "Harry's Bar"    },    "attendees": [      {        "emailAddress": {          "address": "samanthab@contoso.onmicrosoft.com",          "name": "Samantha Booth"        },        "type": "required"      }    ],    "allowNewTimeProposals": true,    "transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"  }}

Create Event Subscription#

Create an Event subscription for Microsoft Outlook | key: createEventSubscription

InputDefaultNotes
Input
Allow Duplicates
boolean
Default
false
Notes
Enable to allow more than one webhook per endpoint
Input
Connection
connection
/ Required
Default
 
Notes
 
Input
Expiration Date/Time
string
Default
Notes
Expiration date/time for subscription. If unspecified the default will be the current date/time plus 29 days (close to the maximum permitted by the Graph API).
Input
Notification URL
string
/ Required
Default
Notes
URL to send events of this Subscription to

Delete All Instance Subscriptions#

Delete all subscriptions pointed at this instance | key: deleteAllInstanceSubscriptions

InputNotes
Input
Connection
connection
/ Required
Notes
 

Output Example Payload#

{  "data": {    "subscriptionsRemoved": [      "26ebd1e9-c54a-4bbe-9583-fc05974952a4",      "b9b27172-ee2e-4248-86df-fc98cb71d914"    ]  }}

Delete Calendar#

Delete an existing Calendar | key: deleteCalendar

InputNotes
Input
Connection
connection
/ Required
Notes
 
Input
Calendar ID
string
/ Required
Notes
ID of the Calendar to modify

Output Example Payload#

{  "data": ""}

Delete Event#

Delete an Event | key: deleteEvent

InputNotes
Input
Connection
connection
/ Required
Notes
 
Input
Event ID
string
/ Required
Notes
Event ID to manipulate

Output Example Payload#

{  "data": ""}

Delete Subscription#

Delete existing subscription for Microsoft Outlook | key: deleteSubscription

InputNotes
Input
Connection
connection
/ Required
Notes
 
Input
Subscription ID
string
/ Required
Notes
Subscription ID to manage

Output Example Payload#

{  "data": ""}

Get Schedule Availability#

Get the free/busy availability information for a collection of users | key: getSchedule

InputDefaultNotesExample
Input
Availability View Interval
string
Default
30
Notes
Duration of time slot to check availability for in minutes
Example
60
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
End At
string
/ Required
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T14:00:00
Input
End Timezone
string
/ Required
Default
UTC
Notes
Timezone for the End time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time
Input
Schedules
string
/ Required
Value List
Default
Notes
Collection of SMTP addresses of users, distribution lists, or resources to get availability information for
Example
example@example.com
Input
Start At
string
/ Required
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T12:00:00
Input
Start Timezone
string
/ Required
Default
UTC
Notes
Timezone for the Start time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time

Output Example Payload#

{  "data": {    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.scheduleInformation)",    "value": [      {        "scheduleId": "adelev@contoso.onmicrosoft.com",        "availabilityView": "000220000",        "scheduleItems": [          {            "isPrivate": false,            "status": "busy",            "subject": "Let's go for lunch",            "location": "Harry's Bar",            "start": {              "dateTime": "2019-03-15T12:00:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T14:00:00.0000000",              "timeZone": "Pacific Standard Time"            }          }        ],        "workingHours": {          "daysOfWeek": [            "monday",            "tuesday",            "wednesday",            "thursday",            "friday"          ],          "startTime": "08:00:00.0000000",          "endTime": "17:00:00.0000000",          "timeZone": {            "name": "Pacific Standard Time"          }        }      },      {        "scheduleId": "meganb@contoso.onmicrosoft.com",        "availabilityView": "200220010",        "scheduleItems": [          {            "status": "busy",            "start": {              "dateTime": "2019-03-15T08:30:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T09:30:00.0000000",              "timeZone": "Pacific Standard Time"            }          },          {            "status": "busy",            "start": {              "dateTime": "2019-03-15T12:00:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T14:00:00.0000000",              "timeZone": "Pacific Standard Time"            }          },          {            "status": "tentative",            "start": {              "dateTime": "2019-03-15T12:00:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T13:00:00.0000000",              "timeZone": "Pacific Standard Time"            }          },          {            "status": "busy",            "start": {              "dateTime": "2019-03-15T13:00:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T14:00:00.0000000",              "timeZone": "Pacific Standard Time"            }          },          {            "status": "tentative",            "start": {              "dateTime": "2019-03-15T16:00:00.0000000",              "timeZone": "Pacific Standard Time"            },            "end": {              "dateTime": "2019-03-15T17:00:00.0000000",              "timeZone": "Pacific Standard Time"            }          }        ],        "workingHours": {          "daysOfWeek": [            "monday",            "tuesday",            "wednesday",            "thursday",            "friday"          ],          "startTime": "08:00:00.0000000",          "endTime": "17:00:00.0000000"        }      }    ]  }}

List Calendars#

List all Calendars for the user | key: listCalendars

InputNotesExample
Input
Connection
connection
/ Required
Notes
 
Example
 
Input
Page Limit
string
Notes
Enter number for desired page size.
Example
100
Input
Page Skip
string
Notes
Enter number of records to skip.
Example
100

Output Example Payload#

{  "data": {    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars",    "value": [      {        "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/calendars('AAMkAGI2TGuLAAA=')",        "id": "AAMkAGI2TGuLAAA=",        "name": "Calendar",        "color": "auto",        "changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",        "canShare": true,        "canViewPrivateItems": true,        "hexColor": "",        "canEdit": true,        "allowedOnlineMeetingProviders": [          "teamsForBusiness"        ],        "defaultOnlineMeetingProvider": "teamsForBusiness",        "isTallyingResponses": true,        "isRemovable": false,        "owner": {          "name": "Samantha Booth",          "address": "samanthab@adatum.onmicrosoft.com"        }      }    ]  }}

List Events#

List all Events for the user | key: listEvents

InputNotesExample
Input
Calendar ID
string
Notes
Calendar ID to list Events of; will list all events for current user if unspecified
Example
 
Input
Connection
connection
/ Required
Notes
 
Example
 
Input
Page Limit
string
Notes
Enter number for desired page size.
Example
100
Input
Page Skip
string
Notes
Enter number of records to skip.
Example
100

Output Example Payload#

{  "data": {    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview,organizer,attendees,start,end,location)",    "value": [      {        "@odata.etag": "W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",        "id": "AAMkAGIAAAoZDOFAAA=",        "subject": "Orientation ",        "bodyPreview": "Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",        "body": {          "contentType": "html",          "content": "<html><head></head><body><p>Dana, this is the time you selected for our orientation. Please bring the notes I sent you.</p></body></html>"        },        "start": {          "dateTime": "2017-04-21T10:00:00.0000000",          "timeZone": "Pacific Standard Time"        },        "end": {          "dateTime": "2017-04-21T12:00:00.0000000",          "timeZone": "Pacific Standard Time"        },        "location": {          "displayName": "Assembly Hall",          "locationType": "default",          "uniqueId": "Assembly Hall",          "uniqueIdType": "private"        },        "locations": [          {            "displayName": "Assembly Hall",            "locationType": "default",            "uniqueIdType": "unknown"          }        ],        "attendees": [          {            "type": "required",            "status": {              "response": "none",              "time": "0001-01-01T00:00:00Z"            },            "emailAddress": {              "name": "Samantha Booth",              "address": "samanthab@a830edad905084922E17020313.onmicrosoft.com"            }          },          {            "type": "required",            "status": {              "response": "none",              "time": "0001-01-01T00:00:00Z"            },            "emailAddress": {              "name": "Dana Swope",              "address": "danas@a830edad905084922E17020313.onmicrosoft.com"            }          }        ],        "organizer": {          "emailAddress": {            "name": "Samantha Booth",            "address": "samanthab@a830edad905084922E17020313.onmicrosoft.com"          }        }      }    ]  }}

List Subscriptions#

List all subscriptions for Microsoft Outlook | key: listSubscriptions

InputDefaultNotes
Input
Connection
connection
/ Required
Default
 
Notes
 
Input
Show Instance Webhooks
boolean
/ Required
Default
true
Notes
Show only subscriptions for this Instance's webhooks

List Supported Languages#

List supported languages for current user | key: listSupportedLanguages

InputNotes
Input
Connection
connection
/ Required
Notes
 

List Supported Timezones#

List supported timezones for current user | key: listSupportedTimezones

InputNotes
Input
Connection
connection
/ Required
Notes
 

Raw Request#

Issue a raw HTTP request | key: rawRequest

InputDefaultNotesExample
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
Data
string
Default
Notes
The HTTP body payload to send to the URL.
Example
{"exampleKey": "Example Data"}
Input
Debug Request
boolean
Default
false
Notes
Enabling this flag will log out the current request.
Example
 
Input
File Data
string
Key Value List
Default
Notes
File Data to be sent as a multipart form upload.
Example
[{key: "example.txt", value: "My File Contents"}]
Input
Form Data
string
Key Value List
Default
Notes
The Form Data to be sent as a multipart form upload.
Example
[{"key": "Example Key", "value": new Buffer("Hello World")}]
Input
Header
string
Key Value List
Default
Notes
A list of headers to send with the request.
Example
User-Agent: curl/7.64.1
Input
Max Retry Count
string
Default
0
Notes
The maximum number of retries to attempt.
Example
 
Input
Method
string
/ Required
Default
Notes
The HTTP method to use.
Example
 
Input
Query Parameter
string
Key Value List
Default
Notes
A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.
Example
 
Input
Response Type
string
/ Required
Default
json
Notes
The type of data you expect in the response. You can request json, text, or binary data.
Example
 
Input
Retry On All Errors
boolean
Default
false
Notes
If true, retries on all erroneous responses regardless of type.
Example
 
Input
Retry Delay (ms)
string
Default
0
Notes
The delay in milliseconds between retries.
Example
 
Input
Timeout
string
Default
Notes
The maximum time that a client will await a response to its request
Example
2000
Input
URL
string
/ Required
Default
Notes
This is the URL to call.
Example
/sobjects/Account
Input
Use Exponential Backoff
boolean
Default
false
Notes
Specifies whether to use a pre-defined exponential backoff strategy for retries.
Example
 

Update Calendar#

Update an existing Calendar | key: updateCalendar

InputDefaultNotesExample
Input
Color
string
/ Required
Default
auto
Notes
Color of the Calendar; see 'color' at https://learn.microsoft.com/en-us/graph/api/resources/calendar?view=graph-rest-1.0#properties for details
Example
lightRed
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
Calendar ID
string
/ Required
Default
Notes
ID of the Calendar to modify
Example
 
Input
Name
string
Default
Notes
Name of the Calendar
Example
 

Output Example Payload#

{  "data": {    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",    "@odata.id": "https://graph.microsoft.com/v1.0/users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/calendars('AAMkADJmMVAAA=')",    "id": "AAMkADJmMVAAA=",    "name": "Social events",    "color": "auto",    "isDefaultCalendar": false,    "changeKey": "DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",    "canShare": true,    "canViewPrivateItems": true,    "hexColor": "",    "canEdit": true,    "allowedOnlineMeetingProviders": [      "teamsForBusiness"    ],    "defaultOnlineMeetingProvider": "teamsForBusiness",    "isTallyingResponses": true,    "isRemovable": false,    "owner": {      "name": "Samantha Booth",      "address": "samanthab@adatum.onmicrosoft.com"    }  }}

Update Event#

Update an existing Event | key: updateEvent

InputDefaultNotesExample
Input
Type
string
Key Value List
Default
Notes
Attendees of the Event
Example
 
Input
Attendees Data Collection
data
Default
Notes
Field for references to data structures representing attendees. Will be merged with Attendees if both are specified.
Example
[{ emailAddress: { address: 'example@example.com', name: 'Example Name' }, type: 'required' }]
Input
Body (HTML)
string
Default
Notes
HTML Body of the Event
Example
 
Input
Connection
connection
/ Required
Default
 
Notes
 
Example
 
Input
End At
string
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T14:00:00
Input
End Timezone
string
Default
UTC
Notes
Timezone for the End time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time
Input
Event ID
string
/ Required
Default
Notes
Event ID to manipulate
Example
 
Input
Location Name
string
Default
Notes
Name of the Location
Example
 
Input
Start At
string
Default
Notes
ISO formatted timestamp without timezone information
Example
2017-04-15T12:00:00
Input
Start Timezone
string
Default
UTC
Notes
Timezone for the Start time of the Event; use the List Supported Timezones action for details on valid aliases/values for this user
Example
Pacific Standard Time
Input
Subject
string
Default
Notes
Subject of the Event
Example
 

Output Example Payload#

{  "data": {    "subject": "Let's go for lunch",    "body": {      "contentType": "html",      "content": "Does noon work for you?"    },    "start": {      "dateTime": "2017-04-15T12:00:00",      "timeZone": "Pacific Standard Time"    },    "end": {      "dateTime": "2017-04-15T14:00:00",      "timeZone": "Pacific Standard Time"    },    "location": {      "displayName": "Harry's Bar"    },    "attendees": [      {        "emailAddress": {          "address": "samanthab@contoso.onmicrosoft.com",          "name": "Samantha Booth"        },        "type": "required"      }    ],    "allowNewTimeProposals": true,    "transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"  }}

Update Event Subscription Expiration#

Update existing Event subscription expiration for Microsoft Outlook | key: updateEventSubscription

InputNotes
Input
Connection
connection
/ Required
Notes
 
Input
Expiration Date/Time
string
Notes
Expiration date/time for subscription. If unspecified the default will be the current date/time plus 29 days (close to the maximum permitted by the Graph API).
Input
Subscription ID
string
/ Required
Notes
Subscription ID to manage