How to connect Outlook to OpenClaw
Connect Outlook to OpenClaw with ClawLink in one click — 270 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Read mail, manage calendar, and browse contacts. Once connected, OpenClaw can read and act on Outlook from chat — pairing, token refresh, and tool wiring handled for you.
The usual route to Outlook access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Outlook setup: install one ClawHub skill, connect Outlook in the browser, and OpenClaw can call real Outlook actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into OpenClaw, or open the Outlook skill on ClawHub.
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "Outlook" (hith3sh/outlook-inbox) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/outlook-inbox
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.Setup
It takes three steps to connect OpenClaw to Outlook.
1Install the plugin
Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:
openclaw plugins install clawhub:clawlink-plugin- 2
Connect Outlook
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask OpenClaw: "What can you do with Outlook?"
The install, start to finish. Run these once, then connect Outlook in the dashboard:
openclaw plugins install clawhub:clawlink-plugin
openclaw skills install @hith3sh/outlook-inboxStart a fresh chat afterwards so OpenClaw reloads its tool catalog, then ask it to run clawlink_list_integrations to confirm Outlook is connected.
Using a different agent?
The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Outlook is connected in the dashboard, that agent calls the same 270 Outlook tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Outlook MCP for OpenClaw
Looking for a Outlook MCP server for OpenClaw? ClawLink connects Outlook to OpenClaw and exposes 270 Outlook tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Outlook integration works the same way.
Is it safe to connect Outlook to OpenClaw?
The honest version, with the actual permissions. ClawLink connects through a hosted OAuth client: you click Connect, approve on Microsoft's consent screen, and no password or secret is stored on your machine or server.
- What the connection asks for: read and write mail, send mail, read and write calendar, read and write contacts, mailbox settings, your profile, and offline access to keep the token alive. That is the reach the tools on this page need. If you want less, connect a secondary Microsoft account and work with the mail the agent is allowed to see.
- What is not involved: no app password, no config file with a standing secret, and no background polling. The grant is revocable at any time from your Microsoft account's security settings, and a connection made through the dashboard can be removed in one click.
- The risk nobody else names: prompt injection. An agent that reads your mail is reading text written by strangers, and that text can contain instructions. Treat an agent with send access like a new assistant: ask for drafts, read them, then send. The send tools also run behind ClawLink's explicit-confirmation gate.
- Work or school accounts add your employer's policy. Microsoft 365 tenants can restrict which third-party apps may connect. If the consent screen refuses or an admin approval is requested, that is your organization's app policy, not a ClawLink failure — your IT team can approve the app or block it.
The setups worth being cautious about are the DIY ones: an app registration you created with a client secret sitting in a file on the machine the agent runs on. ClawLink removes that part.
What the OpenClaw Outlook integration can do
270 Outlook tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 270.
30 of 270 Outlook tools for OpenClaw
| Tool | What it does |
|---|---|
Calendar create event outlook_calendar_create_event | Create a new Outlook calendar event |
Create contact outlook_create_contact | Create a new Outlook contact |
Create draft outlook_create_draft | Create a new draft Outlook email |
Get message outlook_get_message | Get a specific Outlook message |
Get profile outlook_get_profile | Get the connected Outlook user profile |
List calendars outlook_list_calendars | List Outlook calendars |
List mail folders outlook_list_mail_folders | List Outlook mail folders |
List messages outlook_list_messages | List Outlook messages |
List user contacts outlook_list_user_contacts | List Outlook contacts |
Query emails outlook_query_emails | Query Outlook emails with filters |
Reply email outlook_reply_email | Reply directly to an Outlook message |
Search messages outlook_search_messages | Search Outlook messages |
Send email outlook_send_email | Send a new Outlook email |
Download outlook attachment outlook_download_outlook_attachment | Downloads a specific file attachment from an email message in a Microsoft Outlook mailbox; the |
Find meeting times outlook_find_meeting_times | Suggests meeting times based on organizer and attendee availability, time constraints, and |
Get calendar event outlook_get_calendar_event | Retrieve a specific event from a specified calendar |
Get calendar event attachment outlook_get_calendar_event_attachment | Retrieve a specific attachment from an event within a calendar |
Get calendar from event outlook_get_calendar_from_event | Retrieve the parent calendar that contains a specific event |
Get calendar from group outlook_get_calendar_from_group | Retrieve a specific calendar from a calendar group in Microsoft Outlook |
Get calendar group outlook_get_calendar_group | Retrieve the properties and relationships of a calendar group object |
Get calendar group calendar event extension outlook_get_calendar_group_calendar_event_extension | Retrieve an open extension from a calendar event within a specific calendar group and calendar |
Get calendar group schedule outlook_get_calendar_group_schedule | Retrieve free/busy schedule information for a specific user's calendar within a calendar group |
Get calendar permission outlook_get_calendar_permission | Retrieve a specific calendar permission for a user's calendar |
Get calendar permission from calendar outlook_get_calendar_permission_from_calendar | Retrieve a specific calendar permission from a user's calendar |
Get calendar schedule outlook_get_calendar_schedule | Get free/busy schedule information for users, distribution lists, or resources |
Get calendar view outlook_get_calendar_view | Get events ACTIVE during a time window (includes multi-day events) |
Get child folder message outlook_get_child_folder_message | Retrieve a specific email message from a child mail folder |
Get child folder message content outlook_get_child_folder_message_content | Get the MIME content of a message from a child mail folder |
Get child mail folder outlook_get_child_mail_folder | Retrieve a specific child mail folder from a parent mail folder |
Get contact extension outlook_get_contact_extension | Retrieve an open extension from a contact in Microsoft Graph |
Try it: find the Outlook tool you need
Browse the 30 Outlook tools
Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.
Example prompts
List my 25 most recent unread messages from my Outlook inbox and include the body text, then tell me who is waiting on a reply and what each one needs.
Search my Outlook mailbox for messages matching
from:stripe.com hasattachment:yes, return the 10 most recent, and download the attachment from the newest one.
Send an email to alice@example.com and bob@example.com with subject "Q3 numbers" and an HTML body containing the summary table, with is_html true. Save a copy in Sent Items.
Create an Outlook calendar event "Product review" tomorrow from 14:00 to 15:00 in Pacific Standard Time, add sarah@acme.com as an attendee, and make it a Teams online meeting.
What to tell the agent when it calls Outlook
These are the defaults the Outlook tools actually run with. Three of them surprise people, and all three are fixed by saying one more thing in the prompt.
- List messages returns 10 messages from the inbox with minimal detail by default:
topdefaults to 10,foldertoinbox, andresponse_detailtominimal, which excludes the body text. "Check my email" comes back as ten subjects. Say "list 50, include the body" instead. - Query emails searches one folder at a time — the default is
inboxand it cannot search across all folders — andtopdefaults to 100. Use the well-known folder names (inbox,sentitems,drafts,deleteditems) and OData filters likeisRead eq false. - Search messages takes KQL, not Gmail-style operators:
from:stripe.com,subject:invoice,hasattachment:yes. Results are newest-first unlessenable_top_resultsis true,sizecaps at 25, andfrom_index + sizecannot exceed 1000. This tool refuses personal Microsoft accounts — Microsoft's Search API is Microsoft 365-only. - Send email requires
subject,body, andto(comma-separated for multiple recipients). HTML is sent as plain text unlessis_htmlis true, and copies are saved to Sent Items by default. - Calendar create event needs
subject,start_datetime,end_datetime, and atime_zonein Windows format ("Pacific Standard Time", not "America/Los_Angeles"). Online meetings currently support only Teams (teamsForBusiness). - Message, event, and folder ids must be real ids from a list or search result. "me" is a valid user alias, never a message id, and an example id or a deleted message produces the errors in the troubleshooting section below.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Outlook working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Outlook app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Outlook through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Outlook. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Outlook actions to the runtime in a format your agent can reliably use. | 270 tools for Outlook are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Outlook to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Outlook in the browser, and the 270 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
OpenClaw installed the Outlook skill but can't call the tools
The ClawHub skill teaches OpenClaw about Outlook, but the calls run through the ClawLink plugin and your connected account. Make sure Outlook is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.
Connection succeeds but no tools appear
Reconnect Outlook from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Outlook tools
Outlook tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Outlook call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Outlook returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
"Search does not work with @hotmail.com or @outlook.com personal accounts. Please use a work or school (Microsoft 365/Enterprise) account."
This is a real limit of Microsoft's Search API, not a ClawLink restriction: Microsoft Search is built for Microsoft 365 organizations and personal mailboxes have no search index. It is the single most common Outlook error in our production logs. On a personal account, skip Search messages and use List messages or Query emails instead — both work on personal and work accounts, and both take filters (read status, sender, date, subject) that cover most search needs. On a work or school account, the search tool itself works.
Ask the agent to diagnose it:
Run clawlink_list_integrations and report Outlook's connection status. Do not retry the failed search. If the connected account is a personal @outlook.com or @hotmail.com address, switch that task to List messages or Query emails."The specified object was not found in the store." (ErrorItemNotFound)
Graph returns this when the message, event, or folder no longer exists or never existed in the mailbox the agent is querying. The usual causes: the item was deleted or moved after the agent fetched its id, or the id came from a different mailbox (for example, a shared mailbox whose connection is separate from the agent's own). Have the agent re-run the list or search that produced the id and retry with a fresh one. The id alone cannot tell you which case it is — the list output can.
Ask the agent to diagnose it:
Re-run the list or search tool that produced the failing id, then retry the original call with an id from that fresh output. Report the error you get either way."Id is malformed." (TargetIdShouldNotBeMeOrWhitespace)
This is the placeholder-argument trap: the agent passed an empty id, "me", or an example id from documentation instead of a real one. "me" is a valid value for the user argument, not for message, event, or folder ids. Real ids look like AAMkADAwATNiZmY… and only come from list or search results. Ask the agent to run a list or search first, then retry with an id from that output. Most "malformed id" failures are this, not an account problem.
"outlook_delete_message requires explicit confirmation before execution."
ClawLink's confirmation gate is what this error is. Destructive tools — Delete message, Move message, and the permanent-delete variants — return a preview and require explicit confirmation before any change reaches Microsoft. The agent should present the preview and wait for your approval; reconnecting the account does not bypass it, and the gate is on purpose. If the agent's runtime does not offer a confirm step, ask it to draft the call and approve it explicitly.
"Too many requests. Try again shortly."
Microsoft Graph is throttling the mailbox, usually because the agent fired a burst of calls (for example, downloading every attachment in a folder at once). Wait a few seconds and retry; for bulk work, space the calls out or batch them — the batch tools accept up to 20 messages per call and reject anything larger ("List should have at most 20 items after validation").
OAuth finished in the browser but the account is still missing
Try reconnecting Outlook and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a OpenClaw Outlook integration?
Yes. ClawLink is the fastest way to connect OpenClaw to Outlook: link your Outlook account once in the browser and OpenClaw can call the Outlook API through 270 ready-made tools — no custom code or token handling.
How do I add Outlook to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Outlook skill from ClawHub, then you click Connect in the dashboard to authorize Outlook. OpenClaw calls the tools from the next message — no config files or API keys to manage.
How long does it take to connect Outlook to OpenClaw?
About two minutes. Sign in, click Connect next to Outlook in the dashboard, authenticate, and OpenClaw can use it from the next chat message.
Why use ClawLink instead of wiring Outlook up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Outlook working from chat.
Can I connect a personal @outlook.com or @hotmail.com account to OpenClaw?
Yes. ClawLink connects personal Microsoft accounts and work or school (Microsoft 365) accounts through the same hosted OAuth flow, and the consent screen shows the same reach either way: read and send mail, manage calendar and contacts, and mailbox settings. One tool is the exception. The Search messages tool refuses personal accounts — Microsoft's Search API is built for Microsoft 365 organizations, not for personal mailboxes — so agents on a personal account should use List messages or Query emails instead, which work on both account types.
Why does deleting or moving an Outlook message through OpenClaw require confirmation?
ClawLink gates destructive and write actions behind explicit confirmation. When the agent calls a tool like Delete message or Move message, the call returns a preview plus "requires explicit confirmation before execution" until you approve it. The approval is separate from Microsoft's own safety checks, and it applies to any action that permanently changes mailbox data, not just Outlook.
OpenClaw installed the Outlook skill but can't call the tools
The ClawHub skill teaches OpenClaw about Outlook, but the calls run through the ClawLink plugin and your connected account. Make sure Outlook is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.