Skip to main content
Glama

Book a slot in the business’s own calendar (Square Appointments)

book_slot

For a service whose business’s card shows a book action with method connected and no book in its cannot (a door the platform refuses for this account is marked there, with the reason, at every sync). Take a start_at from check_availability (slots) and the platform books it for the named customer; the answer is the platform’s own status (created = on the calendar awaiting confirmation · confirmed · declined). A time the platform does not offer is an unavailable error and nothing is booked. Idempotent by idempotency_key like place_order. Get the user’s explicit yes first.

Input Schema

NameRequiredDescriptionDefault
noteNo
customerYes
start_atYesISO date-time with an offset, as check_availability gave it
variant_idNothe service variation when the card lists several
business_idYes
offering_idYesthe service, from the card
idempotency_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the write/non-destructive/open-world profile, and the description adds genuinely new behavior: the returned platform statuses (created/confirmed/declined), that an unoffered time yields `unavailable` and books nothing, and that idempotency only holds when `idempotency_key` is supplied. That last point sits in mild tension with idempotentHint=false, but it reads as clarifying conditionality rather than contradicting the hint.

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

Conciseness3/5

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

Nearly every sentence carries real information, but the ordering is off — the purpose arrives after a dense precondition full of platform-internal jargon (`book` action, `cannot` list, method `connected`) that is never defined. Backtick-heavy inline syntax and an odd mid-sentence line break make it slower to parse than its length warrants.

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?

For a mutating, open-world tool with a nested customer object and no output schema, the description supplies the status model, the failure mode, consent requirements and retry semantics. What remains unstated is what happens after a `declined` status or whether the business in `business_id` must match the card inspected, but these are secondary.

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?

At 43% schema coverage the description must compensate, and it does for the pivotal parameters: `start_at` must be the ISO value previously returned by check_availability, and `idempotency_key` carries retry-safety semantics. It adds nothing for `note`, `variant_id` (beyond the schema's own note) or `business_id`, so coverage is partial rather than complete.

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

Purpose4/5

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

The title plus 'the platform books it for the named customer' make the verb and resource unambiguous (booking a calendar slot for a customer), and the tool is clearly distinguished from place_order and check_availability. However, the description opens with a gating precondition about card `book` actions rather than a front-loaded purpose statement, so the core purpose is inferred from the second clause.

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 states the exact enabling condition (card shows a `book` action with method `connected` and no `book` in `cannot`), the prerequisite source of input ('Take a `start_at` from check_availability'), and a hard consent rule ('Get the user's explicit yes first'). It even covers the failure branch (unavailable error means nothing is booked), leaving little to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.