Microsoft
Arcade.dev LLM tools for Outlook Mail
Microsoft Arcade Toolkit
The Microsoft Arcade toolkit provides seamless integration with Outlook Mail, enabling developers to create and manage emails and calendar events efficiently.
Capabilities
- Create, send, and manage emails and drafts.
- Organize and filter calendar events based on user-defined parameters.
- Retrieve, update, and reply to existing emails easily.
- Access user mailbox across all folders, enhancing email management.
OAuth
Auth type: oauth2; Provider: Microsoft; Scopes: Calendars.ReadBasic, Calendars.ReadWrite, Mail.Read, Mail.ReadWrite, Mail.Send, MailboxSettings.Read.
Secrets
No secrets are required for the use of this toolkit.
Available tools(11)
| Tool name | Description | Secrets | |
|---|---|---|---|
Create and immediately send a new email in Outlook to the specified recipients | |||
Compose a new draft email in Outlook | |||
Create an event in the authenticated user's default calendar.
Ignores timezone offsets provided in the start_date_time and end_date_time parameters.
Instead, uses the user's default calendar timezone to filter events.
If the user has not set a timezone for their calendar, then the timezone will be UTC. | |||
Get an event by its ID from the user's calendar. | |||
List emails in the user's mailbox across all folders.
Since this tool lists email across all folders, it may return sent items, drafts,
and other items that are not in the inbox. | |||
List emails in the user's mailbox across all folders filtering by a property. | |||
List the user's emails in the specified folder.
Exactly one of `well_known_folder_name` or `folder_id` MUST be provided. | |||
List events in the user's calendar in a specific time range.
Ignores timezone offsets provided in the start_date_time and end_date_time parameters.
Instead, uses the user's default calendar timezone to filter events.
If the user has not set a timezone for their calendar, then the timezone will be UTC. | |||
Reply to an existing email in Outlook.
Use this tool to reply to the sender or all recipients of the email.
Specify the reply_type to determine the scope of the reply. | |||
Send an existing draft email in Outlook
This tool can send any un-sent email:
- draft
- reply-draft
- reply-all draft
- forward draft | |||
Update an existing draft email in Outlook.
This tool overwrites the subject and body of a draft email (if provided),
and modifies its recipient lists by selectively adding or removing email addresses.
This tool can update any un-sent email:
- draft
- reply-draft
- reply-all draft
- forward draft |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Microsoft.CreateAndSendEmail
Create and immediately send a new email in Outlook to the specified recipients
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The subject of the email to create |
body | string | Required | The body of the email to create |
to_recipients | array<string> | Required | The email addresses that will be the recipients of the email |
cc_recipients | array<string> | Optional | The email addresses that will be the CC recipients of the email. |
bcc_recipients | array<string> | Optional | The email addresses that will be the BCC recipients of the email. |
Requirements
Output
json— A dictionary containing the created email detailsMicrosoft.CreateDraftEmail
Compose a new draft email in Outlook
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The subject of the draft email to create |
body | string | Required | The body of the draft email to create |
to_recipients | array<string> | Required | The email addresses that will be the recipients of the draft email |
cc_recipients | array<string> | Optional | The email addresses that will be the CC recipients of the draft email. |
bcc_recipients | array<string> | Optional | The email addresses that will be the BCC recipients of the draft email. |
Requirements
Output
json— A dictionary containing the created email detailsMicrosoft.CreateEvent
Create an event in the authenticated user's default calendar. Ignores timezone offsets provided in the start_date_time and end_date_time parameters. Instead, uses the user's default calendar timezone to filter events. If the user has not set a timezone for their calendar, then the timezone will be UTC.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
subject | string | Required | The text of the event's subject (title) line. |
body | string | Required | The body of the event |
start_date_time | string | Required | The datetime of the event's start, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-25T13:00:00 |
end_date_time | string | Required | The datetime of the event's end, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-25T13:30:00 |
location | string | Optional | The location of the event |
attendee_emails | array<string> | Optional | The email addresses of the attendees of the event. Must be valid email addresses e.g., username@domain.com. |
is_online_meeting | boolean | Optional | Whether the event is an online meeting. Defaults to False |
custom_meeting_url | string | Optional | The URL of the online meeting. If not provided and is_online_meeting is True, then a url will be generated for you |
Requirements
Output
json— A dictionary containing the created event detailsMicrosoft.GetEvent
Get an event by its ID from the user's calendar.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
event_id | string | Required | The ID of the event to get |
Requirements
Output
json— A dictionary containing the event detailsMicrosoft.ListEmails
List emails in the user's mailbox across all folders. Since this tool lists email across all folders, it may return sent items, drafts, and other items that are not in the inbox.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
limit | integer | Optional | The number of messages to return. Max is 100. Defaults to 5. |
pagination_token | string | Optional | The pagination token to continue a previous request |
Requirements
Output
json— A dictionary containing a list of emailsMicrosoft.ListEmailsByProperty
List emails in the user's mailbox across all folders filtering by a property.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
property | string | Required | The property to filter the emails by.subjectconversationIdreceivedDateTimesender/emailAddress/address |
operator | string | Required | The operator to use for the filter.eqnegtgeltlestartsWithendsWithcontains |
value | string | Required | The value to filter the emails by |
limit | integer | Optional | The number of messages to return. Max is 100. Defaults to 5. |
pagination_token | string | Optional | The pagination token to continue a previous request |
Requirements
Output
json— A dictionary containing a list of emailsMicrosoft.ListEmailsInFolder
List the user's emails in the specified folder. Exactly one of `well_known_folder_name` or `folder_id` MUST be provided.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
well_known_folder_name | string | Optional | The name of the folder to list emails from. Defaults to None.deleteditemsdraftsinboxjunkemailsentitemsstarredtasks |
folder_id | string | Optional | The ID of the folder to list emails from if the folder is not a well-known folder. Defaults to None. |
limit | integer | Optional | The number of messages to return. Max is 100. Defaults to 5. |
pagination_token | string | Optional | The pagination token to continue a previous request |
Requirements
Output
json— A dictionary containing a list of emails and a pagination token, if applicableMicrosoft.ListEventsInTimeRange
List events in the user's calendar in a specific time range. Ignores timezone offsets provided in the start_date_time and end_date_time parameters. Instead, uses the user's default calendar timezone to filter events. If the user has not set a timezone for their calendar, then the timezone will be UTC.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
start_date_time | string | Required | The start date and time of the time range, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-24T19:00:00 |
end_date_time | string | Required | The end date and time of the time range, represented in ISO 8601 format. Timezone offset is ignored. For example, 2025-04-24T19:30:00 |
limit | integer | Optional | The maximum number of events to return. Max 1000. Defaults to 10 |
Requirements
Output
json— A dictionary containing a list of eventsMicrosoft.ReplyToEmail
Reply to an existing email in Outlook. Use this tool to reply to the sender or all recipients of the email. Specify the reply_type to determine the scope of the reply.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
message_id | string | Required | The ID of the email to reply to |
body | string | Required | The body of the reply to the email |
reply_type | string | Optional | Specify ReplyType.REPLY to reply only to the sender or ReplyType.REPLY_ALL to reply to all recipients. Defaults to ReplyType.REPLY.replyreply_all |
Requirements
Output
json— A dictionary containing the sent email detailsMicrosoft.SendDraftEmail
Send an existing draft email in Outlook This tool can send any un-sent email: - draft - reply-draft - reply-all draft - forward draft
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
message_id | string | Required | The ID of the draft email to send |
Requirements
Output
json— A dictionary containing the sent email detailsMicrosoft.UpdateDraftEmail
Update an existing draft email in Outlook. This tool overwrites the subject and body of a draft email (if provided), and modifies its recipient lists by selectively adding or removing email addresses. This tool can update any un-sent email: - draft - reply-draft - reply-all draft - forward draft
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
message_id | string | Required | The ID of the draft email to update |
subject | string | Optional | The new subject of the draft email. If provided, the existing subject will be overwritten |
body | string | Optional | The new body of the draft email. If provided, the existing body will be overwritten |
to_add | array<string> | Optional | Email addresses to add as 'To' recipients. |
to_remove | array<string> | Optional | Email addresses to remove from the current 'To' recipients. |
cc_add | array<string> | Optional | Email addresses to add as 'CC' recipients. |
cc_remove | array<string> | Optional | Email addresses to remove from the current 'CC' recipients. |
bcc_add | array<string> | Optional | Email addresses to add as 'BCC' recipients. |
bcc_remove | array<string> | Optional | Email addresses to remove from the current 'BCC' recipients. |
Requirements
Output
json— A dictionary containing the updated email details