Microsoft Outlook Component

Read and manage Microsoft Outlook calendars
Component key: ms-outlook#
DescriptionMicrosoft Outlook is a productivity suite for managing email and calendar.
#
Microsoft Outlook Connections#
OAuth 2.0 Authorization CodeYou 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.
Input | Default | Notes |
---|---|---|
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#
WebhookTrigger for handling webhooks from Outlook | key: webhook
#
Actions#
Cancel EventCancel an Event | key: cancelEvent
Input | Notes |
---|---|
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 CalendarCreate a new Calendar | key: createCalendar
Input | Default | Notes | Example |
---|---|---|---|
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 EventCreate an Event on a Calendar | key: createEvent
Input | Default | Notes | Example |
---|---|---|---|
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 SubscriptionCreate an Event subscription for Microsoft Outlook | key: createEventSubscription
Input | Default | Notes |
---|---|---|
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 SubscriptionsDelete all subscriptions pointed at this instance | key: deleteAllInstanceSubscriptions
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
#
Output Example Payload{ "data": { "subscriptionsRemoved": [ "26ebd1e9-c54a-4bbe-9583-fc05974952a4", "b9b27172-ee2e-4248-86df-fc98cb71d914" ] }}
#
Delete CalendarDelete an existing Calendar | key: deleteCalendar
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
Input Calendar ID string / Required | Notes ID of the Calendar to modify |
#
Output Example Payload{ "data": ""}
#
Delete EventDelete an Event | key: deleteEvent
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
Input Event ID string / Required | Notes Event ID to manipulate |
#
Output Example Payload{ "data": ""}
#
Delete SubscriptionDelete existing subscription for Microsoft Outlook | key: deleteSubscription
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
Input Subscription ID string / Required | Notes Subscription ID to manage |
#
Output Example Payload{ "data": ""}
#
Get Schedule AvailabilityGet the free/busy availability information for a collection of users | key: getSchedule
Input | Default | Notes | Example |
---|---|---|---|
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 CalendarsList all Calendars for the user | key: listCalendars
Input | Notes | 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#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 EventsList all Events for the user | key: listEvents
Input | Notes | Example |
---|---|---|
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 SubscriptionsList all subscriptions for Microsoft Outlook | key: listSubscriptions
Input | Default | Notes |
---|---|---|
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 LanguagesList supported languages for current user | key: listSupportedLanguages
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
#
List Supported TimezonesList supported timezones for current user | key: listSupportedTimezones
Input | Notes |
---|---|
Input Connection connection / Required | Notes |
#
Raw RequestIssue a raw HTTP request | key: rawRequest
Input | Default | Notes | Example |
---|---|---|---|
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 CalendarUpdate an existing Calendar | key: updateCalendar
Input | Default | Notes | Example |
---|---|---|---|
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 EventUpdate an existing Event | key: updateEvent
Input | Default | Notes | Example |
---|---|---|---|
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 ExpirationUpdate existing Event subscription expiration for Microsoft Outlook | key: updateEventSubscription
Input | Notes |
---|---|
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 |