Microsoft Outlook Mail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Outlook Mail
30tools
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
- Compose & Send — Create and immediately send emails, compose drafts (new, reply, reply-all, forward), update draft recipients/subject/body, and send existing drafts; returns
message_idandconversation_idfor chaining follow-ups without searching Sent Items. - Read & Retrieve — Fetch full email content by ID (plain text or HTML, with offset pagination for long bodies), list attachment metadata, and retrieve the authenticated user's profile and mailbox settings.
- Search & Filter — Full-text search across the entire mailbox with structured AND-combined filters (sender, read status, attachments, importance, date); property-based listing for exact field matching (conversation ID, flag status, etc.); results include truncated previews with pointers to retrieve full content.
- Folder & Organization — List mail folders (top-level or nested) with unread/total counts, list emails per folder or across all folders with configurable sort, and move messages between folders using well-known names or folder IDs.
- Shared & Delegated Mailboxes — Full feature parity (compose, send, draft, reply, search, list, move, update) for shared or delegated mailboxes (e.g.,
sales@,support@); includes a capability checker to verify mailbox reachability before acting.
OAuth
Authentication uses Microsoft OAuth 2.0. See the Arcade Microsoft auth provider docs for setup details, required permissions, and configuration.
Available tools(30)
30 of 30 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 | |||
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. 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 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. | |||
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. 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 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. |
Page 1 of 2(25 of 30)
Get Building
Last updated on