batch-operationstutorialproductivitygoogle-calendar

How to Batch Update Google Calendar Events with AI

Renaming a recurring meeting, moving a whole week of events, or marking everything tentative? Here is how to do it in one prompt instead of fifty clicks.

Sarah Chen
Developer Relations, CalendarMCP ·

Renaming a recurring meeting. Moving a whole week of events because you got sick. Marking thirty interviews tentative until your team confirms availability. These are the calendar tasks that punish you for owning a mouse.

With CalendarMCP and an AI client like Claude, you do them in a single prompt. Here is how it actually works, what to watch out for, and the prompts that make it boring.

Why batch matters

Google Calendar's UI was built for individual edits. That is fine when you are adding a coffee. It falls apart when you have to reschedule fifteen meetings at once. The Google Calendar API supports bulk operations, but most MCP servers do not expose them. CalendarMCP does, with a tool called batch_update that lets a single call modify up to fifty events.

Combined with an LLM that can plan and rephrase, that is enough to clear a category of work most people do by hand.

Three real examples

1. Rename a recurring series

"Find every event titled 'Eng Sync' for the next 90 days. Rename them to 'Engineering Standup' and add a Google Meet link if missing."

The assistant uses list_events with a title filter, gets the matching event IDs, and passes them all into batch_update. Eighteen meetings, one tool call, no scrolling.

2. Shift a busy week

"I caught the flu. Push every meeting from May 6 to May 8 forward by one week. Send a short note to attendees explaining."

Roughly twelve events get a new start time, the same duration, the same attendees, and a polite description update. The assistant should confirm the count before it acts (and in our recommended system prompt, it will).

3. Mass cleanup

"Mark every interview on my calendar as tentative. I haven't confirmed any of them with the candidates yet."

Filters by event title containing "Interview" and sets the response status to tentative across the lot. Good for hiring weeks where the schedule is fluid.

The mechanics

Under the hood, the flow looks like this:

  1. The assistant calls list_events with whatever filter matches the prompt (date range, title contains, calendar id).
  2. It builds an array of update payloads: { id, fields: { ... } } for each event.
  3. It calls batch_update once with up to fifty payloads.
  4. It returns a per-event success/error map you can read out loud.

The whole batch goes through Google's server-side batch endpoint. It is one HTTP call from your machine's perspective and Google handles the fan-out internally. You do not get rate-limited by your own client.

What you can change in a batch

  • Title, description, location
  • Start and end times (including timezone)
  • All-day vs timed
  • Attendees (add, remove, change response status)
  • Reminders
  • Visibility (default, private, public)
  • Color
  • Conferencing (Meet, Zoom link, dial-in)

Recurring events are tricky: if you change the start time on one occurrence, that is a single edit, not a series edit. Tell the assistant which mode you want or it may guess.

The prompts that actually work

Vague prompts break batch flows because the assistant has to guess about scope. These tend to work:

  • "All events titled X this week" — bounded, easy to verify.
  • "All meetings between date A and date B" — unambiguous range.
  • "All events on calendar Work where attendee includes mark@…" — multi-condition filter, the assistant should describe the count before acting.

These tend to misfire:

  • "Move my meetings around" — no scope.
  • "Cancel everything" — technically possible, almost never what you mean.
  • "Push the team thing" — pronouns fail across batches.

Guardrails

Same rule we recommend for the AI executive assistant flow: any batch operation that touches more than three events should require confirmation. CalendarMCP makes it easy by returning a count before the action and letting the assistant pause. Bake it into your system prompt and stop worrying about typos turning into thirty cancellations.

When batch is overkill

For 1 to 3 events, batch is just complexity. Use update_event directly. The threshold where batch wins is somewhere around the fourth or fifth edit, where the round-trip latency of individual updates becomes annoying.

For 4 to 50 events, batch is the right tool. For over 50, the assistant should chunk into multiple batch calls automatically.

Wrap-up

Batch update is the kind of feature you do not realise you need until you do it once. After that, the idea of clicking through fifteen events to make the same edit feels archaic. The combination of a planning LLM and a real batch endpoint is what makes calendar automation actually save you time, not just sound good in a demo.

Connect Google Calendar to CalendarMCP, plug it into Claude, and try the rename example above on a recurring meeting you keep meaning to fix. Two minutes from now you will have one less paper cut.

Ready to get started?

Connect your Google Calendar to Claude and any MCP client in about two minutes.

Connect Google Calendar