Microsoft Outlook Mail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Outlook Mail
43tools
The MicrosoftOutlookMail toolkit connects Arcade to Microsoft Outlook via Microsoft Graph, enabling agents to read, write, organize, and send mail in both personal and shared/delegated mailboxes.
Capabilities
- Reading & searching mail — retrieve individual messages (with pagination for long bodies), list messages by folder/conversation, full-text search across the mailbox with structured filters (sender, read state, attachments, importance, date), and list attachment metadata.
- Composing & sending — create and send new emails immediately, compose replies (single or reply-all, with CC add/remove), forward messages, and work with drafts (create, revise, send) for all message types.
- Folder & rule management — create and list mail folders; create, update, list, and delete Inbox rules (filters) that act on arriving mail.
- Categorization & flagging — create, recolor, rename, and delete mailbox categories; apply or remove categories from batches of emails (by ID list, thread, or search); mark emails read/unread or flag/unflag for follow-up; move emails between folders.
- Shared & delegated mailboxes — a parallel set of tools covers every action above (compose, send, reply, forward, draft, search, list, move, categorize, flag, folder management) for shared or delegated mailboxes accessed by Full Access permission, including a capability checker to verify which mailboxes are reachable.
- Identity & out-of-office — retrieve the signed-in user's profile and effective mailbox timezone; read and set automatic (out-of-office) reply state, schedule, and message content.
OAuth
This toolkit uses OAuth 2.0 via the Microsoft provider. See the Arcade Microsoft auth provider docs for configuration details.
Available tools(43)
43 of 43 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
Put a category on emails in the user's own mailbox, or take one off, keeping every
other category each email carries.
One call for a list of ids, a whole thread, a search, or every email that
already carries the category, reporting one outcome per email with its
categories before and after. Select exactly one way. The category must
already be in the mailbox's category list to be added, and this call cannot
create one; a category that is no longer in the list can still be removed.
An email already in the state asked for is a success that changed nothing,
and a job needing more than 50 changes is refused whole rather than
part-done.
Tagging, labelling or categorizing mail is this call; it never moves the
mail and never flags it. | |||
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 forward of an existing Outlook email, with its attachments, as an unsent draft.
Recipients are optional, but the draft needs one before it can be sent. Returns the draft;
its message_id is the draft's own id, used to revise or send it later. | |||
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. | |||
Create a mail folder in the user's own Outlook mailbox, to keep related messages together.
The folder is created in the signed-in user's own mailbox, and in no other:
this tool cannot reach a mailbox named by address, whether a team mailbox or
another person's.
Safe to call for a folder that may already exist: an existing folder of the
same name under the same parent is returned instead of a duplicate. A
parent_folder that names no folder in the mailbox creates nothing. | |||
Delete a category (label or tag) from the user's own Outlook mailbox and take it off every
email that carries it, in every folder.
The category is deleted only once no email carries it. Up to 50 emails per call; a bigger
job is refused before anything changes. Running it again finishes a call that stopped
short. Calendar events and bounce reports keep the name. Taking a category off emails
while keeping it is not this call. | |||
Delete one Inbox rule (filter) from the user's own Outlook mailbox by its rule_id. Cannot
be undone.
Mail the rule already filed stays where it is, and later rules move up one place. To pause
a rule, switch it off instead. Returns the deleted rule's id, name and position. | |||
Forward an existing email in Outlook, with its attachments, and send it immediately.
At least one recipient is required across to_recipients, cc_recipients and bcc_recipients.
Returns the forward's message_id, its conversation_id (the original thread's) and how many
addresses it reached. | |||
Check the user's out-of-office automatic replies (auto-reply, vacation responder): whether they are going out now, what they say, to whom, and until when.
Reads the signed-in user's own mailbox. These are the replies Outlook sends to
incoming mail, not an out-of-office block on the calendar.
Reports the current state only. Times are UTC, with a copy in the mailbox's timezone. | |||
Retrieve a single email message by its ID.
Returns email metadata, categories, 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: body_total_characters reports how long
the body is, and body_next_offset is where the next call resumes.
Use this tool to read the full content of an email whose ID is already
known, to see which categories it is tagged with, 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 the categories (labels or tags) in the user's Outlook mailbox.
Returns categories, not emails. Two names can look alike; use category_id to
tell them apart. Emails can carry a category not in this list. | |||
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. | |||
List the Inbox rules (filters) in the user's own Outlook mailbox, in the order they run.
Rules act on email as it arrives, not on mail already filed. Destination folders are
named, and other_conditions, other_exceptions and other_actions name parts only Outlook
can edit. | |||
Set the read state or the follow-up flag on a selection of emails in the user's own mailbox.
One call for a list of ids, a whole thread, or a search, reporting one
outcome per email. Select exactly one way. An email already in the state
asked for is a success that changed nothing, and a job needing more than 50
changes is refused whole rather than part-done.
A request to star, pin, flag or follow up on mail is this call; it never
moves the mail. | |||
Move a selection of emails into one folder in the user's own mailbox.
Use this single call for a pile of emails instead of moving them one at a
time: it takes a list of ids, a whole conversation, or a search, and reports
one outcome per email.
Select the emails exactly one way. Naming none, or naming two, is refused
and moves nothing, as is a selection of more than 50 emails.
A conversation spans folders, so filing a thread moves the unsent drafts
and sent replies in it too unless folders narrows the selection. Run the
request with count_only first when that matters: it reports which folders
the mail would leave before anything moves.
Anything the caller got wrong -- the selection, an id, a folder that names
several folders or none -- is refused before the first email moves. After
that, an email Outlook refuses is reported as a failed row beside the ones
that moved rather than failing the whole request.
Filing into junk is not a reversible hide: Outlook permanently deletes mail
left in the Junk Email folder after 14 days, it does not report the sender
to Microsoft, and it does not train the junk filter. Tell the user that
before junking mail on their behalf.
Outlook does not record where an email came from, so putting mail back is a
move to the inbox like any other: name inbox as the destination, and name
the folder it is coming out of in folders so mail sitting elsewhere is left
alone. | |||
Rename a category (label or tag) in the user's own Outlook mailbox, keeping it on every
email that carries it, in every folder.
Outlook cannot rename in place, so this creates the new name in the old one's colour, or
uses it if it already exists, joining the emails to that category. It moves the tag on each
email and deletes the old name only once no email carries it. Up to 50 emails per call; a
bigger job is refused before anything changes. A call that stops short leaves both names,
and running it again finishes it. Calendar events and bounce reports keep the old name. A
change of letter case or surrounding spaces alone is not possible. | |||
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. | |||
Create a category (label or tag) in the user's own Outlook mailbox, or recolor an
existing one. Cannot add one to a shared mailbox.
Does not rename categories or tag emails. Safe to repeat. | |||
Create an Inbox rule (filter) in the user's own Outlook mailbox that acts on email as it
arrives, or change one by its rule_id.
It never acts on mail already in the mailbox. Use only conditions the user gave; if none,
ask. Without rule_id it creates a rule; a name another rule uses is refused with that
rule's id. With rule_id, each set you pass replaces that whole set, so resend what should
stay (a folder as its folder_id); sets left out are kept. Resending listed actions, leave
out forwards_to, forwards_as_attachment_to, redirects_to and permanently_deletes. Returns
the stored rule and the replaced sets. | |||
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, the Focused
split and the exact category match 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. | |||
Turn the user's out-of-office automatic replies (auto-reply, vacation responder) on, off, or on a schedule, and set what they say.
Acts on the signed-in user's own mailbox. This is the reply Outlook sends to
incoming mail; it does not forward mail or block time on the calendar.
Omitted arguments keep what is stored, except as each one says. A start already
past sends replies at once. |
Page 1 of 2(25 of 43)
Get Building
Last updated on