# Microsoft Outlook Email — Pipedream Connect

> Microsoft Outlook lets you bring all your email accounts and calendars in one convenient spot.

- API slug: `microsoft_outlook` (use in MCP headers and tool keys)
- Auth: OAuth (Pipedream-managed)
- Categories: Communication
- Website: https://outlook.live.com
- Managed OAuth scopes: `User.Read` · `email` · `offline_access` · `openid` · `profile` · `Mail.ReadWrite` · `Mail.Send` · `Contacts.ReadWrite` · `User.ReadBasic.All`
- This page (HTML): https://pipedream.com/apps/microsoft-outlook
- Tools: 26 actions · 4 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: microsoft_outlook`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "microsoft_outlook",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Add Label to Email:
const result = await mcp.callTool({
  name: "microsoft_outlook-add-label-to-email",
  arguments: {
    userId: "User ID",
    messageId: "Message ID",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Microsoft Outlook Email endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://graph.microsoft.com/v1.0/me

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjAvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "microsoft_outlook-add-label-to-email",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    microsoft_outlook: { authProvisionId: "apn_xxxxxxx" },
    userId: "User ID",
    messageId: "Message ID",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (26)

### `microsoft_outlook-add-label-to-email` — Add Label to Email (Write)

Adds a label/category to an email in Microsoft Outlook. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/add-label-to-email.md

### `microsoft_outlook-create-contact` — Create Contact (Write)

Add a contact to the root Contacts folder, See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/create-contact.md

### `microsoft_outlook-create-draft-email` — Create Draft Email (Write)

Create a draft email, See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/create-draft-email.md

### `microsoft_outlook-create-draft-reply` — Create Draft Reply (Write)

Create a draft reply to an email. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/create-draft-reply.md

### `microsoft_outlook-download-attachment` — Download Attachment (Read-only)

Download an email attachment to /tmp. Use Find Email to locate the message, then Get Message with includeAttachments: true to get the messageId and attachment id fields. Example: after get-message(messageId="AAMk...", includeAttachments=true) returns attachments: [{ id: "AQMk...", name…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/download-attachment.md

### `microsoft_outlook-find-contacts` — Find Contacts (Read-only)

Search and list contacts in the authenticated user's Outlook contacts. Returns { count, contacts } where count is the Graph-reported total contact count (@odata.count) and contacts is the filtered result array. Omit searchString to return all contacts up to maxResults. When searchString is…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/find-contacts.md

### `microsoft_outlook-find-email` — Find Email (Read-only)

Find (search, list, or count) email messages in a Microsoft Outlook mailbox via Microsoft Graph. By default a search or list request (countOnly = false) scans the WHOLE mailbox (all folders including Sent, Archive, etc.), matching what you see when searching in Outlook; a count-only request…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/find-email.md

### `microsoft_outlook-find-shared-folder-email` — Find Shared Folder Email (Read-only)

Search for an email in a shared folder in Microsoft Outlook. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/find-shared-folder-email.md

### `microsoft_outlook-get-current-user` — Get Current User (Read-only)

Returns the authenticated Microsoft user's ID, display name, email, and principal name via Microsoft Graph. Call this first when the user says 'my emails', 'my inbox', or needs identity context. Use the returned id to scope queries in Find Email or identify the sender in email results. See the…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/get-current-user.md

### `microsoft_outlook-get-folder` — Get Folder (Read-only)

Retrieve a single mail folder by its ID. Returns the folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. If you only have a display name and need the ID, use List Folders first. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/get-folder.md

### `microsoft_outlook-get-message` — Get Message (Read-only)

Fetch a single email message by its Microsoft Graph message ID, including full body and optional attachments. Use Find Email first to search for messages and obtain a message id; then call this tool to retrieve the full content. Set includeAttachments: true to expand attachment metadata — the id…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/get-message.md

### `microsoft_outlook-get-shared-folder` — Get Shared Folder (Read-only)

Retrieve a single folder from a shared mailbox by its ID. Returns the folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. If you only have a display name and need the ID, use List Shared Folders first. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/get-shared-folder.md

### `microsoft_outlook-list-contact-options` — List Contact Options (Read-only)

Retrieves available options for the Contact field.

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-contact-options.md

### `microsoft_outlook-list-contacts` — List Contacts (Read-only)

Get a contact collection from the default contacts folder. Returns { count, contacts } where count is the true total number of contacts in the collection as reported by Microsoft Graph (@odata.count), and contacts is the array of retrieved contact records (up to maxResults). See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-contacts.md

### `microsoft_outlook-list-folder-ids-options` — List Folder IDs to Monitor Options (Read-only)

Retrieves available options for the Folder IDs to Monitor field.

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-folder-ids-options.md

### `microsoft_outlook-list-folders` — List Folders (Read-only)

Retrieves mail folders for the authenticated user. Returns { count, folders } where folders contains each folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. The count field reflects the true API total when Microsoft Graph returns @odata.count (supported…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-folders.md

### `microsoft_outlook-list-important-mail` — List Important Mail (Read-only)

Get the most important mail from the user's Inbox (messages with high importance or flagged status). Returns { count, data } where count is the true total matching message count reported by Microsoft Graph (@odata.count for the applied filter) and data is the array of retrieved messages (up to…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-important-mail.md

### `microsoft_outlook-list-labels` — List Labels (Read-only)

Get all the labels/categories that have been defined for a user. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-labels.md

### `microsoft_outlook-list-shared-folders` — List Shared Folders (Read-only)

Retrieves mail folders from a shared or delegated mailbox (routes to /users/{userId}/mailFolders). Returns { count, folders } where folders contains each folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. The count field reflects the true API total when…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/list-shared-folders.md

### `microsoft_outlook-modify-email` — Modify Email (Write)

Apply one or more state mutations to an email message: mark read/unread, add/remove categories, move to a folder, or change the flag status. All params except messageId are optional — only the ones you provide are applied. Use Find Email to obtain a message id before modifying. Recipes: Mark read…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/modify-email.md

### `microsoft_outlook-move-email-to-folder` — Move Email to Folder (Write)

Moves an email to the specified folder in Microsoft Outlook. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/move-email-to-folder.md

### `microsoft_outlook-remove-label-from-email` — Remove Label from Email (Write)

Removes a label/category from an email in Microsoft Outlook. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/remove-label-from-email.md

### `microsoft_outlook-reply-to-email` — Reply to Email (Write)

Reply to an email in Microsoft Outlook. See the documentation

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/reply-to-email.md

### `microsoft_outlook-save-contact` — Save Contact (Write)

Create or update an Outlook contact (upsert). Omit contactId to create a new contact; provide contactId to update an existing one. Use Find Contacts first to look up a contact's id before updating. Example (create): save-contact(givenName="Cosmo", surname="Kramer"…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/save-contact.md

### `microsoft_outlook-send-email` — Send Email (Write)

Send a new email, reply to an existing message, or save a draft — all in one tool. Omit inReplyToMessageId to send a new email. Provide inReplyToMessageId to reply to an existing message (threads correctly). Set isDraft: true to save to Drafts instead of sending immediately. Attach files by passing…

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/send-email.md

### `microsoft_outlook-update-contact` — Update Contact (Write)

Update an existing contact, See the docs

Full schema: https://pipedream.com/apps/microsoft-outlook/actions/update-contact.md

## Triggers (4)

### `microsoft_outlook-new-attachment-received` — New Attachment Received (Instant) (Polling)

Emit new event when a new email containing one or more attachments arrives in a specified Microsoft Outlook folder.

Full schema: https://pipedream.com/apps/microsoft-outlook/triggers/new-attachment-received.md

### `microsoft_outlook-new-contact` — New Contact Event (Instant) (Polling)

Emit new event when a new Contact is created

Full schema: https://pipedream.com/apps/microsoft-outlook/triggers/new-contact.md

### `microsoft_outlook-new-email` — New Email Event (Instant) (Polling)

Emit new event when an email is received in specified folders.

Full schema: https://pipedream.com/apps/microsoft-outlook/triggers/new-email.md

### `microsoft_outlook-new-email-in-shared-folder` — New Email in Shared Folder Event (Polling)

Emit new event when an email is received in specified shared folders.

Full schema: https://pipedream.com/apps/microsoft-outlook/triggers/new-email-in-shared-folder.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
