BUG: gcal_list_events MCP tool ignores start_time/end_time parameters, returns all events chronologically
Summary
The built-in mcp__claude_ai_Google_Calendar__gcal_list_events tool does not apply start_time/end_time filtering. It returns all calendar events starting from the oldest regardless of the date range specified.
Steps to Reproduce
- Call
gcal_list_eventswithstart_timeandend_timeset to today's date range - Observe that returned events are from 2016–2017 (oldest events in the calendar), not today
Expected Behavior
Events filtered to the specified start_time/end_time range should be returned.
Actual Behavior
- All events are returned in ascending chronological order starting from the oldest event in the calendar
- The
nextPageTokenin the response is always identical across multiple calls with different date parameters, confirming the filter is being ignored entirely - Tested with both JST format (
2026-03-30T00:00:00+09:00) and UTC format (2026-03-29T15:00:00Z) — same result each time
Root Cause Hypothesis
The start_time/end_time parameters accepted by the MCP tool wrapper are likely not being passed to the underlying Google Calendar API v3 events.list endpoint as timeMin/timeMax. Additionally, singleEvents=true may not be set, which is required for date filtering to work correctly per the Google Calendar API spec.
Evidence: gcal_find_my_free_time error message reveals the underlying API uses timeMin/timeMax parameter names, confirming a mismatch with the MCP tool's start_time/end_time naming.
Environment
- Claude Code version: current (as of 2026-03-30)
- MCP:
mcp__claude_ai_Google_Calendar(claude.ai built-in connector) - Calendar: Google Calendar (primary)
Workaround
None available within the built-in connector. Switching to a third-party MCP such as nspady/google-calendar-mcp is a possible workaround.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗