Microsoft Outlook
Outlook account connector to manage emails, folders, drafts, and calendar events.
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 Outlook messages using KQL search syntax and return matching message summaries.
| Parameter | Type | Description |
|---|---|---|
| queryrequired | string | Search query using KQL syntax (e.g. "from:alice@example.com subject:invoice hasAttachments:true"). Results are ordered by relevance. |
| folderId | string | Restrict the search to one mail folder: a folder ID from listMailFolders or a well-known name ("inbox", "archive", "sentitems", "drafts", "deleteditems", "junkemail"). |
| maxResults | integer | Maximum number of messages to return (capped at 25). |
| pageToken | string | Page token returned by a previous search to fetch the next page. |
Fetch the full content of an Outlook message including body and attachment list.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID (as returned by searchEmails or getConversation). |
Fetch all messages of an Outlook conversation (email thread) in chronological order.
| Parameter | Type | Description |
|---|---|---|
| conversationIdrequired | string | Outlook conversation ID (as returned by searchEmails or getEmail). |
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.
| Parameter | Type | Description |
|---|---|---|
| _unused | boolean | Ignore; call with {} or omit this field. |
List Outlook master categories (color tags applied to messages by name via updateEmail).
| Parameter | Type | Description |
|---|---|---|
| _unused | boolean | Ignore; call with {} or omit this field. |
Send a new Outlook email. To reply to or forward an existing message use replyToEmail or forwardEmail.
| Parameter | Type | Description |
|---|---|---|
| torequired | string | Recipient email addresses, comma-separated. |
| cc | string | Cc email addresses, comma-separated. |
| bcc | string | Bcc email addresses, comma-separated. |
| subjectrequired | string | Email subject. |
| bodyrequired | string | Email body content. |
| bodyType | "text" | "html" | Body content type; defaults to plain text. |
| importance | "low" | "normal" | "high" | Importance marker. |
Reply (or reply-all) to an Outlook message. Threading, subject, and quoted history are handled automatically.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID to reply to. |
| bodyrequired | string | Reply text. The original message is quoted below it automatically. |
| replyAll | boolean | Reply to all original recipients instead of only the sender. |
| additionalRecipients | string | Extra recipient email addresses to add to the reply, comma-separated. |
Forward an Outlook message (original attachments are preserved).
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID to forward. |
| torequired | string | Recipient email addresses, comma-separated. |
| comment | string | Text placed above the forwarded message. |
Create an Outlook draft email. In Outlook a draft is a message: use the returned message ID with addAttachmentToDraft and sendDraft.
| Parameter | Type | Description |
|---|---|---|
| to | string | Recipient email addresses, comma-separated. |
| cc | string | Cc email addresses, comma-separated. |
| bcc | string | Bcc email addresses, comma-separated. |
| subjectrequired | string | Email subject. |
| bodyrequired | string | Email body content. |
| bodyType | "text" | "html" | Body content type; defaults to plain text. |
Send an existing Outlook draft email.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook draft message ID (as returned by createDraft). |
Add a file attachment from agent storage to an existing Outlook draft.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook draft message ID (as returned by createDraft). |
| filePathrequired | string | Absolute 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. |
| filename | string | Override the attachment filename shown to the recipient |
Download an attachment from an Outlook message and store it in agent file storage.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID that contains the attachment. |
| attachmentIdrequired | string | Attachment ID from the message (as reported by the getEmail tool). |
| filenamerequired | string | Filename to store the attachment under in agent storage. |
| targetDirectory | string | Optional directory in agent storage to save into (e.g. "/attachments"). Defaults to "/attachments". |
Update Outlook message properties: read state, follow-up flag, importance, and categories.
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID to update. |
| isRead | boolean | Mark 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. |
| addCategories | string[] | Category names to add (see listCategories; a name outside the master list is applied as well). |
| removeCategories | string[] | Category names to remove from the message. |
Move an Outlook message to another mail folder (moving to "deleteditems" is how messages are deleted).
| Parameter | Type | Description |
|---|---|---|
| messageIdrequired | string | Outlook message ID to move. |
| destinationFolderIdrequired | string | Destination 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 a new Outlook mail folder, optionally nested under a parent folder.
| Parameter | Type | Description |
|---|---|---|
| namerequired | string | Display name of the new mail folder. |
| parentFolderId | string | Parent folder ID to nest the new folder under (from listMailFolders). Creates a top-level folder when omitted. |
List the calendars on the account (events default to the account's default calendar).
| Parameter | Type | Description |
|---|---|---|
| _unused | boolean | Ignore; call with {} or omit this field. |
List Outlook calendar events within a time window, ordered by start time. Recurring events are expanded into individual instances.
| Parameter | Type | Description |
|---|---|---|
| startDateTimerequired | string | Start of the time window (ISO 8601, e.g. "2026-08-05T00:00:00" or with offset). |
| endDateTimerequired | string | End of the time window (ISO 8601). Events overlapping the window are returned. |
| calendarId | string | Calendar ID from listCalendars. Defaults to the account's default calendar. |
| timeZone | string | IANA time zone (e.g. "Europe/Bratislava") for interpreting the window and returned event times. Defaults to UTC. |
| maxResults | integer | Maximum number of events to return (capped at 50). |
| pageToken | string | Page token returned by a previous call to fetch the next page. |
Get the full details of a single Outlook calendar event.
| Parameter | Type | Description |
|---|---|---|
| eventIdrequired | string | Outlook event ID (as returned by listEvents or createEvent). |
| timeZone | string | IANA time zone for the returned event times. Defaults to the event time zone. |
Create an Outlook calendar event, optionally recurring, with a Teams meeting link, and required/optional attendees (who are invited automatically).
| Parameter | Type | Description |
|---|---|---|
| calendarId | string | Calendar ID from listCalendars. Defaults to the account's default calendar. |
| subjectrequired | string | Event title. |
| body | string | Event description. |
| bodyType | "text" | "html" | Description content type; defaults to plain text. |
| location | string | Event location. |
| startrequired | string | Start: ISO datetime without offset ("2026-08-05T10:00:00", interpreted in timeZone) or "YYYY-MM-DD" for an all-day event. |
| endrequired | string | End, same format as start. For all-day events the end date is exclusive. |
| timeZone | string | IANA time zone (e.g. "Europe/Bratislava") for start/end. Defaults to UTC. |
| requiredAttendees | string | Required attendee email addresses, comma-separated. Invitations are sent automatically. |
| optionalAttendees | string | Optional attendee email addresses, comma-separated. |
| teamsMeeting | boolean | Attach a Microsoft Teams meeting link. |
| showAs | "free" | "tentative" | "busy" | "oof" | How the time shows in availability; defaults to busy. |
| recurrence | object | Make the event recurring. |
| recurrence.patternrequired | "daily" | "weekly" | "monthly" | "yearly" | How often the event repeats. Monthly/yearly anchor to the start date. |
| recurrence.interval | integer | Repeat 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.until | string | Last date of the series (YYYY-MM-DD). |
| recurrence.occurrences | integer | Number of occurrences. Repeats forever when neither until nor occurrences is set. |
Update fields of an existing Outlook calendar event. Only the provided fields change; attendees are notified of updates automatically.
| Parameter | Type | Description |
|---|---|---|
| eventIdrequired | string | Outlook event ID to update. For a recurring event, an instance ID (from listEvents) updates that occurrence and the seriesMasterId updates the whole series. |
| subject | string | New event title. |
| body | string | New event description. |
| bodyType | "text" | "html" | Description content type; defaults to plain text. |
| location | string | New event location. |
| start | string | New start: ISO datetime without offset or "YYYY-MM-DD" (all-day). Provide start and end together. |
| end | string | New end, same format as start. |
| timeZone | string | IANA time zone for start/end. Defaults to UTC. |
| requiredAttendees | string | Replaces the full attendee list: required attendee email addresses, comma-separated. |
| optionalAttendees | string | Replaces the full attendee list: optional attendee email addresses, comma-separated. |
| showAs | "free" | "tentative" | "busy" | "oof" | How the time shows in availability. |
Delete an Outlook calendar event; as the meeting organizer, optionally cancel it with a message to attendees.
| Parameter | Type | Description |
|---|---|---|
| eventIdrequired | string | Outlook event ID to delete. For a recurring event, an instance ID deletes that occurrence and the seriesMasterId deletes the whole series. |
| cancellationMessage | string | Only when the account is the organizer of a meeting: cancel it and notify attendees with this message instead of silently deleting. |
Accept, tentatively accept, or decline an Outlook meeting invitation, optionally with a message to the organizer.
| Parameter | Type | Description |
|---|---|---|
| eventIdrequired | string | Outlook event ID of the meeting invitation to respond to. |
| responserequired | "accept" | "tentativelyAccept" | "decline" | The response to send. |
| comment | string | Optional message included with the response. |
| sendResponse | boolean | Whether to notify the organizer of the response. Defaults to true. |
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.
| Parameter | Type | Description |
|---|---|---|
| emailsrequired | string[] | Email addresses of the mailboxes or rooms to check (include the account's own address to check its calendar). |
| startrequired | string | Start of the window to check (ISO 8601, e.g. "2026-08-05T09:00:00"). |
| endrequired | string | End of the window to check (ISO 8601). |
| timeZone | string | IANA 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