Skip to main content
Glama

Find free time

calendar_find_free_time
Read-onlyIdempotent

Find open time slots that are free on every selected Google Calendar within working hours, avoiding double-bookings by returning no slots if any calendar cannot be read.

Instructions

Find gaps that are free on EVERY account asked about, within working hours. "time_min" and "time_max" must carry an explicit UTC offset. Working hours are interpreted in "timezone" (IANA), which defaults to the zone this server runs in and is always echoed back. IMPORTANT: if any calendar cannot be read, NO slots are returned and "incomplete" is set — a gap computed without one person's calendar is a double-booking, not an answer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountsNoRestrict to these accounts. Omit to use every configured account.
time_maxYesLatest instant to consider. ISO 8601 WITH an explicit UTC offset or "Z" — for example "2026-09-10T09:00:00+02:00".
time_minYesEarliest instant to consider. ISO 8601 WITH an explicit UTC offset or "Z" — for example "2026-09-10T09:00:00+02:00".
timezoneNoIANA zone for the working-hours bounds, e.g. "Europe/Madrid".
calendar_idNoCalendar id. Defaults to "primary", the account own calendar.
workday_endNoEnd of the working day, "HH:MM". Default 18:00.
weekdays_onlyNoSkip Saturdays and Sundays. Defaults to true.
workday_startNoStart of the working day, "HH:MM". Default 09:00.
minimum_minutesNoIgnore gaps shorter than this. Default 30.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.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 readOnlyHint and idempotentHint, but the description adds crucial behavior beyond them: if any calendar is unreadable, NO slots are returned and 'incomplete' is set, preventing double-bookings. It also discloses the timezone default-and-echo behavior, which is valuable operational context.

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

Conciseness5/5

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

The description is three sentences with no filler: the first states the core function, the second gives hard input constraints, and the third highlights a critical safety behavior. The IMPORTANT warning is front-loaded enough to prevent misuse.

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

Completeness4/5

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

The description covers core behavior, defaults, working-hours constraints, and failure semantics, while parameter details are fully present in the schema. The only meaningful omission is a precise description of the successful output structure beyond 'gaps' and 'incomplete,' but the annotation suite and schema make this a fairly complete definition.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by emphasizing that time_min/time_max must carry an explicit UTC offset and by revealing the timezone default (server zone) plus the echo behavior, which the schema does not specify.

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 opens with a precise verb+resource combination: find gaps that are free on EVERY account within working hours. This clearly differentiates the tool from event-listing siblings like calendar_list_events or calendar_get_event by emphasizing cross-account availability search.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: when you need common free time across multiple accounts within working hours. It does not explicitly name an alternative or state a when-not-to-use condition, but the context is strong enough for an agent to select it over the event-centric calendar siblings.

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