Skip to main content
Glama

calendar_get_free_busy

Read-onlyIdempotent

Query colleagues' schedules to find available meeting times. Returns full event details when permitted, otherwise free/busy slots.

Instructions

Query colleagues' schedules for a time range. For each email, tries to fetch full event details (title, time, status) when the authenticated user has calendar access; falls back to free/busy slots only when access is unavailable. Use this for meeting scheduling. Returns one entry per email: {email, source: 'events', events: [{id, title, start_time, end_time, status, all_day}]} (up to 50 events), or {email, source: 'free_busy', busy: [{start, end}]}, or {email, source: 'error', error}; the user's privacy settings may reduce 'events' to busy slots. Use calendar_list_events instead for the user's own calendar. Auto-approved.

Input Schema

NameRequiredDescriptionDefault
emailsYesComma-separated email addresses of the people (or room resource emails) to check, e.g. 'a@example.com,b@example.com'.
reasonYesOne sentence: why are you calling this tool right now?
time_maxYesEnd of the range, same RFC 3339 format as time_min. Required.
time_minYesStart of the range as an RFC 3339 timestamp with an offset, e.g. '2026-10-15T09:00:00+02:00'. Required; a bare date is not accepted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / emails / description
      Previous value: -"Comma-separated list of email addresses"New value: +"Comma-separated email addresses of the people (or room resource emails) to check, e.g. 'a@example.com,b@example.com'."
    • changedInput schema / properties / time_max / description
      Previous value: -"ISO 8601 datetime"New value: +"End of the range, same RFC 3339 format as time_min. Required."
    • changedInput schema / properties / time_min / description
      Previous value: -"ISO 8601 datetime"New value: +"Start of the range as an RFC 3339 timestamp with an offset, e.g. '2026-10-15T09:00:00+02:00'. Required; a bare date is not accepted."
  2. First observedv5.3.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses the events-vs-free_busy fallback when access is unavailable, the privacy-settings degradation that can reduce events to busy slots, the 50-event cap, and that calls are auto-approved. This is unusually rich behavioral context.

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?

Front-loads purpose and fallback logic, then the routing hint, then return shapes. Dense but each part earns its place; the return-shape enumeration is slightly heavy but justified given no output schema exists.

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?

For a read-only tool with no output schema, the description fully specifies the three possible return shapes (events, free_busy, error), the 50-event cap, and privacy degradation. Nothing needed to call or interpret it correctly is missing.

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 all four params (emails, time_min, time_max, reason) are already documented in the schema. The description adds no extra syntax or format guidance beyond the return-shape context, so the baseline 3 applies.

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?

States a specific verb and resource ('Query colleagues' schedules for a time range') and explicitly scopes it to other people's calendars rather than the user's own. It names the sibling it is not (calendar_list_events) so an agent can distinguish them without opening schemas.

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?

Gives explicit use context ('Use this for meeting scheduling') and a named alternative with the selection condition ('Use calendar_list_events instead for the user's own calendar'). Both when-to-use and when-to-use-something-else are covered.

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

Deploy Server

Other Tools