Search documentation

Search guides, connectors and tools

Microsoft Outlook

Microsoft Outlook

Outlook account connector to manage emails, folders, drafts, and calendar events.

microsoft-outlookOAuth23 tools

Tools

Ask an agent for what you need in plain language — it picks the right tool itself. You can also limit which of these an agent may use, and require your approval before any of them runs.

Search Emails

searchEmails€0.01 per call

Search Outlook messages using KQL search syntax and return matching message summaries.

ParameterTypeDescription
queryrequiredstringSearch query using KQL syntax (e.g. "from:alice@example.com subject:invoice hasAttachments:true"). Results are ordered by relevance.
folderIdstringRestrict the search to one mail folder: a folder ID from listMailFolders or a well-known name ("inbox", "archive", "sentitems", "drafts", "deleteditems", "junkemail").
maxResultsintegerMaximum number of messages to return (capped at 25).
pageTokenstringPage token returned by a previous search to fetch the next page.

Get Email

getEmail€0.01 per call

Fetch the full content of an Outlook message including body and attachment list.

ParameterTypeDescription
messageIdrequiredstringOutlook message ID (as returned by searchEmails or getConversation).

Get Conversation

getConversation€0.01 per call

Fetch all messages of an Outlook conversation (email thread) in chronological order.

ParameterTypeDescription
conversationIdrequiredstringOutlook conversation ID (as returned by searchEmails or getEmail).

List Mail Folders

listMailFolders€0.01 per call

List Outlook mail folders (two levels deep) with their IDs and unread counts. Well-known folder names ("inbox", "archive", "sentitems", "drafts", "deleteditems", "junkemail") can be used instead of IDs wherever a folder ID is accepted.

ParameterTypeDescription
_unusedbooleanIgnore; call with {} or omit this field.

List Categories

listCategories€0.01 per call

List Outlook master categories (color tags applied to messages by name via updateEmail).

ParameterTypeDescription
_unusedbooleanIgnore; call with {} or omit this field.

Send Email

sendEmail€0.01 per call

Send a new Outlook email. To reply to or forward an existing message use replyToEmail or forwardEmail.

ParameterTypeDescription
torequiredstringRecipient email addresses, comma-separated.
ccstringCc email addresses, comma-separated.
bccstringBcc email addresses, comma-separated.
subjectrequiredstringEmail subject.
bodyrequiredstringEmail body content.
bodyType"text" | "html"Body content type; defaults to plain text.
importance"low" | "normal" | "high"Importance marker.

Reply to Email

replyToEmail€0.01 per call

Reply (or reply-all) to an Outlook message. Threading, subject, and quoted history are handled automatically.

ParameterTypeDescription
messageIdrequiredstringOutlook message ID to reply to.
bodyrequiredstringReply text. The original message is quoted below it automatically.
replyAllbooleanReply to all original recipients instead of only the sender.
additionalRecipientsstringExtra recipient email addresses to add to the reply, comma-separated.

Forward Email

forwardEmail€0.01 per call

Forward an Outlook message (original attachments are preserved).

ParameterTypeDescription
messageIdrequiredstringOutlook message ID to forward.
torequiredstringRecipient email addresses, comma-separated.
commentstringText placed above the forwarded message.

Create Draft

createDraft€0.01 per call

Create an Outlook draft email. In Outlook a draft is a message: use the returned message ID with addAttachmentToDraft and sendDraft.

ParameterTypeDescription
tostringRecipient email addresses, comma-separated.
ccstringCc email addresses, comma-separated.
bccstringBcc email addresses, comma-separated.
subjectrequiredstringEmail subject.
bodyrequiredstringEmail body content.
bodyType"text" | "html"Body content type; defaults to plain text.

Send Draft

sendDraft€0.01 per call

Send an existing Outlook draft email.

ParameterTypeDescription
messageIdrequiredstringOutlook draft message ID (as returned by createDraft).

Add Attachment to Draft

addAttachmentToDraft€0.01 per call

Add a file attachment from agent storage to an existing Outlook draft.

ParameterTypeDescription
messageIdrequiredstringOutlook draft message ID (as returned by createDraft).
filePathrequiredstringAbsolute path to the file in agent storage (e.g. "/chats/<chatId>/generated/call_abc123.png"). Use the exact path reported by the imageGeneration tool result.
filenamestringOverride the attachment filename shown to the recipient

Save Attachment

saveAttachment€0.01 per call

Download an attachment from an Outlook message and store it in agent file storage.

ParameterTypeDescription
messageIdrequiredstringOutlook message ID that contains the attachment.
attachmentIdrequiredstringAttachment ID from the message (as reported by the getEmail tool).
filenamerequiredstringFilename to store the attachment under in agent storage.
targetDirectorystringOptional directory in agent storage to save into (e.g. "/attachments"). Defaults to "/attachments".

Update Email

updateEmail€0.01 per call

Update Outlook message properties: read state, follow-up flag, importance, and categories.

ParameterTypeDescription
messageIdrequiredstringOutlook message ID to update.
isReadbooleanMark the message as read (true) or unread (false).
flag"flagged" | "notFlagged" | "complete"Set the follow-up flag status.
importance"low" | "normal" | "high"Set the importance marker.
addCategoriesstring[]Category names to add (see listCategories; a name outside the master list is applied as well).
removeCategoriesstring[]Category names to remove from the message.

Move Email

moveEmail€0.01 per call

Move an Outlook message to another mail folder (moving to "deleteditems" is how messages are deleted).

ParameterTypeDescription
messageIdrequiredstringOutlook message ID to move.
destinationFolderIdrequiredstringDestination folder: a folder ID from listMailFolders or a well-known name ("inbox", "archive", "deleteditems", "junkemail"). Moving to "deleteditems" deletes the message (recoverable from Deleted Items, not permanently removed).

Create Mail Folder

createMailFolder€0.01 per call

Create a new Outlook mail folder, optionally nested under a parent folder.

ParameterTypeDescription
namerequiredstringDisplay name of the new mail folder.
parentFolderIdstringParent folder ID to nest the new folder under (from listMailFolders). Creates a top-level folder when omitted.

List Calendars

listCalendars€0.01 per call

List the calendars on the account (events default to the account's default calendar).

ParameterTypeDescription
_unusedbooleanIgnore; call with {} or omit this field.

List Events

listEvents€0.01 per call

List Outlook calendar events within a time window, ordered by start time. Recurring events are expanded into individual instances.

ParameterTypeDescription
startDateTimerequiredstringStart of the time window (ISO 8601, e.g. "2026-08-05T00:00:00" or with offset).
endDateTimerequiredstringEnd of the time window (ISO 8601). Events overlapping the window are returned.
calendarIdstringCalendar ID from listCalendars. Defaults to the account's default calendar.
timeZonestringIANA time zone (e.g. "Europe/Bratislava") for interpreting the window and returned event times. Defaults to UTC.
maxResultsintegerMaximum number of events to return (capped at 50).
pageTokenstringPage token returned by a previous call to fetch the next page.

Get Event

getEvent€0.01 per call

Get the full details of a single Outlook calendar event.

ParameterTypeDescription
eventIdrequiredstringOutlook event ID (as returned by listEvents or createEvent).
timeZonestringIANA time zone for the returned event times. Defaults to the event time zone.

Create Event

createEvent€0.01 per call

Create an Outlook calendar event, optionally recurring, with a Teams meeting link, and required/optional attendees (who are invited automatically).

ParameterTypeDescription
calendarIdstringCalendar ID from listCalendars. Defaults to the account's default calendar.
subjectrequiredstringEvent title.
bodystringEvent description.
bodyType"text" | "html"Description content type; defaults to plain text.
locationstringEvent location.
startrequiredstringStart: ISO datetime without offset ("2026-08-05T10:00:00", interpreted in timeZone) or "YYYY-MM-DD" for an all-day event.
endrequiredstringEnd, same format as start. For all-day events the end date is exclusive.
timeZonestringIANA time zone (e.g. "Europe/Bratislava") for start/end. Defaults to UTC.
requiredAttendeesstringRequired attendee email addresses, comma-separated. Invitations are sent automatically.
optionalAttendeesstringOptional attendee email addresses, comma-separated.
teamsMeetingbooleanAttach a Microsoft Teams meeting link.
showAs"free" | "tentative" | "busy" | "oof"How the time shows in availability; defaults to busy.
recurrenceobjectMake the event recurring.
recurrence.patternrequired"daily" | "weekly" | "monthly" | "yearly"How often the event repeats. Monthly/yearly anchor to the start date.
recurrence.intervalintegerRepeat every N periods (e.g. 2 = every second week). Defaults to 1.
recurrence.daysOfWeek"monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday"[]Weekdays for weekly patterns. Defaults to the start date's weekday.
recurrence.untilstringLast date of the series (YYYY-MM-DD).
recurrence.occurrencesintegerNumber of occurrences. Repeats forever when neither until nor occurrences is set.

Update Event

updateEvent€0.01 per call

Update fields of an existing Outlook calendar event. Only the provided fields change; attendees are notified of updates automatically.

ParameterTypeDescription
eventIdrequiredstringOutlook event ID to update. For a recurring event, an instance ID (from listEvents) updates that occurrence and the seriesMasterId updates the whole series.
subjectstringNew event title.
bodystringNew event description.
bodyType"text" | "html"Description content type; defaults to plain text.
locationstringNew event location.
startstringNew start: ISO datetime without offset or "YYYY-MM-DD" (all-day). Provide start and end together.
endstringNew end, same format as start.
timeZonestringIANA time zone for start/end. Defaults to UTC.
requiredAttendeesstringReplaces the full attendee list: required attendee email addresses, comma-separated.
optionalAttendeesstringReplaces the full attendee list: optional attendee email addresses, comma-separated.
showAs"free" | "tentative" | "busy" | "oof"How the time shows in availability.

Delete Event

deleteEvent€0.01 per call

Delete an Outlook calendar event; as the meeting organizer, optionally cancel it with a message to attendees.

ParameterTypeDescription
eventIdrequiredstringOutlook event ID to delete. For a recurring event, an instance ID deletes that occurrence and the seriesMasterId deletes the whole series.
cancellationMessagestringOnly when the account is the organizer of a meeting: cancel it and notify attendees with this message instead of silently deleting.

Respond to Event

respondToEvent€0.01 per call

Accept, tentatively accept, or decline an Outlook meeting invitation, optionally with a message to the organizer.

ParameterTypeDescription
eventIdrequiredstringOutlook event ID of the meeting invitation to respond to.
responserequired"accept" | "tentativelyAccept" | "decline"The response to send.
commentstringOptional message included with the response.
sendResponsebooleanWhether to notify the organizer of the response. Defaults to true.

Find Availability

findAvailability€0.01 per call

Check busy intervals for one or more people or rooms within a time window (gaps between busy intervals are free). Requires a work or school Microsoft account.

ParameterTypeDescription
emailsrequiredstring[]Email addresses of the mailboxes or rooms to check (include the account's own address to check its calendar).
startrequiredstringStart of the window to check (ISO 8601, e.g. "2026-08-05T09:00:00").
endrequiredstringEnd of the window to check (ISO 8601).
timeZonestringIANA time zone for the window and the returned busy intervals. Defaults to UTC.

Permissions

You choose what to grant on the provider's consent screen. A tool is only available to your agents if you granted the permission it needs, so granting less simply means fewer tools.

  • Calendars.ReadWrite
  • Mail.ReadWrite
  • Mail.Send