atmon docs

REFERENCE/TOOLKITS/MICROSOFT_OUTLOOK.MD

Microsoft Outlook

Outlook mail on Microsoft 365. Search, read, send, reply to, file, and delete mail, and manage folders, rules, and contacts.

PropertyValue
Slugmicrosoft_outlook
Definition version0.1.0
Base URLhttps://graph.microsoft.com/v1.0
Auth schemesoauth2
Action tools37
By class11 read, 19 write, 7 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

57 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 37 cases written by hand and 20 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-136/5763.2%
top-853/5793.0%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://login.microsoftonline.com/common/oauth2/v2.0/authorize
Token URLhttps://login.microsoftonline.com/common/oauth2/v2.0/token
Default scopesMail.ReadWrite, Mail.Send, offline_access
Refresh tokensyes, the refresh daemon renews ahead of expiry

Tools

37 action tools. The catalog-wide slug is microsoft_outlook.<tool>, which is what search_tools returns and call_tool takes.

microsoft_outlook.search_messages

Search or list emails in the Outlook or Microsoft 365 mailbox using a keyword search or an OData filter expression. Use when the user wants to find, look up, or check mail in Outlook, not Gmail. Returns message ids and previews, most recent first by default; read one in full with get_message.

Class read (reads only). Scopes Mail.Read. Calls GET /me/messages.

Arguments:

ArgumentTypeRequiredNotes
filterstringnoRaw OData $filter expression, e.g. "isRead eq false" or "parentFolderId eq 'AAMkAG...'". Cannot be combined with search in the same call; Graph does not support both together.
order_bystringnoRaw OData $orderby expression, e.g. "receivedDateTime desc". Ignored when search is set.
searchstringnoFree-text keyword search over subject and body, e.g. "invoice from Acme". Omit to list without a keyword.
skipintegernoNumber of results to skip, for simple pagination.
topintegernoPage size, default 25.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
@odata.nextLinkstring
valuearray of objectMay be empty when nothing matches.
value[].bodyPreviewstring
value[].fromobject
value[].from.emailAddressobject
value[].hasAttachmentsboolean
value[].idstring
value[].isReadboolean
value[].parentFolderIdstring
value[].receivedDateTimestring
value[].subjectstring

Also retrieved by: "hunt down an email about something in Outlook", "dig through my Outlook inbox for a message", "see if I got anything from someone in my Microsoft mailbox", "pull up mail mentioning a topic in Outlook", "track down that old Exchange email".

microsoft_outlook.get_message

Get one Outlook email's full content by message id: sender, recipients, subject, body, and attachment presence. Use after search_messages to read a specific message in full. For the file itself use list_attachments and get_attachment.

Class read (reads only). Scopes Mail.Read. Calls GET /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesOutlook message id from search_messages.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
bodyobject
body.contentstring
body.contentTypestring
bodyPreviewstring
categoriesarray of string
ccRecipientsarray of object
ccRecipients[].emailAddressobject
ccRecipients[].emailAddress.addressstring
ccRecipients[].emailAddress.namestring
conversationIdstring
fromobject
from.emailAddressobject
from.emailAddress.addressstring
from.emailAddress.namestring
hasAttachmentsboolean
idstring
importancestring
isReadboolean
parentFolderIdstring
receivedDateTimestring
sentDateTimestring
subjectstring
toRecipientsarray of object
toRecipients[].emailAddressobject
toRecipients[].emailAddress.addressstring
toRecipients[].emailAddress.namestring

Also retrieved by: "pull up that Outlook email and show me what it says", "open it up and let me see the whole thing", "show me everything that message contains".

microsoft_outlook.list_attachments

List the attachments on one Outlook email by message id: name, type, and size, but not the file bytes. Use to see what is attached before downloading. Download one with get_attachment.

Class read (reads only). Scopes Mail.Read. Calls GET /me/messages/{{params.message_id}}/attachments.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesMessage holding the attachments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
valuearray of object
value[].contentTypestring
value[].idstring
value[].isInlineboolean
value[].namestring
value[].sizeinteger

Also retrieved by: "what did they attach to that Outlook email", "see what files came with that message", "check if this one has anything attached".

microsoft_outlook.get_attachment

Download one email attachment's file content by message id and attachment id. Use when the user wants the actual file, PDF, image, or invoice from an Outlook message. Attachment ids come from list_attachments. Returns base64-encoded bytes.

Class read (reads only). Scopes Mail.Read. Calls GET /me/messages/{{params.message_id}}/attachments/{{params.attachment_id}}.

Arguments:

ArgumentTypeRequiredNotes
attachment_idstringyesAttachment id from list_attachments.
message_idstringyesMessage holding the attachment.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
contentBytesstringBase64-encoded file bytes.
contentTypestring
namestring
sizeinteger

Also retrieved by: "grab the file they sent me in Outlook", "save that attachment to my computer", "pull down the PDF from that email", "fetch the file that was attached".

microsoft_outlook.send_mail

Send a new Outlook email immediately to one or more recipients. Use when the user wants to email, message, or write to someone fresh, not reply to something existing. Irreversible once sent; confirm recipients first. To save without sending use create_draft; to answer an existing email use reply_to_message.

Class write (writes, no confirmation needed). Scopes Mail.Send. Calls POST /me/sendMail.

Arguments:

ArgumentTypeRequiredNotes
bcc_recipientsarray of objectno
bcc_recipients[].emailAddressobjectno
bcc_recipients[].emailAddress.addressstringno
bcc_recipients[].emailAddress.namestringno
body_contentstringyesThe message body.
body_content_typestring, one of Text, HTMLnoFormat of body_content. Default Text.
cc_recipientsarray of objectno
cc_recipients[].emailAddressobjectno
cc_recipients[].emailAddress.addressstringno
cc_recipients[].emailAddress.namestringno
save_to_sent_itemsbooleannoKeep a copy in Sent Items. Default true.
subjectstringyesEmail subject line.
to_recipientsarray of objectyesRecipients, shaped like Graph's own recipient object, e.g. [{"emailAddress": {"address": "amy@example.com"}}].
to_recipients[].emailAddressobjectyes
to_recipients[].emailAddress.addressstringyes
to_recipients[].emailAddress.namestringno

Also retrieved by: "fire off a message to someone in Outlook", "shoot them a quick note through Microsoft mail", "get a message out to them with the details", "ping them over Outlook with an update", "drop them a line about something".

microsoft_outlook.create_draft

Save a new Outlook email as a draft without sending it. Use when the user wants to compose, start, or stash a message for later. Returns a draft id for update_draft or send_draft. To send right away use send_mail instead.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls POST /me/messages.

Arguments:

ArgumentTypeRequiredNotes
body_contentstringyesThe message body.
body_content_typestring, one of Text, HTMLnoFormat of body_content. Default Text.
cc_recipientsarray of objectno
cc_recipients[].emailAddressobjectno
cc_recipients[].emailAddress.addressstringno
cc_recipients[].emailAddress.namestringno
subjectstringyesEmail subject line.
to_recipientsarray of objectno
to_recipients[].emailAddressobjectno
to_recipients[].emailAddress.addressstringno
to_recipients[].emailAddress.namestringno

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversationIdstring
idstring
isDraftboolean
subjectstring
webLinkstring

Also retrieved by: "start writing something in Outlook I'm not ready to send yet", "stash a message for later without sending it", "jot down a note I'll finish later", "put together something I can review first".

microsoft_outlook.update_draft

Edit an existing Outlook draft's subject, body, or recipients by message id. Use when the user revises or fixes something they haven't sent yet. Only affects unsent drafts; a sent message cannot be edited this way.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls PATCH /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
body_contentstringnoNew message body, replacing the old one.
body_content_typestring, one of Text, HTMLno
message_idstringyesDraft to update.
subjectstringnoNew subject line.
to_recipientsarray of objectno
to_recipients[].emailAddressobjectno
to_recipients[].emailAddress.addressstringno
to_recipients[].emailAddress.namestringno

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
isDraftboolean
subjectstring

Also retrieved by: "fix up that unsent Outlook message", "change what I wrote before I send it", "edit the note I haven't sent yet".

microsoft_outlook.send_draft

Send an existing saved Outlook draft as-is by message id. Use when a draft is ready and the user says to go ahead and send it. Irreversible. If the draft is missing recipients, fix it first with update_draft.

Class write (writes, no confirmation needed). Scopes Mail.Send. Calls POST /me/messages/{{params.message_id}}/send.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesDraft to send, as returned by create_draft.

Also retrieved by: "go ahead and fire that off", "ship the message I saved earlier", "that one's ready, send it now", "push out the note I put together".

microsoft_outlook.reply_to_message

Reply to the sender of one Outlook email, keeping it inside the same conversation. Use when the user wants to answer, respond, or write back to just the original sender. For everyone on the thread use reply_all_to_message; for a brand-new email use send_mail.

Class write (writes, no confirmation needed). Scopes Mail.Send. Calls POST /me/messages/{{params.message_id}}/reply.

Arguments:

ArgumentTypeRequiredNotes
commentstringyesThe reply text, added above the quoted original.
message_idstringyesMessage to reply to.

Also retrieved by: "write back to just the sender on this Outlook email", "answer them directly on this message", "respond to what they said, not the whole group", "get back to them on this one".

microsoft_outlook.reply_all_to_message

Reply to everyone on an Outlook email, sender and all other recipients, inside the same conversation. Use when the user wants to answer the whole group, not just one person. For only the original sender use reply_to_message.

Class write (writes, no confirmation needed). Scopes Mail.Send. Calls POST /me/messages/{{params.message_id}}/replyAll.

Arguments:

ArgumentTypeRequiredNotes
commentstringyesThe reply text, added above the quoted original.
message_idstringyesMessage to reply to.

Also retrieved by: "answer everyone on this Outlook email", "respond to the whole group on this message", "write back to everyone included on this one", "get back to the entire group here".

microsoft_outlook.forward_message

Forward an existing Outlook email to new recipients, optionally with a short note. Use when the user wants to pass a message, share it, or send it along to someone else. For a reply within the same conversation use reply_to_message.

Class write (writes, no confirmation needed). Scopes Mail.Send. Calls POST /me/messages/{{params.message_id}}/forward.

Arguments:

ArgumentTypeRequiredNotes
commentstringnoShort note added above the forwarded message.
message_idstringyesMessage to forward.
to_recipientsarray of objectyesRecipients, shaped like Graph's own recipient object, e.g. [{"emailAddress": {"address": "amy@example.com"}}].
to_recipients[].emailAddressobjectyes
to_recipients[].emailAddress.addressstringyes
to_recipients[].emailAddress.namestringno

Also retrieved by: "pass this Outlook email along to someone else", "share this message with another person", "send this one along with a quick note", "route this email to someone new".

microsoft_outlook.move_message

Move an Outlook email into a different mail folder by id or well-known name (inbox, archive, junkemail, drafts, sentitems). Use when the user wants to file, sort, or relocate a message. To send an email to the trash specifically use trash_message.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls POST /me/messages/{{params.message_id}}/move.

Arguments:

ArgumentTypeRequiredNotes
destination_folder_idstringyesTarget folder id from list_mail_folders, or a well-known name such as "archive" or "junkemail".
message_idstringyesMessage to move.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstringThe message's new id in the destination folder.
parentFolderIdstring

Also retrieved by: "file this Outlook email into a different folder", "sort this message somewhere else", "relocate this email out of the inbox", "put this one into another folder".

microsoft_outlook.copy_message

Copy an Outlook email into another mail folder, leaving the original in place. Use when the user wants a message filed in two places at once. For a one-way move use move_message instead.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls POST /me/messages/{{params.message_id}}/copy.

Arguments:

ArgumentTypeRequiredNotes
destination_folder_idstringyesTarget folder id from list_mail_folders, or a well-known name such as "archive" or "junkemail".
message_idstringyesMessage to copy.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstringThe new copy's id in the destination folder.
parentFolderIdstring

Also retrieved by: "duplicate this Outlook email into another folder", "keep a copy of this message somewhere else too", "file this in two places at once".

microsoft_outlook.trash_message

Move an Outlook email to the Deleted Items folder. Use when the user wants to trash, bin, or get rid of a message. Recoverable from Deleted Items until it is emptied or purged; for a permanent, unrecoverable removal use delete_message.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes Mail.ReadWrite. Calls POST /me/messages/{{params.message_id}}/move.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesMessage to move to Deleted Items.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
parentFolderIdstring

Also retrieved by: "bin that Outlook email", "toss this message out", "chuck it in the Outlook trash", "send it to Deleted Items".

microsoft_outlook.delete_message

Permanently remove an Outlook email, bypassing recovery through Deleted Items. Unrecoverable; prefer trash_message when the user might still want it back. Use only when the user explicitly asks for a message gone for good.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes Mail.ReadWrite. Calls DELETE /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesMessage to delete permanently.

Also retrieved by: "wipe that Outlook email for good", "nuke this message completely", "scrub it from my mailbox entirely", "erase it permanently, no recovering it".

microsoft_outlook.delete_draft

Permanently discard a saved Outlook draft by message id. Not recoverable; only removes unsent drafts, never sent or received mail. Verify the draft id before calling.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes Mail.ReadWrite. Calls DELETE /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesDraft to discard.

Also retrieved by: "toss that unsent Outlook message", "get rid of the one I started", "scrap what I was writing".

microsoft_outlook.mark_message_read

Mark one Outlook email as read or unread by message id. Use when the user wants to flag something as seen, catch up on, or leave unread for later. For adding a follow-up flag use flag_message instead.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls PATCH /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
is_readbooleanyestrue to mark read, false to mark unread.
message_idstringyesMessage to update.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
isReadboolean

Also retrieved by: "flag this Outlook email as unread again", "I've already seen that one, take it off my unread list", "mark it as seen", "leave this one unread for later".

microsoft_outlook.flag_message

Set, clear, or complete the follow-up flag on an Outlook email. Use when the user wants to flag, star, or mark a message as done. For read/unread status use mark_message_read.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls PATCH /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
flag_statusstring, one of notFlagged, flagged, completeyesDesired flag state.
message_idstringyesMessage to flag.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
flagobject
flag.flagStatusstring
idstring

Also retrieved by: "put a follow-up flag on this Outlook email", "star this message so I remember it", "mark this one as done, take the flag off", "remind myself to come back to this".

microsoft_outlook.categorize_message

Assign or clear the color categories on one Outlook email, replacing its full category list. Use when the user wants to color-code, tag, or label a message. Category names come from list_categories.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls PATCH /me/messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
categoriesarray of stringyesComplete replacement list of category names, e.g. ["Red Category"]. Pass an empty array to clear all categories.
message_idstringyesMessage to update.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
categoriesarray of string
idstring

Also retrieved by: "color-code this Outlook email", "tag this message with a category", "label this one so I can find it later", "clear the tags off this email".

microsoft_outlook.list_mail_folders

List the top-level mail folders in the Outlook mailbox: inbox, sent items, drafts, and any custom folders, with unread and total counts. Use when the user asks what folders exist. Resolve a folder's id here before other folder tools.

Class read (reads only). Scopes Mail.Read. Calls GET /me/mailFolders.

Arguments:

ArgumentTypeRequiredNotes
topintegernoPage size, default 25.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
valuearray of object
value[].childFolderCountinteger
value[].displayNamestring
value[].idstring
value[].parentFolderIdstring
value[].totalItemCountinteger
value[].unreadItemCountinteger

Also retrieved by: "what folders do I have set up in Outlook", "show me my Outlook mailbox structure", "what are all my mail folders called".

microsoft_outlook.get_mail_folder

Get one Outlook mail folder's details by folder id: name, parent, and message counts. Use list_mail_folders first to resolve the id.

Class read (reads only). Scopes Mail.Read. Calls GET /me/mailFolders/{{params.folder_id}}.

Arguments:

ArgumentTypeRequiredNotes
folder_idstringyesFolder id from list_mail_folders.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
childFolderCountinteger
displayNamestring
idstring
parentFolderIdstring
totalItemCountinteger
unreadItemCountinteger

Also retrieved by: "how many unread messages are in that Outlook folder", "what's the count on this folder", "how many emails are filed under this one".

microsoft_outlook.create_mail_folder

Create a new top-level mail folder in Outlook. Use when the user wants a new folder for organizing mail. Returns the folder id other tools need.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls POST /me/mailFolders.

Arguments:

ArgumentTypeRequiredNotes
display_namestringyesFolder name, e.g. "Receipts".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
displayNamestring
idstring

Also retrieved by: "set up a new folder for my Outlook mail", "make a new place to sort messages", "start a new mail folder".

microsoft_outlook.rename_mail_folder

Rename an existing Outlook mail folder by folder id. Use when the user wants to rename or relabel a folder, not a category.

Class write (writes, no confirmation needed). Scopes Mail.ReadWrite. Calls PATCH /me/mailFolders/{{params.folder_id}}.

Arguments:

ArgumentTypeRequiredNotes
display_namestringyesNew folder name.
folder_idstringyesFolder to rename.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
displayNamestring
idstring

Also retrieved by: "give that Outlook folder a new name", "change what this folder is called", "relabel this mail folder".

microsoft_outlook.delete_mail_folder

Permanently delete an Outlook mail folder and every message inside it. Unrecoverable; the messages are removed along with the folder. Verify the folder id and its contents first.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes Mail.ReadWrite. Calls DELETE /me/mailFolders/{{params.folder_id}}.

Arguments:

ArgumentTypeRequiredNotes
folder_idstringyesFolder to delete.

Also retrieved by: "get rid of that Outlook folder for good", "remove this mail folder, I don't need it anymore", "delete this folder entirely".

microsoft_outlook.list_inbox_rules

List the automatic inbox rules configured on the Outlook mailbox: what each rule matches and what it does. Use when the user asks what rules or filters are set up.

Class read (reads only). Scopes MailboxSettings.Read. Calls GET /me/mailFolders/inbox/messageRules.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
valuearray of object
value[].displayNamestring
value[].idstring
value[].isEnabledboolean
value[].sequenceinteger

Also retrieved by: "what automatic mail rules do I have set up", "show me my Outlook filters", "what's set up to auto-sort my incoming mail".

microsoft_outlook.create_inbox_rule

Create a new inbox rule that automatically moves, flags, or deletes incoming Outlook mail matching a condition. Use when the user wants mail sorted, filtered, or auto-processed as it arrives.

Class write (writes, no confirmation needed). Scopes MailboxSettings.ReadWrite. Calls POST /me/mailFolders/inbox/messageRules.

Arguments:

ArgumentTypeRequiredNotes
actionsobjectyesGraph messageRule actions object, e.g. {"moveToFolder": "AAMkAG...", "markAsRead": true, "stopProcessingRules": true}.
conditionsobjectyesGraph messageRule conditions object, e.g. {"subjectContains": ["invoice"]} or {"fromAddresses": [{"emailAddress": {"address": "billing@vendor.com"}}]}.
display_namestringyesName for the rule, e.g. "File newsletters".
is_enabledbooleannoWhether the rule is active. Default true.
sequenceintegernoRun order relative to other rules. Lower runs first.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
displayNamestring
idstring
isEnabledboolean

Also retrieved by: "set up a filter for incoming Outlook mail", "make incoming messages sort themselves automatically", "build a rule to handle mail as it arrives".

microsoft_outlook.update_inbox_rule

Change an existing Outlook inbox rule's conditions, actions, or enabled state by rule id. Use when the user wants to edit, fix, or turn off a mail rule.

Class write (writes, no confirmation needed). Scopes MailboxSettings.ReadWrite. Calls PATCH /me/mailFolders/inbox/messageRules/{{params.rule_id}}.

Arguments:

ArgumentTypeRequiredNotes
actionsobjectnoReplacement Graph messageRule actions object.
conditionsobjectnoReplacement Graph messageRule conditions object.
display_namestringnoNew name for the rule.
is_enabledbooleannoWhether the rule stays active.
rule_idstringyesRule to update, from list_inbox_rules.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
displayNamestring
idstring
isEnabledboolean

Also retrieved by: "fix that Outlook mail filter", "change what this automatic rule does", "turn off that mail sorting rule".

microsoft_outlook.delete_inbox_rule

Permanently remove an Outlook inbox rule by rule id. Use when the user wants a mail rule gone; incoming mail stops being auto-processed by it.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes MailboxSettings.ReadWrite. Calls DELETE /me/mailFolders/inbox/messageRules/{{params.rule_id}}.

Arguments:

ArgumentTypeRequiredNotes
rule_idstringyesRule to delete, from list_inbox_rules.

Also retrieved by: "get rid of that automatic mail filter", "remove this incoming-mail rule for good", "stop this filter from running".

microsoft_outlook.list_categories

List the master color category list for the Outlook mailbox: every category name and its color. Use when the user asks what tags or categories exist. Apply one to a message with categorize_message.

Class read (reads only). Scopes MailboxSettings.Read. Calls GET /me/outlook/masterCategories.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
valuearray of object
value[].colorstring
value[].displayNamestring
value[].idstring

Also retrieved by: "what color tags do I have set up in Outlook", "show me my Outlook labels", "what categories exist in my mailbox".

microsoft_outlook.create_category

Add a new color category to the Outlook master category list. Use when the user wants a new tag or label option before applying it to messages.

Class write (writes, no confirmation needed). Scopes MailboxSettings.ReadWrite. Calls POST /me/outlook/masterCategories.

Arguments:

ArgumentTypeRequiredNotes
colorstringyesPreset color id, e.g. "preset0" (red) through "preset24".
display_namestringyesCategory name, e.g. "Follow Up".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
colorstring
displayNamestring
idstring

Also retrieved by: "set up a new color tag in Outlook", "make a new label option for messages", "start a new category for my mail".

microsoft_outlook.delete_category

Permanently remove a color category from the Outlook master list, clearing it from every message that had it. Use when the user wants a category or tag gone for good.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes MailboxSettings.ReadWrite. Calls DELETE /me/outlook/masterCategories/{{params.category_id}}.

Arguments:

ArgumentTypeRequiredNotes
category_idstringyesCategory to delete, from list_categories.

Also retrieved by: "get rid of that Outlook tag for good", "remove this color label, I don't need it anymore", "delete this category entirely".

microsoft_outlook.list_contacts

List or search people in the Outlook contacts list. Use when the user asks who is in their contacts or wants to find someone's saved details. Returns names and email addresses; get one in full with get_contact.

Class read (reads only). Scopes Contacts.Read. Calls GET /me/contacts.

Arguments:

ArgumentTypeRequiredNotes
searchstringnoFree-text search over name, company, and email address, e.g. "Priya" or "acme.com".
topintegernoPage size, default 25.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
valuearray of object
value[].companyNamestring
value[].displayNamestring
value[].emailAddressesarray of object
value[].emailAddresses[].addressstring
value[].emailAddresses[].namestring
value[].idstring

Also retrieved by: "who is saved in my Outlook contacts", "look someone up in my address book", "find a saved email address in Outlook".

microsoft_outlook.get_contact

Get one Outlook contact's full details by contact id: name, email addresses, phone numbers, and company. Use list_contacts first to resolve the id.

Class read (reads only). Scopes Contacts.Read. Calls GET /me/contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesContact id from list_contacts.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
businessPhonesarray of string
companyNamestring
displayNamestring
emailAddressesarray of object
emailAddresses[].addressstring
emailAddresses[].namestring
idstring
mobilePhonestring

Also retrieved by: "pull up that person's full details in Outlook", "show me everything saved about this contact", "what's their phone number and company".

microsoft_outlook.create_contact

Add a new person to the Outlook contacts list. Use when the user wants to save someone's email address or details for later.

Class write (writes, no confirmation needed). Scopes Contacts.ReadWrite. Calls POST /me/contacts.

Arguments:

ArgumentTypeRequiredNotes
business_phonesarray of stringno
company_namestringnoEmployer or organization.
email_addressesarray of objectno
email_addresses[].addressstringyes
email_addresses[].namestringno
given_namestringyesFirst name.
surnamestringnoLast name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
displayNamestring
idstring

Also retrieved by: "save this person's email in Outlook", "add someone new to my address book", "keep this person's details on file".

microsoft_outlook.delete_contact

Permanently remove a person from the Outlook contacts list by contact id. Unrecoverable; verify the contact id before calling.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes Contacts.ReadWrite. Calls DELETE /me/contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesContact to delete, from list_contacts.

Also retrieved by: "remove that person from my Outlook contacts", "get rid of this saved contact for good", "take them out of my address book".

microsoft_outlook.get_automatic_replies_settings

Check whether the Outlook automatic-reply (out-of-office) responder is currently on, and read its scheduled window and messages. Use when the user asks if they are set to out of office. To change it use set_automatic_replies.

Class read (reads only). Scopes MailboxSettings.Read. Calls GET /me/mailboxSettings.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
automaticRepliesSettingobject
automaticRepliesSetting.externalAudiencestring
automaticRepliesSetting.externalReplyMessagestring
automaticRepliesSetting.internalReplyMessagestring
automaticRepliesSetting.scheduledEndDateTimeobject
automaticRepliesSetting.scheduledEndDateTime.dateTimestring
automaticRepliesSetting.scheduledEndDateTime.timeZonestring
automaticRepliesSetting.scheduledStartDateTimeobject
automaticRepliesSetting.scheduledStartDateTime.dateTimestring
automaticRepliesSetting.scheduledStartDateTime.timeZonestring
automaticRepliesSetting.statusstring

Also retrieved by: "am I set to out of office right now", "check if my Outlook auto-reply is on", "is my vacation responder turned on".

microsoft_outlook.set_automatic_replies

Turn Outlook's automatic-reply (out-of-office) responder on or off and set its scheduled window and reply text. Use when the user wants to set, schedule, or cancel an out-of-office message.

Class write (writes, no confirmation needed). Scopes MailboxSettings.ReadWrite. Calls PATCH /me/mailboxSettings.

Arguments:

ArgumentTypeRequiredNotes
external_audiencestring, one of none, contactsOnly, allnoWho outside the org gets the external reply.
external_reply_messagestringnoReply text shown to people outside the organization.
internal_reply_messagestringnoReply text shown to people inside the organization.
scheduled_endstringnoRFC 3339 end time. Required when status is scheduled.
scheduled_startstringnoRFC 3339 start time. Required when status is scheduled.
statusstring, one of disabled, alwaysEnabled, scheduledyesdisabled turns the responder off; alwaysEnabled leaves it on indefinitely; scheduled uses the start and end times below.
time_zonestringnoIANA time zone for scheduled_start/scheduled_end.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
automaticRepliesSettingobject
automaticRepliesSetting.externalAudiencestring
automaticRepliesSetting.statusstring

Also retrieved by: "turn on my out-of-office message", "schedule my vacation responder for next week", "turn off my automatic reply in Outlook".