Several Outlook calendars reaching OpenAI Codex through a single MCP server

How to Connect Multiple Outlook Calendars to Codex

Codex has no first-party Outlook connector, which turns out to be an advantage here. Because calendar access arrives through whichever MCP server you register, the one-identity ceiling that stops the built-in connectors in other assistants is not something Codex imposes. Two tenants is a configuration problem, not a wall. Carly holds your Google calendars and every mailbox on both sides in the same place, so this setup covers the rest of what you own.

Codex is a coding agent, so the honest framing stays the same: this is for a developer who wants schedule context in a terminal. Recurring scheduling belongs in a workflow that runs without a session open.

Shared mailbox or separate identity?

Sort this first, because it decides whether you need any of this.

What you haveWhat it needs
Several calendars in one Microsoft 365 accountNothing special, one authorization covers them
A shared or delegated calendar your account can already openUsually the primary identity’s existing access
A second Microsoft 365 loginA separate authorization
Accounts in two tenantsA separate authorization per tenant

Rows three and four are the reason for the rest of this guide. A guest account in a client tenant counts as a separate identity even though it lives in the same Outlook app on your laptop.

Why one MCP server beats one per tenant

The common approach is a third-party MCP provider such as Composio, Merge, or Nylas, one server per account. Three tenants means three server entries, three OAuth apps to maintain, and nothing in the prompt vocabulary that distinguishes them, so the agent picks whichever loaded first.

Carly inverts that. Each Microsoft identity is authorized once inside Carly, and Codex sees a single server that addresses any of them by email address. Adding a fourth tenant changes nothing in config.toml.

1. Label each calendar by tenant

All addresses below are fictional.

AddressRole
fictional.dana.whitfield@pepsi.comMain Company
fictional.dana.whitfield@ford.comConsulting
fictional.dana.whitfield@outlook.comPersonal

Use the role in ordinary queries and the full address before anything that writes.

2. Connect every Microsoft identity to Carly

  1. Sign in at carlyassistant.com.
  2. Open carlyassistant.com/integrations.
  3. Find Outlook and click Connect.
  4. Sign in with the first Microsoft 365 identity and approve access.
  5. Confirm the connected address in Carly.

Repeat for every additional tenant, choosing Use another account if Microsoft preselects the first login. Verify the full address after each authorization.

If Microsoft displays Need admin approval, that tenant’s Entra administrator approves the connection. On a client tenant you do not control, start this early rather than at the end.

Unlimited connected emails and calendars are included on the $35/month plan, so the third and fourth tenant cost nothing extra.

3. Register Carly as an MCP server

codex mcp add carly --url https://carlyassistant.com/mcp/

Servers added this way land in ~/.codex/config.toml at user scope. The manual entry is 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.

Then authenticate:

codex mcp login carly

Complete the OAuth flow in the browser, signing in to the Carly workspace holding the calendars. Codex supports OAuth and bearer-token auth against remote HTTP MCP servers, so nothing goes into the config file as a secret.

Confirm it is live:

codex mcp list

4. Test each calendar read-only

Start a new session so the tools load, then take one tenant per prompt:

On fictional.dana.whitfield@pepsi.com, list this week’s meetings with times and organizers. Do not change anything.

On fictional.dana.whitfield@ford.com, show everything booked in the next five days. Read only.

Then the cross-tenant question:

Compare both work calendars for next week and list every conflict, showing the source account for each meeting.

If the tools are missing, start a fresh session. Codex loads a newly installed server’s tools at session start, not mid-session.

5. Reuse this routing prompt

Treat fictional.dana.whitfield@pepsi.com as Main Company, fictional.dana.whitfield@ford.com as Consulting, and fictional.dana.whitfield@outlook.com as Personal. When finding a time, check all three for conflicts. Always state the target calendar before creating, moving, or cancelling. Never write to a calendar I have not named.

Then name the target per action:

Find sixty minutes next week free on all three and book it on Main Company.

Move the Thursday Consulting review to the first open slot the following week.

Keep approvals on while testing. A coding agent holding write scopes on two employers’ calendars is worth a confirmation step.

Third-party Outlook MCP versus Carly in Codex

NeedPer-tenant MCP serverCarly MCP server
Reach one calendarYesYes
Reach several tenantsOne server per tenantOne server, all tenants
Address a specific account in a promptNo shared conventionYes, by email address
Find a time free across every accountNoYes
Manage your own OAuth app and scopesOften requiredNo
Add a fourth tenant laterNew server entryNo config change
Keep the work running outside CodexNoYes

Free Zapier-style workflows; AI agents from $35/month. Connect it on the integrations page, or start with Outlook.

Quick fixes

ProblemFix
Tools do not show upStart a new Codex session after adding the server
codex mcp login never completesFinish the browser OAuth flow, then rerun codex mcp list
Microsoft reopens the first accountChoose Use another account and reconnect
Microsoft shows Need admin approvalAsk that tenant’s Entra administrator to approve Carly
A shared calendar is missingConfirm the primary identity can open it in Outlook
Events land on the wrong calendarUse the full address and require confirmation before writes

Frequently asked questions

Does Codex have a native Outlook Calendar integration?

No. Codex reaches Outlook through the Model Context Protocol rather than a built-in connector, so what it can do depends on which MCP server you register.

How many Outlook calendars can this reach?

As many as you authorize in Carly. Codex connects to one server, so the tenant count is a Carly setting rather than a Codex one.

Is a shared calendar a second account?

No. A shared or delegated calendar relies on access already granted to a primary identity. Only a separate login or tenant needs its own authorization.

Can Codex find a time that works across two employers’ calendars?

Through a server that holds both, yes. Per-tenant servers cannot, because nothing in the setup lets one query span them.


Related: Codex + Outlook Calendar · Multiple Google Calendars in Codex · Multiple Outlook accounts in Codex · Multiple Outlook calendars in Claude · Best AI assistants for multiple calendars

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."

Gus Ibrahim, Founder & Director, IHR