Google Calendar treats the end date as exclusive. Work through concrete one-day and multi-day agent inputs without timezone shifts.
For a one-day event on November 5, send start: {date: "2026-11-05"} and end: {date: "2026-11-06"}. Google Calendar's end is exclusive: November 6 marks where the event stops, not a second day displayed as busy.
Google's Events resource reference defines the end as exclusive. Its creation guide uses start.date and end.date for all-day events, versus dateTime for timed meetings. These examples illustrate the API shape; they are not customer meetings or a live product test.
CalendarMCP's create_event accepts both shapes and checks that start and end use the same kind. Its update_event describes the all-day end as exclusive; when changing both boundaries, supply matchingdateobjects. Don't convert a date-only vacation day into a midnight UTC timestamp to "fix" its end. A timezone conversion can move the visible day for someone west of UTC.
Before writing, ask which dates are actually included and whether the event is meant to block availability. Then read it back with get_event: the formatted start and end strings should match your proposed boundaries. This boundary rule also applies to hotel stays; the travel guide covers the broader trip workflow. If you need to connect an agent first, the live homepage's Connect Google Calendar action starts OAuth, not a guaranteed completed setup.
Connect your Google Calendar to Claude and any MCP client in about two minutes.
Connect Google Calendar