How to Connect Codex to Outlook Calendar (Plugin + MCP)
Codex has a first-party Outlook Calendar plugin. Install it, connect a Microsoft account, and Codex reads your day, compares availability, and creates, reschedules, or cancels events from the terminal. It is a real scheduling tool, not a stub. What it cannot do is see past your tenant’s free/busy, hold more than one Microsoft identity, or start anything before you type. Carly covers all three, and registers with one line.
What the Outlook Calendar plugin covers
The plugin is called Outlook Calendar, it is published by OpenAI, and its manifest reads: “Connect Outlook Calendar for scheduling, daily briefs, event prep, and safe meeting changes.” It sits in the OpenAI-curated marketplace under Productivity, beside a separate Outlook Email plugin, plus Teams, SharePoint, Google Calendar, Gmail, and Slack.
Worth knowing where that list lives. OpenAI’s plugin documentation uses Gmail, Google Drive, Slack, and Codex Security as its worked examples and never mentions Outlook, so a reader who checks only the prose concludes there is no Microsoft route. The marketplace is the authority: run codex plugin list and outlook-calendar is there at version 0.1.3, marked AVAILABLE with authentication on install.
OpenAI's app directory became a plugin directory on July 9, 2026, shared between ChatGPT and Codex. Plugins are packages that can carry apps, skills, or app templates — a repackaging of how things are listed and discovered, not a change to the MCP plumbing underneath.
The plugin ships six skills rather than a bare tool list: a daily brief, a focus-time skill that moves meetings to open a block, a group scheduler, meeting prep, shared and delegated calendars, and a base skill covering RSVPs, recurring series, reminders, and travel-aware planning. Underneath are genuine writes. It calls get_schedule for attendee and room free/busy, find_available_slots against your own calendar, and create_event once a slot is settled, and it reads Outlook status semantics properly, treating Busy and Out of Office as harder constraints than Tentative or Working Elsewhere.
Installing it
In the Codex CLI, enter /plugins to open the plugin browser, install Outlook Calendar from the OpenAI tab, and connect the Microsoft account when prompted. The ChatGPT desktop app carries the same directory under its Plugins tab.
Then start a new session. OpenAI’s docs are explicit that bundled skills and tools become available when you start a new chat or CLI session after installation, so the session you installed from will not see them.
One surface never gets it. “Plugins aren’t available in the IDE extension,” per the same page, so a plugin browser is not something to go looking for in VS Code.
Where the plugin stops
Three walls, in the order people hit them.
It only sees the free/busy your tenant exposes. Group scheduling is genuinely good when everyone is inside your Microsoft 365 organization. A client at another company shows as nothing, and the plugin’s own guidance is to say so rather than guess. At that point the meeting is an email negotiation, and the calendar tool is not the thing holding it.
One Microsoft identity. The plugin authorizes the signed-in user. Delegated and shared calendars are reachable through a separate set of actions, but a second personal or company account of your own is not something you add beside the first. OpenAI’s tracker carries the open request support multiple named accounts per app/connector, which notes that “the app/connector model appears oriented around one active connection per provider.”
Nothing begins on its own. Codex acts when you type. A meeting request arriving overnight, a hold that should convert once the last attendee replies, a reschedule triggered by a cancellation: none of that starts by itself.
Reach every calendar: register Carly as an MCP server
Carly holds Outlook and Google calendars on its side and exposes all of them to Codex through one MCP server. One config entry, unlimited connected calendars, both providers.
- Sign in at carlyassistant.com.
- Open carlyassistant.com/integrations, find Outlook or Google Calendar, and click Connect.
- Authorize the first account and confirm the calendar Carly shows.
- Return to the integrations page and connect the next identity. Choose Use another account if Microsoft preselects your previous login.
If a Microsoft 365 or Google Workspace account needs administrator review, ask that administrator to approve; each tenant decides independently.
Then register the server. The CLI route is one line:
codex mcp add carly --url https://carlyassistant.com/mcp/
Servers added this way land in ~/.codex/config.toml at user scope. The hand-written equivalent:
[mcp_servers.carly]
url = "https://carlyassistant.com/mcp/"
A trusted project can carry its own .codex/config.toml if you would rather scope the server to one repository than to the whole machine. Then authenticate:
codex mcp login carly
That opens the browser OAuth flow. Sign in to the Carly workspace holding your calendars, then run codex mcp list to confirm the server is live. Codex supports OAuth against remote HTTP MCP servers, including Client ID Metadata Documents and Dynamic Client Registration, so no secret has to sit in a config file.
Start a fresh session before you go looking for the tools. Codex spawns its MCP servers once at session start and never revisits them while the session runs.
MCP configuration is shared across the ChatGPT desktop app, the Codex CLI, and the IDE extension, which is the surface the plugin route never reaches at all.
Naming the calendar in a prompt
State the account and the calendar before anything that writes:
Treat
marcus@twilio.comas Main Company andmarcus@outlook.comas Personal. Name the target account before creating, moving, or cancelling anything.
Check Main Company for 45 minutes with Priya and Sam next week, afternoons, and rank three options. Do not book yet.
Keep approvals on while you are testing. An agent with cancel rights on a shared calendar deserves a confirmation step.
Outlook Calendar plugin and Carly, side by side
| Outlook Calendar plugin | Carly | |
|---|---|---|
| Microsoft accounts at once | One signed-in identity | Every one you connect |
| Google Calendar alongside it | Separate plugin, one account | Yes, unlimited connected calendars |
| Reads schedule and free/busy | Yes, inside your tenant | Yes |
| Creates, moves, cancels events | Yes | Yes |
| Runs the email back-and-forth with attendees | No | Yes |
| Booking pages and availability polls | No | Yes, unlimited booking pages |
| Works in the IDE extension | No | Yes, over MCP |
| Starts when a request arrives | No | Yes |
| Works with no session open | No | Yes |
The half that never starts with a prompt
Wiring Carly into Codex closes the account problem. It does not, by itself, close the bigger one.
There is no such thing as an MCP trigger. The protocol's own working group states plainly that clients find out about server-side changes by polling for them, and a real event mechanism remains unshipped.
The unattended-work gap closed when ChatGPT and Claude Cowork added scheduled runs. Their standard schedulers still start from the clock, not arbitrary events in connected apps; API-triggered ChatGPT Workspace Agents require an external event detector and caller.
Carly’s own side is where that gap closes. Its workflows fire on events and schedules rather than on you typing, so a meeting request landing in Outlook is enough to start the whole sequence: check real availability across every connected calendar, propose times, resolve time zones, reply, book, and send the invite. Each agent carries its own name, email address, and memory, so a client can write to one directly and can be CC’d on the thread while it negotiates.
Around the calendar sit 260+ native integrations plus your own API key for anything else with a public API. Carly offers free Zapier-style workflows; AI agents start at $35/month.
Connect every calendar at carlyassistant.com.
Quick fixes when the calendar does not respond
| Problem | Fix |
|---|---|
| The plugin browser is missing | You are in the IDE extension; use the Codex CLI or the ChatGPT desktop app |
| No tools in the session | Start a new session after installing a plugin or adding a server |
| An attendee shows as fully free | Free/busy is not visible outside your tenant; confirm by email instead |
codex mcp login never completes | Finish the browser OAuth flow, then rerun codex mcp list |
| Microsoft reused your signed-in account | Choose Use another account rather than the suggested profile |
| A work account stalls at consent | Ask that Microsoft 365 administrator to approve |
| The event landed on the wrong calendar | Name the account and calendar explicitly before any write |
| A shared calendar write fails | Delegated calendars use the separate shared-calendar actions |
Frequently Asked Questions
Does OpenAI Codex integrate with Outlook Calendar?
Yes. A first-party Outlook Calendar plugin published by OpenAI lives in the catalog that ChatGPT and Codex share, installable from the Codex CLI plugin browser or the ChatGPT desktop app. It reads your schedule, compares attendee free/busy, and creates, reschedules, responds to, and cancels events. It holds one signed-in Microsoft identity and is not available in the IDE extension.
Can Codex schedule meetings in Outlook for me?
It can rank candidate slots and create the event once you settle on one, which covers internal meetings well. It does not run the email negotiation with people outside your tenant, and it starts nothing without a prompt. For scheduling handled end to end, see Carly and can ChatGPT schedule meetings?.
Can Codex reach two Outlook calendars?
Not through the plugin, which authorizes one Microsoft identity at a time; delegated and shared calendars use a separate set of actions. Connect both accounts to Carly and register one MCP server, and a single Codex session can read or book in whichever calendar you name.
How do I connect Codex to Outlook Calendar?
Enter /plugins in the Codex CLI, install Outlook Calendar from the OpenAI tab, authorize the Microsoft account, and start a new session. To reach several calendars at once, connect them at carlyassistant.com/integrations and run codex mcp add carly --url https://carlyassistant.com/mcp/ followed by codex mcp login carly.
Should I run scheduling inside Codex?
Codex is a coding agent, so calendar work there suits a quick check while you build: what is on the afternoon, when is the next open hour, move the standup. Coordinating a meeting with people who cannot see your calendar, and having it happen with nothing open, belongs in a Carly workflow.
More: Codex + Google Calendar · Codex + Outlook · Codex MCP servers · Codex + Slack · Can ChatGPT schedule meetings? · Best AI meeting schedulers · Carly’s Outlook integration
Ready to automate your busywork?
Carly schedules, researches, and briefs you—so you can focus on what matters.
See what people say
"Before Carly, I relied on a Calendly link, but the whole process felt impersonal and not very professional. Carly changed that by handling all the back-and-forth, so I'm no longer stuck in endless email threads trying to line up schedules.
Now Carly reaches out to candidates, shares my real-time availability, lets them pick a slot, then sends a Zoom link and drops it straight into my calendar. She sends reminders to both of us before each call, which has significantly reduced no-shows and last-minute confusion.
On top of scheduling, Carly acts like a full executive assistant, sending me my schedule the night before so I can prepare for each call. It reminds me of the old x.ai assistant, but Carly is noticeably smarter, faster, and better suited to my healthcare recruitment business."


