Skip to main content

Microsoft Outlook Component

Read and manage Microsoft Outlook calendars and email

Component key: ms-outlook

Changelog ↓

Description

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

Connections

OAuth 2.0 Authorization Code (Deprecated)

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 the 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.

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

Now, configure the OAuth 2.0 connection. 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.
  • The default scopes are as follows. You can remove scopes that you don't need:
    • https://graph.microsoft.com/User.Read for reading basic user data
    • https://graph.microsoft.com/Calendars.ReadWrite for managing Outlook calendar
    • https://graph.microsoft.com/Mail.ReadWrite for managing email
    • https://graph.microsoft.com/Mail.Send for sending email
    • Ensure the offline_access scope is included in your app registration. It is essential to maintain your OAuth connection and receive refresh tokens. Without it, users will need to re-authenticate every hour.

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

InputDefaultNotesExample
Authorize URL
string
/ Required
authorizeUrl
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?prompt=consent
The OAuth 2.0 Authorization URL for Microsoft Outlook
 
Base URL
string
/ Required
baseUrl
https://graph.microsoft.com
The base URL for the Microsoft Graph API. Depending on your cloud environment, you can choose the correct one [on this page](https://learn.microsoft.com/en-us/graph/deployments#microsoft-graph-and-graph-explorer-service-root-endpoints).
https://graph.microsoft.com
Client ID
string
/ Required
clientId
 
 
Client secret value
password
/ Required
clientSecret
 
 
Scopes
string
scopes
https://graph.microsoft.com/User.Read https://graph.microsoft.com/Calendars.ReadWrite https://graph.microsoft.com/Mail.ReadWrite https://graph.microsoft.com/Mail.Send offline_access
Microsoft Outlook permission scopes are set on the OAuth application
 
Token URL
string
/ Required
tokenUrl
https://login.microsoftonline.com/common/oauth2/v2.0/token
The OAuth 2.0 Token URL for Microsoft Outlook
 

OAuth 2.0 Client Credentials

This Connection will require an App Registration:

  1. Navigate to the Microsoft Entra Identity > Applications > App registrations and select New registration.
    1. Set the Supported Account types to Accounts in any organizational directory (Any Azure AD directory - Multitenant) so that users outside of your organization (i.e. your customers) can authenticate.
    2. Set the Redirect URI dropdown as a "Web" platform. In that section add the OAuth callback URL https://oauth2.prismatic.io/callback - as a Redirect URI.
    3. Select Register to complete.
  2. From the App menu navigate to Certificates & Secrets for the app and add a new Client Secret. Save the Value for the Client Secret in the connection's configuration.
  3. Navigate to the Overview page save the value listed as the Application (client) ID. This will be your Client ID for the connection configuration.
  4. Navigate to API Permissions and select Add Permission, select Microsoft Graph, and then Application permissions.
  5. After applying all permissions relevant for your use-case, click on Grant Admin Consent in order to transfer permissions the client credentials flow after a successful connection.

To configure the OAuth 2.0 connection:

  1. Add an OAuth 2.0 connection configuration variable:
    1. All actions for the client credentials flow require authentication with your Tenant ID.
    2. Use the Application (client) ID value for the Client ID field.
    3. Use the Client Secret for the same named field.
    4. Use the default scope that comes set up with the connection.
InputDefaultNotesExample
Base URL
string
/ Required
baseUrl
https://graph.microsoft.com
The base URL for the Microsoft Graph API. Depending on your cloud environment, you can choose the correct one [here](https://learn.microsoft.com/en-us/graph/deployments#microsoft-graph-and-graph-explorer-service-root-endpoints).
https://graph.microsoft.com
Client ID
string
/ Required
clientId
Client Id of your Azure application.
11111111-2222-3333-4444-555555555555
Client Secret
password
/ Required
clientSecret
Client Secret generated under 'Certificates & Secrets' in your Azure application.
11111111-2222-3333-4444-555555555555
Microsoft Entra ID Endpoint
string
/ Required
entraIdEndpoint
https://login.microsoftonline.com
The Microsoft Entra ID endpoint for the Microsoft Graph API. You can find this in the Azure portal or [here](https://learn.microsoft.com/en-us/graph/deployments#app-registration-and-token-service-root-endpoints).
https://login.microsoftonline.com
Scopes
string
scopes
https://graph.microsoft.com/.default
Microsoft Graph API Scopes.
 
Tenant
string
/ Required
tenant
The tenant ID or name for the Microsoft Graph API. This is the ID or name of the tenant that you are connecting to.
11111111-2222-3333-4444-555555555555
Token URL
template
/ Required
Hidden Field
tokenUrl
{{#entraIdEndpoint}}/{{#tenant}}/oauth2/v2.0/token
Provide a tenant specific OAuth 2.0 token endpoint.
 
User ID
string
/ Required
userId
User ID to specify which user's data to access. Required for client credentials authentication to work with user-specific endpoints.
 

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 the 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.

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

Now, configure the OAuth 2.0 connection. 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.
  • The default scopes are as follows. You can remove scopes that you don't need:
    • https://graph.microsoft.com/User.Read for reading basic user data
    • https://graph.microsoft.com/Calendars.ReadWrite for managing Outlook calendar
    • https://graph.microsoft.com/Mail.ReadWrite for managing email
    • https://graph.microsoft.com/Mail.Send for sending email

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

InputDefaultNotesExample
Authorize URL
template
/ Required
Hidden Field
authorizeUrl
https://{{#tenantUrl}}/oauth2/v2.0/authorize?prompt=consent
The OAuth 2.0 Authorization URL for Microsoft's Graph API.
login.microsoftonline.com/common
Base URL
string
/ Required
baseUrl
https://graph.microsoft.com
The base URL for the Microsoft Graph API. Depending on your cloud environment, you can choose the correct one [here](https://learn.microsoft.com/en-us/graph/deployments#microsoft-graph-and-graph-explorer-service-root-endpoints).
https://graph.microsoft.com
Client ID
string
/ Required
clientId
Client Id of your Azure application.
11111111-2222-3333-4444-555555555555
Client secret value
password
/ Required
clientSecret
Client Secret generated under 'Certificates & Secrets' in your Azure application.
11111111-2222-3333-4444-555555555555
Scopes
string
scopes
https://graph.microsoft.com/User.Read https://graph.microsoft.com/Calendars.ReadWrite https://graph.microsoft.com/Mail.ReadWrite https://graph.microsoft.com/Mail.Send offline_access
Microsoft Graph API permission scopes are set on the OAuth application.
 
Tenant URL
string
/ Required
tenantUrl
login.microsoftonline.com/common
The tenant URL for the Microsoft Graph API. This is the URL of the tenant that you are connecting to. You can find this in the Azure portal or [here](https://learn.microsoft.com/en-us/entra/identity-platform/authentication-national-cloud#microsoft-entra-authentication-endpoints).
login.microsoftonline.com/common
Token URL
template
/ Required
Hidden Field
tokenUrl
https://{{#tenantUrl}}/oauth2/v2.0/token
The OAuth 2.0 Token URL for Microsoft's Graph API.
login.microsoftonline.com/common

Triggers

Webhook

Receive and validate webhook requests from Outlook for webhooks you configure. | key: webhook


Data Sources

Select Calendar

Select a calendar from the list of calendars | key: selectCalendar | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Select Event

Select an event from the list of events | key: selectEvent | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Select Language

Select a language from the list of supported languages | key: selectLanguage | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Select Mail Folder

Select a mail folder from the list of folders | key: selectMailFolder | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Select Message

Select a message from the list of messages | key: selectMessage | type: picklist

InputNotesExample
Connection
connection
/ Required
connection
 
 
Filter
string
filter
A filter to apply to the messages. Cannot be used with Search.
from/emailAddress/address eq 'user@example.com'
Folder ID
string
folderId
The unique identifier of the folder. Omit to list all messages.
AAMkAGI2TGuLAAA=
Search
string
search
A search query to filter messages. Cannot be used with Filter.
subject:meeting

Select Subscription

Select a subscription from the list of subscriptions | key: selectSubscription | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Select Timezone

Select a timezone from the list of supported timezones | key: selectTimezone | type: picklist

InputNotes
Connection
connection
/ Required
connection
 

Actions

Cancel Event

Cancel an Event | key: cancelEvent

InputNotesExample
Comment
string
comment
Comment about the cancellation sent to all attendees
 
Connection
connection
/ Required
connection
 
 
Event ID
string
/ Required
eventId
The unique identifier of the event.
AAMkAGIAAAoZDOFAAA=

{
"data": ""
}

Create Calendar

Create a new Calendar | key: createCalendar

InputDefaultNotesExample
Color
string
/ Required
color
auto
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
lightRed
Connection
connection
/ Required
connection
 
 
 
Name
string
/ Required
name
The name of the calendar.
Project Calendar

{
"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
Type
string
Key Value List
attendees
Attendees of the event.
 
Attendees Data Collection
data
attendeesData
Reference to data structures representing attendees. Will be merged with Attendees if both are specified.
[{ emailAddress: { address: 'john.doe@example.com', name: 'John Doe' }, type: 'required' }]
Body (HTML)
string
/ Required
body
The HTML body of the event.
<p>Please join us for the team meeting.</p>
Calendar ID
string
calendarId
Calendar ID to list events of. Will list all events for current user if unspecified.
AAMkAGI2TGuLAAA=
Connection
connection
/ Required
connection
 
 
 
End At
string
/ Required
end
ISO formatted timestamp without timezone information.
2017-04-15T14:00:00
End Timezone
string
/ Required
endTimezone
UTC
Timezone for the end time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.
Pacific Standard Time
Location Name
string
/ Required
locationName
The name of the location.
Conference Room A
Start At
string
/ Required
start
ISO formatted timestamp without timezone information.
2017-04-15T12:00:00
Start Timezone
string
/ Required
startTimezone
UTC
Timezone for the start time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.
Pacific Standard Time
Subject
string
/ Required
subject
The subject of the event.
Team Meeting

{
"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": "Conference Room A"
},
"attendees": [
{
"emailAddress": {
"address": "john.doe@example.com",
"name": "John Doe"
},
"type": "required"
}
],
"allowNewTimeProposals": true,
"transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"
}
}

Create Event Subscription

Create an Event subscription for Microsoft Outlook | key: createEventSubscription

InputDefaultNotesExample
Allow Duplicates
boolean
allowDuplicates
false
Enable to allow more than one webhook per endpoint.
 
Connection
connection
/ Required
connection
 
 
 
Expiration Date/Time
string
expirationDateTime
Expiration date/time for subscription. If unspecified, the default will be the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).
2024-12-31T23:59:59.999Z
Notification URL
string
/ Required
notificationUrl
The URL where notification events will be sent.
https://example.com/webhook

Create Mail Folder

Create a new mail folder | key: createMailFolder

InputNotesExample
Connection
connection
/ Required
connection
 
 
Display name
string
/ Required
name
The display name of the folder.
Project Files
Parent Folder ID
string
parentFolderId
Create a folder under this parent folder. Omit to create a root-level folder.
AAMkAGI2TGuLAAA=

{
"data": {
"displayName": "displayName-value",
"parentFolderId": "parentFolderId-value",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"id": "id-value",
"isHidden": true
}
}

Create Mail Folder Subscription

Create a Mail Folder subscription for Microsoft Outlook | key: createMailFolderSubscription

InputNotesExample
Mail Change Types
string
/ Required
Value List
changeType
The type of change to listen for.
 
Connection
connection
/ Required
connection
 
 
Expiration Date/Time
string
expirationDateTime
Expiration date/time for subscription. If unspecified, the default will be the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).
2024-12-31T23:59:59.999Z
Notification URL
string
/ Required
notificationUrl
The URL where notification events will be sent.
https://example.com/webhook

Delete All Instance Subscriptions

Delete all subscriptions pointed at this instance | key: deleteAllInstanceSubscriptions

InputNotes
Connection
connection
/ Required
connection
 

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

Delete Calendar

Delete an existing Calendar | key: deleteCalendar

InputNotesExample
Connection
connection
/ Required
connection
 
 
Calendar ID
string
/ Required
id
The unique identifier of the calendar to modify.
AAMkAGI2TGuLAAA=

{
"data": ""
}

Delete Event

Delete an Event | key: deleteEvent

InputNotesExample
Connection
connection
/ Required
connection
 
 
Event ID
string
/ Required
eventId
The unique identifier of the event.
AAMkAGIAAAoZDOFAAA=

{
"data": ""
}

Delete Mail Folder

Delete the specified mail folder | key: deleteMailFolder

InputNotesExample
Connection
connection
/ Required
connection
 
 
Folder ID
string
/ Required
folderId
The unique identifier of the folder.
AAMkAGI2TGuLAAA=

{
"data": null
}

Delete Message

Delete message by ID | key: deleteMessage

InputNotesExample
Connection
connection
/ Required
connection
 
 
Message ID
string
/ Required
messageId
The unique identifier of the message.
AAMkAGUAAAwTW09AAA=

{
"data": null
}

Delete Subscription

Delete existing subscription for Microsoft Outlook | key: deleteSubscription

InputNotesExample
Connection
connection
/ Required
connection
 
 
Subscription ID
string
/ Required
subscriptionId
The unique identifier of the subscription.
e9d5b726-4478-4412-bfba-268530484566

{
"data": ""
}

Get Calendar Event

Gets information about a specific calendar event | key: getCalendarEvent

InputNotesExample
Connection
connection
/ Required
connection
 
 
Event ID
string
/ Required
eventId
The unique identifier of the calendar event.
AAMkAGIAAAoZDOFAAA=

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",
"@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",
"isDefaultCalendar": false,
"changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"canShare": true,
"canViewPrivateItems": true,
"hexColor": "",
"canEdit": true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner": {
"name": "John Doe",
"address": "john.doe@example.com"
}
}
}

Get Current User

Get the information and metadata of the user that is currently logged in | key: getCurrentUser

InputNotes
Connection
connection
/ Required
connection
 

{
"data": {
"businessPhones": [
"+1 555 555 5555"
],
"displayName": "John Doe",
"givenName": "John",
"jobTitle": "Manager",
"mail": "john.doe@example.com",
"mobilePhone": "+1 555 555 5555",
"officeLocation": "example",
"preferredLanguage": "en-US",
"surname": "Doe",
"id": "3693-4789-a1c3-f4de565f"
}
}

Get Mail Message

Fetch and parse a raw message by ID | key: getMessageById

InputNotesExample
Connection
connection
/ Required
connection
 
 
Message ID
string
/ Required
messageId
The unique identifier of the message.
AAMkAGUAAAwTW09AAA=

{
"data": {
"message": {
"headers": {
"mime-version": "1.0",
"date": "2022-09-19T20:09:01.000Z",
"message-id": "<Test-message-id@mail.outlook.com>",
"subject": "Test Message",
"from": {
"value": [
{
"address": "example@outlook.com",
"name": "Example Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example Example</span> &lt;<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>&gt;</span>",
"text": "Example Example <example@outlook.com>"
},
"to": {
"value": [
{
"address": "example@outlook.com",
"name": "Example Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example Example</span> &lt;<a href=\"mailto:example@gmail.com\" class=\"mp_address_email\">example@gmail.com</a>&gt;</span>",
"text": "Example Example <example@outlook.com>"
},
"content-type": {
"value": "multipart/mixed",
"params": {
"boundary": "000000000000680fa005e90d488f"
}
}
},
"attachments": [],
"text": "Example email body",
"html": "<div dir=\"ltr\">Example email body<div><br></div></div>\n"
},
"rawMessage": "Raw MIME message"
}
}

Get Schedule Availability

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

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

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.scheduleInformation)",
"value": [
{
"scheduleId": "user1@example.com",
"availabilityView": "000220000",
"scheduleItems": [
{
"isPrivate": false,
"status": "busy",
"subject": "Let's go for lunch",
"location": "Conference Room A",
"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": "user2@example.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

InputDefaultNotesExample
Connection
connection
/ Required
connection
 
 
 
Fetch All
boolean
fetchAll
false
Fetch all records using pagination.
 
Page Limit
string
pageLimit
The maximum number of results to return per page.
100
Page Skip
string
pageSkip
The number of records to skip before returning results.
100

{
"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": "John Doe",
"address": "john.doe@example.com"
}
}
]
}
}

List Events

List all Events for the user | key: listEvents

InputDefaultNotesExample
Calendar ID
string
calendarId
Calendar ID to list events of. Will list all events for current user if unspecified.
AAMkAGI2TGuLAAA=
Connection
connection
/ Required
connection
 
 
 
Fetch All
boolean
fetchAll
false
Fetch all records using pagination.
 
Page Limit
string
pageLimit
The maximum number of results to return per page.
100
Page Skip
string
pageSkip
The number of records to skip before returning results.
100

{
"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": "Please join us for the team orientation. Bring any questions you may have.",
"body": {
"contentType": "html",
"content": "<html><head></head><body><p>Please join us for the team orientation. Bring any questions you may have.</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": "John Doe",
"address": "john.doe@example.com"
}
},
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Jane Smith",
"address": "jane.smith@example.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@a830edad905084922E17020313.onmicrosoft.com"
}
}
}
]
}
}

List Mail Folders

Get the mail folder collection directly under the root folder of the signed-in user, or under the specified parent folder. | key: listMailFolders

InputDefaultNotesExample
Connection
connection
/ Required
connection
 
 
 
Fetch All
boolean
fetchAll
false
Fetch all records using pagination.
 
Page Limit
string
pageLimit
The maximum number of results to return per page.
100
Page Skip
string
pageSkip
The number of records to skip before returning results.
100
Parent Folder ID
string
parentFolderId
List all folders contained within this folder. Omit to list root-level folders.
AAMkAGI2TGuLAAA=

{
"data": {
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('68ca8ec0-11f8-456b-a785-70d9936650d5')/mailFolders",
"value": [
{
"id": "AQMkADYAAAIBCgAAAA==",
"displayName": "Deleted Items",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBDwAAAA==",
"displayName": "Drafts",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBDAAAAA==",
"displayName": "Inbox",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 1,
"unreadItemCount": 70,
"totalItemCount": 71,
"isHidden": false
},
{
"@odata.type": "#microsoft.graph.mailSearchFolder",
"id": "AAMkADYRAAAZg1yTAAA=",
"displayName": "Weekly digests",
"parentFolderId": "AQMkADYAAAIBDAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 4,
"totalItemCount": 5,
"isHidden": false,
"isSupported": true,
"filterQuery": "contains(subject, 'weekly digest')"
},
{
"id": "AQMkADYAAAIBGQAAAA==",
"displayName": "Junk Email",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBCwAAAA==",
"displayName": "Outbox",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
},
{
"id": "AQMkADYAAAIBCQAAAA==",
"displayName": "Sent Items",
"parentFolderId": "AQMkADYAAAIBCAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isHidden": false
}
]
}
}

List Mail Messages

List mail messages in a user's mailbox | key: listMessages

InputDefaultNotesExample
Connection
connection
/ Required
connection
 
 
 
Fetch All
boolean
fetchAll
false
Fetch all records using pagination.
 
Filter
string
filter
A filter to apply to the messages. Cannot be used with Search.
from/emailAddress/address eq 'user@example.com'
Folder ID
string
folderId
The unique identifier of the folder. Omit to list all messages.
AAMkAGI2TGuLAAA=
Page Limit
string
pageLimit
The maximum number of results to return per page.
100
Page Skip
string
pageSkip
The number of records to skip before returning results.
100
Search
string
search
A search query to filter messages. Cannot be used with Filter.
subject:meeting

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages(sender,subject)",
"value": [
{
"@odata.etag": "W/\"CQAAABYAAADHcgC8Hl9tRZ/hc1wEUs1TAAAwR4Hg\"",
"id": "AAMkAGUAAAwTW09AAA=",
"subject": "You have late tasks!",
"sender": {
"emailAddress": {
"name": "Microsoft Planner",
"address": "noreply@Planner.Office365.com"
}
}
}
]
}
}

List Subscriptions

List all subscriptions for Microsoft Outlook | key: listSubscriptions

InputDefaultNotes
Connection
connection
/ Required
connection
 
 
Fetch All
boolean
fetchAll
true
Turn on to fetch all pages of results.
Show Instance Webhooks
boolean
/ Required
showInstanceWebhooks
true
Show only subscriptions for this instance's webhooks.

{
"data": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#subscriptions",
"value": [
{
"id": "e9d5b726-4478-4412-bfba-268530484566",
"resource": "me/events",
"applicationId": "e76615c0-13e3-4cd2-8235-a2d628ad13de",
"changeType": "updated",
"clientState": null,
"notificationUrl": "https://example.com/webhook/",
"notificationQueryOptions": null,
"lifecycleNotificationUrl": null,
"expirationDateTime": "2024-12-31T23:59:59.999Z",
"creatorId": "c8edbeda-c453-446c-91ce-c6d5c7310a6c",
"includeResourceData": null,
"latestSupportedTlsVersion": "v1_2",
"encryptionCertificate": null,
"encryptionCertificateId": null,
"notificationUrlAppId": null
}
]
}
}

List Supported Languages

List supported languages for current user | key: listSupportedLanguages

InputNotes
Connection
connection
/ Required
connection
 

List Supported Timezones

List supported timezones for current user | key: listSupportedTimezones

InputNotes
Connection
connection
/ Required
connection
 

Raw Request

Send raw HTTP request to Microsoft Outlook | key: rawRequest

InputDefaultNotesExample
Connection
connection
/ Required
connection
 
 
 
Data
string
data
The HTTP body payload to send to the URL.
{"exampleKey": "Example Data"}
File Data
string
Key Value List
fileData
File Data to be sent as a multipart form upload.
[{key: "example.txt", value: "My File Contents"}]
File Data File Names
string
Key Value List
fileDataFileNames
File names to apply to the file data inputs. Keys must match the file data keys above.
 
Form Data
string
Key Value List
formData
The Form Data to be sent as a multipart form upload.
[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header
string
Key Value List
headers
A list of headers to send with the request.
User-Agent: curl/7.64.1
Max Retry Count
string
maxRetries
0
The maximum number of retries to attempt. Specify 0 for no retries.
 
Method
string
/ Required
method
The HTTP method to use.
 
Query Parameter
string
Key Value List
queryParams
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.
 
Response Type
string
/ Required
responseType
json
The type of data you expect in the response. You can request json, text, or binary data.
 
Retry On All Errors
boolean
retryAllErrors
false
If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.
 
Retry Delay (ms)
string
retryDelayMS
0
The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.
 
Timeout
string
timeout
The maximum time that a client will await a response to its request
2000
URL
string
/ Required
url
Input the path only (/me/calendars), The base URL is already included (https://graph.microsoft.com/v1.0). For example, to connect to https://graph.microsoft.com/v1.0/me/calendars, only /me/calendars is entered in this field.
/me/calendars
Use Exponential Backoff
boolean
useExponentialBackoff
false
Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.
 

Send Message

Send a new message | key: sendMessage

InputDefaultNotesExample
Attachments
string
Key Value List
attachments
Specify a file name as the key (e.g., my-file.pdf) and the file as the value.
{ "my-file.pdf": { "type": "Buffer", "data": [ 102, 105, 108, 101, 32, 99, 111, 110, 116, 101, 110, 116 ] } }
BCC
string
Value List
bcc
You can specify multiple addresses separated by commas. i.e. 'john@example.com' or 'john@example.com,sally@example.com'
 
Message Body
string
body
Plain text or HTML body
 
Body Content Type
string
/ Required
bodyContentType
html
 
 
CC
string
Value List
cc
You can specify multiple addresses separated by commas. i.e. 'john@example.com' or 'john@example.com,sally@example.com'
 
Connection
connection
/ Required
connection
 
 
 
Dynamic Attachments
data
dynamicAttachments
An array of objects with "key" and "value" properties, where "key" is the file name and "value" is the binary file data. Typically used as a reference from a previous step.
[ { "key": "my-attachment.pdf", "value": "<BINARY FILE DATA TO ATTACH>" }, { "key": "another-attachment.xlsx", "value": "<BINARY EXCEL FILE DATA>" } ]
Subject
string
/ Required
subject
 
 
To
string
/ Required
Value List
to
You can specify multiple addresses separated by commas. i.e. 'john@example.com' or 'john@example.com,sally@example.com'
 

{
"data": null
}

Update Calendar

Update an existing Calendar | key: updateCalendar

InputDefaultNotesExample
Color
string
/ Required
color
auto
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
lightRed
Connection
connection
/ Required
connection
 
 
 
Calendar ID
string
/ Required
id
The unique identifier of the calendar to modify.
AAMkAGI2TGuLAAA=
Name
string
name
The name of the calendar.
Project Calendar

{
"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
Type
string
Key Value List
attendees
Attendees of the event.
 
Attendees Data Collection
data
attendeesData
Reference to data structures representing attendees. Will be merged with Attendees if both are specified.
[{ emailAddress: { address: 'john.doe@example.com', name: 'John Doe' }, type: 'required' }]
Body (HTML)
string
body
The HTML body of the event.
<p>Please join us for the team meeting.</p>
Connection
connection
/ Required
connection
 
 
 
End At
string
end
ISO formatted timestamp without timezone information.
2017-04-15T14:00:00
End Timezone
string
endTimezone
UTC
Timezone for the end time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.
Pacific Standard Time
Event ID
string
/ Required
eventId
The unique identifier of the event.
AAMkAGIAAAoZDOFAAA=
Location Name
string
locationName
The name of the location.
Conference Room A
Start At
string
start
ISO formatted timestamp without timezone information.
2017-04-15T12:00:00
Start Timezone
string
startTimezone
UTC
Timezone for the start time of the event. Use the List Supported Timezones action for details on valid aliases/values for this user.
Pacific Standard Time
Subject
string
subject
The subject of the event.
Team Meeting

{
"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": "Conference Room A"
},
"attendees": [
{
"emailAddress": {
"address": "john.doe@example.com",
"name": "John Doe"
},
"type": "required"
}
],
"allowNewTimeProposals": true,
"transactionId": "7E163156-7762-4BEB-A1C6-729EA81755A7"
}
}

Update Event Subscription Expiration

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

InputNotesExample
Connection
connection
/ Required
connection
 
 
Expiration Date/Time
string
expirationDateTime
Expiration date/time for subscription. If unspecified, the default will be the current date/time plus 10070 minutes (close to the maximum permitted by the Graph API).
2024-12-31T23:59:59.999Z
Subscription ID
string
/ Required
subscriptionId
The unique identifier of the subscription.
e9d5b726-4478-4412-bfba-268530484566

Changelog

2025-08-12

Added OAuth 2.0 Client Credentials connection type.

2025-04-28

Fixed handling of null cc and bcc inputs to prevent errors when optional email fields are empty.