How I Synced 5 Calendar Accounts in Under 10 Minutes Using MCP
Connect your MCP client to AllMyMeetings and manage every calendar through conversation. Here's exactly how it works.
Last week, one of our users needed to sync five calendar accounts — three Google, two Microsoft — into a single work calendar. The kind of setup that normally means opening a dashboard, clicking through forms, selecting source and destination calendars one pair at a time, and repeating until your eyes glaze over.
Instead, they connected their MCP client, had a short conversation, and walked away with four active sync pairs in under ten minutes. No forms. No dropdown menus. Just plain language.
Here is exactly how they did it, and how you can do the same thing.
The problem: calendars everywhere, sync nowhere
If you work across multiple organizations — or just have the usual pile of personal, work, side-project, and shared family calendars — you know the drill. Events live in different accounts. Nobody can see your full picture of availability. You double-book yourself because your work colleagues have no idea you have a dentist appointment on your personal Google Calendar at 2pm.
The fix is calendar sync. You set up sync pairs that push free/busy blocks from your various calendars into your main work calendar. We have written about how to sync Google Calendar with Outlook before, and that guide walks through the manual dashboard approach.
But what if you have four or five sync pairs to create? What if one of your accounts is not even connected yet? The manual approach works, but it is tedious. You end up clicking through the same flow repeatedly, and it feels like work that a computer should be doing for you.
That is where MCP calendar sync comes in.
What is MCP, and why does it matter here?
Model Context Protocol is an open standard that lets AI tools — like Claude Desktop, Cursor, or a Slack bot — connect to external services. Instead of just talking, the tool can actually do things: read your calendars, create sync pairs, generate OAuth links, clean up stale configurations.
We built an AllMyMeetings MCP server that exposes 19 tools for calendar management. Your MCP client discovers those tools automatically and uses them when you ask it to do something calendar-related.
The result: you describe what you want in plain English, and the MCP client handles the API calls behind the scenes.
What you need
Before you start, you need three things:
- An AllMyMeetings account. The free plan lets you read calendars and check availability. For creating and managing sync pairs, you need Pro or Business.
- An MCP-compatible client. Claude Desktop is the most common one. Cursor, Windsurf, and various Slack bots also support MCP. If your tool supports the Model Context Protocol, it will work.
- An API token from AllMyMeetings. This is how your MCP client authenticates. You generate it in the dashboard.
That is the full list. No plugins to install, no packages to download.
Step 1: Generate your API token
Log into AllMyMeetings and go to Settings > API. Click "Create Token," give it a name like "Claude Desktop" or "MCP Client," and copy the token that appears.
This token is your MCP client's credential. Treat it like a password — do not paste it into public channels or commit it to a repo.
One token per client is a good practice. If you use Claude Desktop on your laptop and a Slack bot at work, create separate tokens for each. You can revoke them individually if needed.
Step 2: Connect your MCP client
Every MCP client has a configuration file or settings panel where you add server connections. The details vary by client, but the core information is the same:
- Server endpoint: Your AllMyMeetings URL followed by
/mcp/calendar - Authentication: Bearer token (the API token you just created)
For Claude Desktop, you add this to your MCP configuration file. For Cursor, it goes in the MCP settings panel. The AllMyMeetings dashboard shows the endpoint URL on the Settings > API page for easy reference.
Once configured, restart your MCP client. It should discover the AllMyMeetings server and its 19 available tools automatically.
Step 3: Start talking
This is the part that feels like magic the first time. Here is the actual flow from a real setup session, condensed slightly for clarity.
"What calendars do I have?"
The user opened their MCP client and asked: "What calendar accounts do I have connected?"
The MCP client called the list-calendars tool and came back with a clean summary:
- [email protected] — Google (3 calendars)
- [email protected] — Google (9 calendars, 2 enabled)
- [email protected] — Microsoft (5 calendars)
- [email protected] — Microsoft (3 calendars)
- [email protected] — Google (3 calendars)
Five accounts, 23 calendars total. All laid out in a readable list without the user needing to open a single browser tab.
"Sync my main calendars into my work account"
The user then said: "I want all my main calendars and the Family calendar to sync into my work Outlook calendar."
The MCP client understood the intent but noticed a problem: the work account was not connected yet. Instead of failing or asking the user to go figure it out, the client called the initiate-calendar-connection tool and generated an OAuth authorization link for Microsoft.
The response was straightforward: "Your work account isn't connected yet. Here's a link to authorize your Microsoft account — click it, sign in, and come back when you're done."
Click, authorize, continue
The user clicked the link, signed into their work Microsoft account, granted the permissions, and came back to the conversation. The MCP client confirmed the connection was live and the work calendars were now visible.
No page refresh. No re-entering configuration. The conversation just continued where it left off.
Four sync pairs, created in seconds
With all accounts connected, the MCP client created four sync pairs:
- Personal Gmail (main) → Work Calendar (one-way, free/busy)
- Acme Corp Outlook (main) → Work Calendar (one-way, free/busy)
- Family (shared) → Work Calendar (one-way, free/busy)
- Side Project Google (primary) → Work Calendar (one-way, free/busy)
Each pair was created with a separate create-sync-pair call. The MCP client chose sensible defaults: one-way direction (source calendars push into the work calendar, not the reverse) and free/busy mode (colleagues see time blocks, not event details).
Cleaning up old sync pairs
The user also had an old sync pair that was no longer active. The MCP client identified it, confirmed with the user, and deleted it.
Total time from first message to finished setup: about eight minutes. Most of that was the OAuth sign-in flow.
What happened behind the scenes
If you are curious about the mechanics, here is what the MCP client actually did:
list-calendars— Retrieved all connected accounts and their calendarsinitiate-calendar-connection(provider: microsoft) — Generated the OAuth URL for the work accountget-calendar-connection-status— Confirmed the work account connected successfullycreate-sync-pair(x4) — Created each source-to-destination pair with one-way free/busy settingslist-sync-pairs— Retrieved all existing pairs to find the stale onedelete-sync-pair— Removed the old pair
Six distinct operations, all triggered by a natural conversation. The Model Context Protocol handled the translation from "sync my stuff into my work calendar" to the precise API calls needed to make it happen.
Privacy by default
One detail worth highlighting: every sync pair was created in free/busy mode.
When your Personal Gmail syncs into your work calendar, your colleagues see a block that says "Busy" from 2:00 to 3:00. They do not see "Dentist — Dr. Martinez" or "House viewing with realtor" or "Family dinner planning."
Your personal life stays personal. Your work calendar just knows you are unavailable. That is the same approach we recommend in our guide on how to stop double-booking across calendars.
If you need full event details to sync (for example, between two calendars you own), you can ask the MCP client to change the sync mode. But for cross-account sync into a work calendar, free/busy is almost always the right call.
What else can you do with MCP?
Creating sync pairs is the headline use case, but the AllMyMeetings MCP server exposes 19 tools. Here are a few other things you can do through conversation:
- Check availability across all calendars. Ask "Am I free Thursday afternoon?" and get an answer that accounts for every connected calendar.
- Create events. Say "Add a 30-minute standup at 9am tomorrow on my work calendar" and it happens.
- Generate scheduling links. Ask for a booking link that checks your real availability across all synced calendars before showing open slots.
- Check for conflicts. Ask "Do I have any conflicts next week?" and get a list of overlapping events across all accounts.
- Manage connections. Connect new accounts, disconnect old ones, or check the status of existing connections — all through conversation.
Get started
- Sign up for an AllMyMeetings account if you do not have one.
- Go to Settings > API and generate a token.
- Add the MCP server to your client's configuration using the endpoint and token.
- Start talking. Ask what calendars you have, tell it what you want synced, and let it handle the rest.
If you want the technical details on the MCP server itself — available tools, authentication, and configuration examples — read the full AllMyMeetings MCP server post.
Five accounts. Twenty-three calendars. Four sync pairs. One conversation. Under ten minutes.
AllMyMeetings syncs Google Calendar, Outlook, and iCloud in real time. The MCP server is available now on all plans. Get started free.
Ready to sync your calendars?
allmymeetings keeps Google, Outlook, and iCloud calendars in sync automatically. Set up in under two minutes.
Get started for free