← Back to all apps

Outlook Email

Productivityby OpenAI

Review your Outlook email threads and calendar events to prepare for calls, revisit past conversations, surface upcoming meetings, or pull out action items. Use your communication and schedule history to create talking points, clarify follow-ups, and stay organized throughout your day.

25ChatGPT Tools
OpenAIDeveloper
ProductivityCategory

Available Tools

Create Category

create_category
Full Description

Create an Outlook mailbox category for later use on messages.

Parameters (1 required, 1 optional)
Required
display_namestring

Outlook category name, such as `Recruiter Spam` or `Newsletters`.

Optional
colorstring

Optional Outlook category color such as `preset0` through `preset24` or `none`.

Default: preset0

Create Forward Draft

create_forward_draft
Full Description

Create a draft forward for an existing Outlook email.

Use this when the user wants to review or edit the forward before it is sent. Recipients are optional so the agent can create a draft even when the final audience is not settled yet.

Parameters (1 required, 2 optional)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Optional
commentstring

Optional note added above the forwarded message. Leave null to forward without an added comment.

Default: null
toarray

Optional recipients for the forward draft. Provide them when the draft should already target specific people.

Default: null

Create Mail Folder

create_mail_folder
Full Description

Create an Outlook mail folder, optionally nested under an existing parent folder.

Parameters (1 required, 2 optional)
Required
display_namestring

Name of the Outlook mail folder to create.

Optional
parent_folder_idstring

Target Outlook mail folder ID. Use this when you already know the destination folder's exact ID. Provide either this or `destination_well_known_folder`, but not both.

Default: null
parent_well_known_folderstring

Optional Outlook well-known folder name to move the message into. Supported values: `archive`, `deleteditems`, `drafts`, `inbox`, `junkemail`, `sentitems`. Provide either this or `destination_folder_id`, but not both.

Default: null

Create Reply Draft

create_reply_draft
Full Description

Create a draft reply to an existing Outlook email.

Use this when the user wants a draft-first workflow instead of sending the reply immediately. If reply_all=true, Outlook includes the thread's wider recipient set in the draft.

Parameters (1 required, 2 optional)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Optional
commentstring

Optional note to include in the reply draft body above the quoted message.

Default: null
reply_allboolean

When `true`, send a reply-all. When `false`, reply only to the original sender.

Default: False

Draft Email

draft_email
Full Description

Create an Outlook draft email and return the draft message.

Use this when the user wants a saved draft for review or later sending. Draft bodies are plain text only.

Parameters (3 required, 3 optional)
Required
subjectstring

Draft subject line.

text_contentstring

Plain-text body content. Outlook email actions only support text bodies.

toarray

List of recipient email addresses. Each item may include `email` and optional `name`.

Optional
bccarray

Optional BCC recipients for the draft.

Default: null
ccarray

Optional CC recipients for the draft.

Default: null
html_contentstring
Default: null

Fetch Attachment

fetch_attachment
Full Description

Fetch one Outlook email attachment and return its metadata plus raw bytes.

Parameters (2 required)
Required
attachment_idstring

Outlook attachment ID from `list_attachments`. Pass the raw attachment ID exactly as returned.

message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Fetch Message

fetch_message
Full Description

Fetch a single Outlook email by its ID.

Use this when full message details are explicitly required. Do not call this immediately after list/search if subject/sender/time/preview/body snippets already satisfy the user request.

Parameters (1 required)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Fetch Messages Batch

fetch_messages_batch
Full Description

Retrieve multiple Outlook emails in a single request.

Use this only when complete body details are explicitly required by the user. For recent/unread list tasks, prefer list_messages/search_messages in one call. If full details are needed for multiple messages, prefer this action over repeated fetch_message calls to reduce API request count.

Parameters (1 required, 1 optional)
Required
message_idsarray

Outlook message IDs from list/search results. Pass the raw IDs exactly as returned.

Optional
batch_sizeinteger

Maximum number of messages to fetch in one batch call. Use a value between 1 and 20.

Default: 20

Find Mail Folder

find_mail_folder
Full Description

Find Outlook mail folders by name or path.

Use this before move_email when the user says a folder name like Finance or Projects/Finance and you need the exact folder ID. Results are ranked with exact path matches first, then exact display-name matches, then broader path/name substring matches. If multiple strong candidates remain, present them instead of guessing.

Parameters (1 required, 2 optional)
Required
querystring

Folder name or path fragment to match, such as `Finance`, `Projects/Finance`, or `Archive`. Matching is case-insensitive. Must be a non-empty string; do not pass empty or whitespace-only values when the user did not specify a folder.

Optional
include_hidden_foldersboolean

When `true`, include hidden Outlook folders. Leave this as `false` unless the user explicitly asks for hidden or system folders.

Default: False
max_resultsinteger

Maximum number of candidate folders to return. Must be a positive integer. Prefer 5 to 10 and keep this small when you want the best matches only.

Default: 10

Forward Email

forward_email
Full Description

Forward an existing Outlook email to new recipients.

Use this when the user wants to send an already-received message onward. This sends immediately; it does not create a draft. Provide at least one recipient in to.

Parameters (2 required, 1 optional)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

toarray

Recipients who should receive the forwarded email.

Optional
commentstring

Optional note added above the forwarded message. Leave null to forward without an added comment.

Default: null

Get Profile

get_profile
Full Description

Return basic profile information for the Outlook account.

Get Recent Emails

get_recent_emails
Full Description

Return the top_k most recently received Outlook emails.

This is a convenience wrapper around list_messages for simple "latest email" requests. Use list_messages directly when you need pagination, folder targeting, filters, or a custom sort order.

Parameters (0 required, 1 optional)
Optional
top_kinteger

How many of the newest messages to return. This is passed through to `list_messages(top=...)`.

Default: 5

Get Unsubscribe Info

get_unsubscribe_info
Full Description

Inspect unsubscribe-related headers for an Outlook email.

Use this for newsletter triage before attempting to unsubscribe. The response parses List-Unsubscribe and List-Unsubscribe-Post when present.

Parameters (1 required)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

List Attachments

list_attachments
Full Description

List attachment metadata for a specific Outlook email.

Parameters (1 required)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

List Categories

list_categories
Full Description

List Outlook mailbox categories available for tagging messages.

List Mail Folders

list_mail_folders
Full Description

List Outlook mail folders in a flat, path-oriented form.

Use this before move_email when the user names a folder but you do not already know its exact folder ID. The response includes folder paths like Projects/Finance so the model can choose the correct destination folder instead of guessing. This action recursively traverses child folders and returns a flat list ordered by discovery.

Parameters (0 required, 2 optional)
Optional
include_hidden_foldersboolean

When `true`, include hidden Outlook folders. Leave this as `false` unless the user explicitly asks for hidden or system folders.

Default: False
topinteger

Maximum number of folders to return across the full recursive traversal. Use a value between 1 and 500. Prefer 100 to 200 for most calls and use 500 only when you need an exhaustive folder scan. Larger values make it easier to find custom folders for `move_email`.

Default: 200

List Messages

list_messages
Full Description

Retrieve Outlook emails from a specified folder.

This is the preferred endpoint for "recent/unread/list" tasks. The response already includes high-value fields (subject/sender/time/read status/link and message preview/body), so avoid follow-up fetch calls unless the user explicitly asks for full-body extraction.

Model usage guidance:

  • Prefer this action for mailbox navigation intents like "recent", "latest",

and "unread".

  • If sorting by recency is required, pass order_by="receivedDateTime desc".
  • This action returns pagination metadata: has_more and

next_from_index. If has_more=true, call again with skip=next_from_index and the same filter/sort arguments.

  • Use fetch actions only when you truly need full-body details that are not

already available in list/search results.

Parameters (0 required, 6 optional)
Optional
filterstring

Optional raw Microsoft Graph `$filter` expression for server-side filtering, such as `isRead eq false`. Prefer `search_messages` for free-text queries.

Default: null
folder_idstring

Optional Outlook mail folder ID returned by `list_mail_folders` or `find_mail_folder`. Use this to list messages from a specific custom folder.

Default: null
order_bystring

Optional raw Microsoft Graph `$orderby` expression, such as `receivedDateTime desc`.

Default: null
selectarray

Optional extra Outlook message fields to include, using connector field names such as `internet_message_id`. Most workflows should leave this null and use the default fields.

Default: null
skipinteger

Zero-based pagination offset. Reuse `next_from_index` from a previous `list_messages` response instead of guessing.

Default: null
topinteger

Maximum number of messages to return in this page. Use a small value for recent-mail tasks and follow `has_more`/`next_from_index` for pagination.

Default: 20

Mark Email Read State

mark_email_read_state
Full Description

Mark an Outlook email as read or unread and return the updated message.

Use this for inbox-triage workflows such as "mark this unread so I can revisit it later" or "mark this as read now".

Parameters (2 required)
Required
is_readboolean

Set to `true` to mark the message as read, or `false` to mark it as unread.

message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Move Email

move_email
Full Description

Move an Outlook email into another mail folder and return the moved message.

Use this for triage flows such as moving a message to archive or back to inbox. Provide exactly one destination: either a concrete folder ID or a supported well-known folder name.

Parameters (1 required, 2 optional)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Optional
destination_folder_idstring

Target Outlook mail folder ID. Use this when you already know the destination folder's exact ID. Provide either this or `destination_well_known_folder`, but not both.

Default: null
destination_well_known_folderstring

Optional Outlook well-known folder name to move the message into. Supported values: `archive`, `deleteditems`, `drafts`, `inbox`, `junkemail`, `sentitems`. Provide either this or `destination_folder_id`, but not both.

Default: null

Reply To Email

reply_to_email
Full Description

Reply to an existing Outlook email.

Use this when the user wants to answer an existing thread. This sends immediately. For a draft-first workflow, create a new draft instead of using this action.

Parameters (2 required, 5 optional)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

text_contentstring

Plain-text body content. Outlook email actions only support text bodies.

Optional
bccarray

Optional BCC recipients to add to the reply.

Default: null
ccarray

Optional CC recipients to add to the reply.

Default: null
html_contentstring
Default: null
reply_allboolean

When `true`, send a reply-all. When `false`, reply only to the original sender.

Default: False
toarray

Optional explicit recipients. Usually leave null and let Outlook derive the reply recipients.

Default: null

Schedule Email

schedule_email
Full Description

Queue a new Outlook email for future delivery.

Parameters (4 required, 2 optional)
Required
send_atstring

Future delivery time in full ISO-8601 format, including a timezone or `Z`. For example: `2026-03-18T14:30:00-04:00`.

subjectstring

Email subject line.

text_contentstring

Plain-text body content. Outlook email actions only support text bodies.

toarray

List of recipient email addresses. Each item may include `email` and optional `name`.

Optional
bccarray

Optional BCC recipients.

Default: null
ccarray

Optional CC recipients.

Default: null

Search Messages

search_messages
Full Description

Search Outlook emails and return matching messages.

query supports connector-level filter tokens, which include received (time, YYYY-MM-DD, > or <), from (email address), to (email address), subject (string), hasattachment (boolean), read (boolean no|yes), and size (tiny|small|medium|large|verylarge|enormous). Free-text search behavior ultimately uses Microsoft Graph search: https://learn.microsoft.com/en-us/graph/search-query-parameter

Place free-text terms first in the query string. For example: query="quarterly review received>2025-01-01 received<2025-01-31 from:alice@example.com read:false"

For inbox-style requests (e.g. recent/unread summaries), this action usually returns enough data in one call. Only call fetch endpoints when the user explicitly requests full email body content.

Model usage guidance:

  • For "recent inbox" style requests, use query="".
  • For filter-only requests (e.g. unread/date/from/hasattachment), prefer

concise filter tokens such as read:false, received>=YYYY-MM-DD, received<=YYYY-MM-DD, from:alice@example.com, hasattachment:true. These can often be answered via a single efficient list call.

  • Keep size small. Prefer 20 to 50 for summaries and never request more than

500 results in one call.

  • If the user asks for keyword search (free text), include lexical terms in

query and this action will route through Graph search.

  • This action returns has_more and next_from_index to support stable

pagination without guessing.

  • To paginate, call this action again with the same query and

from_index=next_from_index when has_more=true (for example: page1 from_index=0,size=20, page2 from_index=20,size=20).

Parameters (1 required, 2 optional)
Required
querystring

Search string for Outlook mail. Use `""` for recent inbox-style requests. This connector also supports filter tokens such as `received>=2025-01-01`, `received<=2025-01-31`, `from:alice@example.com`, `read:false`, and `hasattachment:true` in the same query string. Example: `quarterly review received>2025-01-01 received<2025-01-31 from:alice@example.com read:false`. Free-text search behavior ultimately uses Microsoft Graph search: https://learn.microsoft.com/en-us/graph/search-query-parameter

Optional
from_indexinteger

Zero-based offset for pagination. Must be non-negative. Use `next_from_index` from a previous `search_messages` response instead of guessing.

Default: 0
sizeinteger

Maximum number of search results to request in one call. Must be between 1 and 500. Prefer 20 to 50 and paginate for larger result sets; do not use oversized 'fetch everything' values.

Default: 20

Send Email

send_email
Full Description

Send a new Outlook email immediately.

Use this when the user has finalized the message and wants it sent now. For draft-first workflows, use draft_email instead. Email bodies are plain text only.

Parameters (3 required, 4 optional)
Required
subjectstring

Email subject line.

text_contentstring

Plain-text body content. Outlook email actions only support text bodies.

toarray

List of recipient email addresses. Each item may include `email` and optional `name`.

Optional
bccarray

Optional BCC recipients.

Default: null
ccarray

Optional CC recipients.

Default: null
html_contentstring
Default: null
save_to_sent_itemsboolean

When `true`, Outlook stores a copy in Sent Items after sending.

Default: True

Set Message Categories

set_message_categories
Full Description

Replace the categories on an Outlook email and return the updated message.

Parameters (2 required)
Required
categoriesarray

Categories to set on the message.

message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.

Unsubscribe Via Mailto

unsubscribe_via_mailto
Full Description

Send a mailto-based unsubscribe request when a message exposes one.

This action only supports mailto: targets from List-Unsubscribe. It intentionally does not perform HTTPS one-click unsubscribe requests.

Parameters (1 required)
Required
message_idstring

Outlook message ID from `list_messages`, `search_messages`, `fetch_message`, or `fetch_messages_batch`. Pass the raw message ID exactly as returned by the connector.