Skip to main content
Glama

Calendar Search Events

calendar_search_events
Read-onlyIdempotent

Search a Google Calendar for events in a time window using presets or explicit start/end times. Returns compact event details, count, and pagination for scheduling and availability checks.

Instructions

Find events on one calendar in a time window, given as a range_preset or explicit time_min/time_max. For the user's upcoming week plus pending invitations use calendar_get_calendar_digest, and for full details of known events use calendar_read_events. Returns compact events (id, title, start and end in the account time zone, all_day, status, organizer, my_response, requires_response, meeting_url, location, is_recurring, updated_at), count, next_page_token, account_timezone and the effective_time_min/effective_time_max that were applied.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "calendar_search_events"
  }
}

Input Schema

NameRequiredDescriptionDefault
order_byNo'startTime' sorts by start (applied only when single_events is true; otherwise no order is requested) or 'updated' sorts by last modification time.startTime
time_maxNoRFC3339 time with offset, e.g. '2026-03-08T00:00:00Z'; returns events that start before it. Overrides the end of range_preset.
time_minNoRFC3339 time with offset, e.g. '2026-03-01T00:00:00Z'; returns events that end after it. Overrides the start of range_preset; with no time_min, time_max or range_preset the list is unbounded and starts at the calendar's oldest events.
page_tokenNoThe next_page_token from the previous response of this same call; omit for the first page. Keep every other argument the same; range_preset 'next_7_days' moves with the clock, so page with the effective_time_min/effective_time_max of the first response.
calendar_idNoCalendar ID: 'primary' for the user's main calendar, or an ID from calendar_get_calendar_context's calendars (often an email address).primary
max_resultsNoMaximum events per page, 1 to 2500; next_page_token continues the list.
range_presetNoWindow in the account's time zone: 'today' or 'tomorrow' (midnight to midnight), 'this_week' (Monday 00:00 for 7 days) or 'next_7_days' (from now). Fills only the bound that time_min or time_max leaves unset.
single_eventsNoTrue expands recurring events into their individual occurrences (instance IDs). False returns each series once, as its master event.

Output Schema

NameRequiredDescriptionDefault
countNoNumber of items in this response.
eventsNo
has_moreNoWhether another page is available.
fetched_atNoRFC3339 time when this response was fetched.
range_presetNo
next_page_tokenNoOpaque token for the next page, or null.
account_timezoneNo
effective_time_maxNo
effective_time_minNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral context by saying it returns compact events, count, next_page_token, account_timezone, and the effective time bounds that were applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and organized around purpose, alternatives, and return shape. The return-field list is somewhat long and partly duplicates the output schema, but it remains readable and useful as a quick summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the annotations, the output schema, and 100% parameter coverage, the description is complete enough for correct invocation. It covers scope, alternatives, time-window semantics, pagination, and return shape without leaving material gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains all eight parameters in detail, including precedence and pagination behavior. The description adds only high-level meaning about the time window and presets, which is sufficient but not substantially beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: find events on one calendar within a time window using either range_preset or explicit time_min/time_max. It also clearly distinguishes this search behavior from calendar_get_calendar_digest and calendar_read_events, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names two alternatives and the conditions that select them: use calendar_get_calendar_digest for the upcoming week plus pending invitations, and calendar_read_events for full details of known events. This is exactly the routing guidance needed for a search/list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.