Microsoft Outlook Mail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Outlook Mail
28tools
The Microsoft Outlook Mail toolkit connects Arcade to the Microsoft Graph Mail API, enabling LLMs to read, compose, send, search, organize, and manage email in both personal and shared/delegated Outlook mailboxes.
Capabilities
- Read & search mail — retrieve individual messages (with pagination and HTML/plain-text control), list emails across all folders or within a specific folder, filter by structured properties (sender, flag, importance, conversation, etc.), and run full-text keyword searches with combined AND filters across an entire mailbox.
- Compose & send — create and immediately send emails, compose drafts, update draft recipients/subject/body, send existing drafts (including reply, reply-all, and forward drafts), and reply to messages (sender-only or reply-all).
- Folder & organization management — list top-level and nested mail folders with unread/total counts, discover custom folder IDs, and move messages between folders using well-known folder names or folder IDs.
- Attachments — list attachment metadata (name, size, type) for any message without downloading content.
- Shared & delegated mailboxes — a full parallel set of tools (prefixed
SharedMailbox) covers all read, compose, send, search, folder, and attachment operations against team inboxes (e.g.,sales@,support@) or executive mailboxes the user has delegate access to; includes a capability checker to verify mailbox reachability before acting. - Identity & mailbox settings — retrieve the authenticated user's profile, mailbox settings, and automatic-replies configuration via
WhoAmI.
OAuth
This toolkit authenticates via Microsoft OAuth 2.0. Arcade manages token acquisition and refresh automatically.
See the Microsoft auth provider docs for configuration details.
Available tools(28)
28 of 28 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
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. | |||
Compose a new draft email in Outlook | |||
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 after finding it via
search_emails or any listing tool. | |||
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 emails in the user's mailbox across all folders.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending).
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.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending).
Sorting by RECEIVED_DATE_TIME works with any filter property. Sorting by
a different property (SUBJECT, SENDER, IMPORTANCE) while filtering by an
unrelated property may fail due to a Microsoft Graph API restriction. If
this happens, either sort by RECEIVED_DATE_TIME, or use list_emails (no
filter) with the desired sort_by. | |||
List the user's emails in the specified folder.
Exactly one of `well_known_folder_name` or `folder_id` MUST be provided.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending). | |||
List mail folders in the user's mailbox.
Returns folder names, IDs, unread counts, and total item counts.
Use the folder ID in follow-up calls to list_emails_in_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. Use `list_mail_folders` to
discover custom folder IDs. | |||
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. | |||
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. Results are ordered by date sent (most recent first).
Email bodies are truncated to 255 characters for efficient skimming.
Use get_email with the message_id to retrieve the full email content.
Use this tool when the user wants to find emails by content, topic, sender,
or a combination of criteria. For exact property filtering (e.g., by
conversationId or flag status), use list_emails_by_property instead.
.. 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 (which other tools in
this toolkit do by default). Do not directly compare a ``message_id``
from ``search_emails`` against one from ``list_emails`` /
``get_email`` — the ID shapes differ. To chain from a search hit,
pass the returned ID straight back into ``get_email`` (which accepts
either format), and use ``conversation_id`` as the deduplication
key 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. | |||
Compose a new draft email in a shared or delegated mailbox. | |||
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 emails in a shared or delegated mailbox, across all folders.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending). | |||
List emails in a shared or delegated mailbox filtered by a property.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending). | |||
List emails in a specific folder of a shared or delegated mailbox.
Exactly one of `well_known_folder_name` or `folder_id` MUST be provided.
Results are sorted by sort_by in the sort_order direction.
Defaults to newest first (receivedDateTime descending). | |||
List mail folders in a shared or delegated mailbox.
Returns folder names, IDs, unread counts, and total item counts.
Use the folder ID when listing emails in a specific 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. Use
`shared_mailbox_list_mail_folders` (with the same `owner_email`) to
discover custom folder IDs; folder IDs are specific to the target
mailbox. | |||
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. | |||
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. Results are ordered by date sent (most recent first).
Email bodies are truncated to 255 characters. Retrieve a message by its
message ID when the full content is needed.
.. 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. |
Page 1 of 2(25 of 28)
Get Building
Last updated on