How to Connect Multiple Google Calendars to Codex
Codex has no first-party calendar connector, so this is entirely a question of which MCP server you point it at. That is good news, because it means the multi-account limit that blocks the built-in connectors elsewhere is not baked in here. It is a configuration decision. Carly holds your Outlook calendars and every mailbox on both sides in the same place, so this setup covers the rest of what you own.
Worth saying plainly first: Codex is a coding agent. If what you want is a worked calendar rather than a calendar reachable from a terminal, the setup below still applies, but the scheduling belongs in a workflow rather than a coding session.
Several calendars in one account is not the hard part
Most Google Calendar setups are several calendars under a single login: your main calendar, a side project, a family calendar, a subscribed team calendar. Those all belong to one Google identity and any calendar tool reaches them together.
The hard version is two Google accounts. A personal @gmail.com calendar plus a work Workspace calendar, or your own Workspace plus a client’s. Sort which one you have before configuring anything, because the answers are completely different.
Why one MCP server beats one per account
The usual advice is to wire calendar access into Codex through a third-party MCP provider such as Composio, Merge, or Nylas. That works for one account. For three it means three server entries, three OAuth apps to maintain, and no shared vocabulary for saying which calendar you mean.
Carly inverts that. Each Google identity is authorized once inside Carly, and Codex sees a single server that can address any of them by email address. Adding a fourth account changes nothing in config.toml.
1. Sort your calendars
All addresses below are fictional.
| Calendar | Google account | Role |
|---|---|---|
| Main work calendar | fictional.arun.mehta@stripe.com | Main Company |
| Team calendar | fictional.arun.mehta@stripe.com | Same account |
| Personal calendar | fictional.arun.mehta@gmail.com | Personal |
| Client calendar | fictional.arun.mehta@shopify.com | Client |
Use the role in ordinary queries and the full address before anything that writes.
2. Connect every Google account to Carly
- Sign in at carlyassistant.com.
- Open carlyassistant.com/integrations.
- Find Google Calendar and click Connect.
- Choose the first Google account and approve access.
- Confirm the connected address in Carly.
Repeat for each additional identity, choosing Use another account if Google preselects the first login. Verify the full address after every authorization before adding the next.
If a Google Workspace account requires administrator review, ask that Workspace administrator to approve the connection. Each Workspace approves independently.
Unlimited connected emails and calendars are included on the $35/month plan, so a third and fourth calendar cost nothing extra.
3. Register Carly as an MCP server
The CLI route is the shortest:
codex mcp add carly --url https://carlyassistant.com/mcp/
Servers added this way land in ~/.codex/config.toml at user scope. You can also write the entry by hand:
[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 your whole machine.
Then authenticate:
codex mcp login carly
That opens a browser for the OAuth flow. Sign in to the Carly workspace holding the calendars. Codex supports OAuth and bearer-token auth against remote HTTP MCP servers, so there is no API key to paste into a config file.
Confirm the server is live:
codex mcp list
4. Test each calendar read-only
Start a new session so the tools load, then take one account per prompt:
On the Main Company calendar, list this week’s events with times and attendees. Do not change anything.
On
fictional.arun.mehta@gmail.com, show everything booked in the next five days. Read only.
Then the cross-account question that was the point of the setup:
Compare the Main Company and Personal calendars for next week and list every conflict, showing the source account for each event.
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.arun.mehta@stripe.comas Main Company,fictional.arun.mehta@gmail.comas Personal, andfictional.arun.mehta@shopify.comas Client. When finding a time, check all three for conflicts. Always state the target calendar before creating, moving, or cancelling an event. Never write to a calendar I have not named.
Then name the target per action:
Find ninety minutes next week free on all three calendars and book it on Main Company.
Move the Friday review on the Client calendar to the first open slot the following week.
That first instruction is the whole reason for the configuration. Finding a time free across every calendar you actually keep is the request people most want and most often get wrong, because the tool can see one of them.
Keep approvals on while testing. A coding agent with write scopes on three calendars is worth a confirmation step.
Third-party calendar MCP versus Carly in Codex
| Need | Per-account MCP server | Carly MCP server |
|---|---|---|
| Reach one calendar | Yes | Yes |
| Reach several accounts | One server per account | One server, all accounts |
| Address a specific account in a prompt | No shared convention | Yes, by email address |
| Find a time free across every account | No | Yes |
| Manage your own OAuth app and scopes | Often required | No |
| Add a fourth account later | New server entry | No config change |
| Keep the work running outside Codex | No | Yes |
Carly gives Codex one account-aware calendar toolset instead of a stack of per-account servers. Free Zapier-style workflows; AI agents from $35/month.
Quick fixes
| Problem | Fix |
|---|---|
| Tools do not show up | Start a new Codex session after adding the server |
codex mcp login never completes | Finish the browser OAuth flow, then rerun codex mcp list |
| The same Google account connected twice | Remove the duplicate and reconnect with Use another account |
| A Workspace blocks authorization | Ask that Workspace administrator to approve Carly |
| Events land on the wrong calendar | Use the full address and require confirmation before writes |
Frequently asked questions
Does Codex have a native Google Calendar integration?
No. Codex reaches calendars through the Model Context Protocol rather than a built-in connector, so the capability depends entirely on which MCP server you register.
How many Google Calendars can this reach?
As many as you authorize in Carly. Codex connects to one server, so the account count is a Carly setting rather than a Codex one.
Can Codex book meetings with attendees?
It can create events through whichever server you connect. Negotiating times with attendees, handling time zones, and sending the invite is assistant work rather than something a coding agent is shaped for.
Should I use Codex for scheduling?
For scripted or one-off calendar work from a terminal, it is a reasonable fit. Recurring scheduling belongs in a workflow that runs without a session open.
Related: Codex + Google Calendar · Multiple Outlook calendars in Codex · Multiple Gmail accounts in Codex · Multiple Google 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."


