Skip to Content
ResourcesIntegrationsProductivity & DocsMicrosoft Outlook Mail

Microsoft Outlook Mail

Service domainEMAIL
Microsoft Outlook Mail icon
Arcade Optimized

Arcade.dev LLM tools for Outlook Mail

Author:Arcade
Version:1.1.0
Auth:User authorization via the Microsoft auth provider
24tools

The Microsoft Outlook Mail toolkit connects Arcade to the Microsoft Graph Mail API, enabling LLMs to read, compose, send, search, and organize email in both personal and shared/delegated Outlook mailboxes.

Capabilities

  • Read & search mail — Retrieve individual messages (with body paging and format control), list messages per folder or conversation, and run full-text + structured searches across the mailbox; attachment metadata is also available.
  • Compose & send — Create and immediately send new emails or replies (reply / reply-all), with To/Cc/Bcc control and returned message_id/conversation_id for chaining.
  • Draft management — Save new drafts or revise existing ones, create threaded reply drafts with Cc add/remove support, and send any saved draft when ready.
  • Folder & organization — List mail folders (including child folders), move messages to well-known or custom folders, and scope listings to specific folders.
  • Shared & delegated mailboxes — Full parallel API surface (compose, send, draft, list, search, move, attachments) for team inboxes or delegated executive mailboxes, plus a capability checker to verify which mailboxes are reachable.
  • Identity & mailbox context — Retrieve the signed-in user's profile, active mailbox address, tenant, and configured time zone (with source attribution for fallback detection).

OAuth

This toolkit authenticates via OAuth 2.0 using the Microsoft provider. See the Arcade Microsoft auth provider docs for setup details.

Available tools(24)

24 of 24 tools
Operations
Behavior
Tool nameDescriptionSecrets
Create and immediately send a new email in Outlook to the specified recipients. Returns the sent message's ``message_id`` and ``conversation_id`` so callers can immediately chain follow-ups (e.g. reply to what they just sent) without having to search Sent Items. The confirmation message names how many recipient addresses the email went to across To, Cc and Bcc.
Create a reply or reply-all draft for an existing Outlook email without sending it. The draft is threaded to the original message and saved to the Drafts folder, so it can be reviewed, edited, and sent later. For a reply-all, the original recipients (excluding the mailbox owner) are populated automatically. Use cc_add to copy someone in on the draft, including someone who was never on the thread, and cc_remove to take somebody off the copied line; who the reply is addressed to is the thread's own and reply_type decides it. This tool never sends the email.
Retrieve a single email message by its ID. Returns email metadata and body content. By default, the body is returned as plain text (HTML tags stripped) and capped at 5000 characters. Set body_format to HTML to get the original markup. Use body_offset to continue reading long emails, or set max_body_characters to None for the full body. Use this tool to read the full content of an email whose ID is already known, and to page through a body too long for one response.
List attachment metadata for an email message. Returns metadata only (name, size, type, etc.). Attachment content is not included. Use this tool when the user wants to know what files are attached to an email.
List email messages in the user's mailbox. Returns ordinary mail by default: Deleted Items, Junk Email, Sent Items and Drafts are left out unless named in folders, folder_ids or conversation_id. Rows carry a 255-character body preview unless include_body is set, which returns each message in full up to max_body_characters.
List mail folders in the user's mailbox. Returns folder names, IDs, unread counts, and total item counts. A returned folder ID is what scopes a mail listing to a user-created folder. Omit parent_folder_id to list top-level folders, or provide a folder ID to list its child folders.
Move an email message to a different folder in Outlook. Exactly one of `destination_well_known_folder_name` or `destination_folder_id` MUST be provided. Custom folder IDs come from listing the mailbox's folders.
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. Use cc_add to copy someone in on the reply, including someone who was never on the thread, and cc_remove to take somebody off the copied line; who the reply is addressed to is the thread's own and reply_type decides it. The confirmation message names how many recipient addresses the reply went to across To, Cc and Bcc, when Outlook reported both the To and Cc lines.
Save an email draft in Outlook, creating a new one or revising one that exists. Supplying message_id revises that draft; omitting it creates a new one. Only the fields supplied are written — anything left out keeps whatever the draft already had. Nothing is ever sent. Returns a DraftMessage. Its message_id identifies the saved draft and can be passed straight back to this tool to make further changes to it.
Search emails across the user's entire mailbox. Combines full-text keyword search with structured filters for sender, read status, attachments, importance, and more. All provided parameters are combined with AND. At least one search criterion is required. folder, only_focused, include_body and limit narrow or page a result set rather than build one, so they are not enough on their own. Junk Email and Deleted Items are left out unless `folder` names one of them; sent mail and drafts stay searchable. Rows carry a 255-character body preview unless include_body is set. Results come back in the search index's own order and cannot be re-sorted. Outlook's search index answers one query with at most 1,000 messages, so a walk that runs out of pages has reached the end of what the index serves rather than the end of the mailbox. The folders left out and the Focused split are applied to those 1,000 after they are chosen, so a broad term matching a lot of junk can come back with few rows, or none, while matching mail exists. A narrower term reaches it; a smaller limit does not. Use this tool when the user wants to find emails by content, topic, sender, or a combination of criteria. .. note:: Microsoft Graph's ``$search`` on messages is backed by the Microsoft Search index, which returns message IDs in the legacy REST-ID format even when the client opts into Immutable IDs. Do not directly compare these message IDs with Immutable IDs; the formats differ. Use ``conversation_id`` to correlate conversations across result sets.
Send an existing draft email in Outlook. Sends any un-sent message — draft, reply-draft, reply-all draft, or forward draft — and returns the message's ``message_id`` and ``conversation_id`` so callers can chain follow-ups (e.g. reply to the message they just sent) without searching Sent Items.
Check which provided mailboxes are reachable via shared mailbox APIs. This is a capability checker, not an Exchange permission inventory. It verifies whether each provided mailbox can be reached through a cheap, read-only Graph call. When checking multiple mailboxes, pass them together in one ``owner_emails`` list so results can be deduplicated and rate-limited consistently. Microsoft Graph does not expose exact ``Send As`` vs ``Send on behalf`` permissions, so the response names that limitation explicitly instead of guessing.
Create and immediately send an email from a shared or delegated mailbox. Use this when the user wants the email to be sent from a team inbox (like sales@ or support@) or from an executive's mailbox they have been delegated access to, rather than from their own address. The confirmation message names how many recipient addresses the email went to across To, Cc and Bcc.
Create a reply or reply-all draft in a shared or delegated mailbox without sending it. The draft is threaded to the original message and saved to the mailbox's Drafts folder, so it can be reviewed, edited, and sent later. For a reply-all, the original recipients (excluding the mailbox owner) are populated automatically. Use cc_add to copy someone in on the draft, including someone who was never on the thread, and cc_remove to take somebody off the copied line; who the reply is addressed to is the thread's own and reply_type decides it. This tool never sends the email.
Retrieve a single email from a shared or delegated mailbox by message ID. Returns email metadata and body content. By default, the body is returned as plain text (HTML tags stripped) and capped at 5000 characters. Use body_offset to continue reading long emails, or set max_body_characters to None for the full body.
List attachment metadata for an email in a shared or delegated mailbox.
List email messages in a shared or delegated mailbox. Returns ordinary mail by default: Deleted Items, Junk Email, Sent Items and Drafts are left out unless named in folders, folder_ids or conversation_id. Each row reports the folder it came from in parent_folder_id. Every filter narrows the same result set, so unread mail in one folder is a single call. Naming exactly one folder reads that folder itself, which is also the only read a mailbox shared one folder at a time can serve. If a call that names no folder, or several, is refused for lack of access to the whole mailbox, repeat it naming one folder at a time.
List mail folders in a shared or delegated mailbox. Returns folder names, IDs, unread counts, and total item counts. A returned folder ID is what scopes a mail listing to a user-created folder.
Move an email message to a different folder in a shared or delegated mailbox. Exactly one of `destination_well_known_folder_name` or `destination_folder_id` MUST be provided. Custom folder IDs come from listing the folders of the same `owner_email` mailbox; folder IDs are specific to the mailbox that contains them.
Reply to an email in a shared or delegated mailbox. The reply is sent from the shared mailbox address, not the signed-in user's personal address. Specify reply_type to reply only to the sender or to all recipients. Use cc_add to copy someone in on the reply, including someone who was never on the thread, and cc_remove to take somebody off the copied line; who the reply is addressed to is the thread's own and reply_type decides it. The confirmation message names how many recipient addresses the reply went to across To, Cc and Bcc, when Outlook reported the line it was addressed to.
Save an email draft in a shared or delegated Outlook mailbox. Supplying message_id revises that draft; omitting it creates a new one. Only the fields supplied are written — anything left out keeps whatever the draft already had. Nothing is ever sent. Returns a DraftMessage. Its message_id identifies the saved draft and can be passed straight back to this tool to make further changes to it.
Search emails in a shared or delegated mailbox. Combines full-text keyword search with structured filters for sender, read status, attachments, importance, and more. All provided parameters are combined with AND. At least one search criterion is required. folder, only_focused, include_body and limit narrow or page a result set rather than build one, so they are not enough on their own. Junk Email and Deleted Items are left out unless `folder` names one of them; sent mail and drafts stay searchable. Rows carry a 255-character body preview unless include_body is set. Results come back in the search index's own order and cannot be re-sorted. Outlook's search index answers one query with at most 1,000 messages, so a walk that runs out of pages has reached the end of what the index serves rather than the end of the mailbox. The folders left out and the Focused split are applied to those 1,000 after they are chosen, so a broad term matching a lot of junk can come back with few rows, or none, while matching mail exists. A narrower term reaches it; a smaller limit does not. .. note:: Search results may use a different Graph ID shape than list/get results. Use returned message IDs directly for message retrieval and ``conversation_id`` for deduplication across result sets.
Send an existing draft email from a shared or delegated mailbox. This tool can send any un-sent email in the shared mailbox: - draft - reply-draft - reply-all draft - forward draft Returns the message's ``message_id`` and ``conversation_id`` so callers can chain follow-ups (e.g. reply to the message they just sent) without searching Sent Items.
Get the signed-in user's profile and the mailbox this toolkit acts on. Returns the user's name, email, tenant and other profile details, plus the mailbox the toolkit reads mail from. mailbox_timezone identifies the mailbox's configured time zone or the fallback identified by mailbox_timezone_source. received_date_time remains in UTC; received_date_time_local contains its local representation when available. mailbox_timezone may be a Windows name such as "Eastern Standard Time" rather than an IANA identifier - that names a zone observing daylight saving, not a fixed offset. mailbox_timezone_source says where that zone came from: "mailbox" and "mailbox_utc" mean the mailbox itself names the zone, whereas "default_not_configured" (the mailbox names none) and "default_unreadable" (the setting could not be read) mean UTC is a fallback this toolkit applied, not a zone the mailbox is set to. On either fallback, do not tell the user their mailbox is configured for that zone.
Last updated on