Skip to main content
Glama

Change a booking

edit_booking
Destructive

Changes one booking: customer details, or start (and resource) to move it. A class_id (cl_…) as item_id: start moves the class; waitlist closes or re-opens it. A move or a change that emails someone asks first (confirm_token); force: true books a clash.

Input Schema

NameRequiredDescriptionDefault
nameNo
siteYes
emailNo
forceNo
notesNo
partyNo
phoneNo
startNoNew local time, e.g. "2026-10-15T14:00"
answersNo{question id: answer} ("" removes one)
item_idYes
messageNoA note for the customer
resourceNoWith start: staff or room
waitlistNoClass time or wl_ entry: close (bookings stay; those waiting are emailed) or re-open
plugin_idNoDefault: booking page
confirm_tokenNo
notify_customerNoEmail the customer (default true)

Output Schema

NameRequiredDescriptionDefault
bookingsNo
agent_messageNo
confirm_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / agent_message
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / bookings
      Added value: +{
      +  "type": "number"
      +}
  2. Changed1 schema field changed
    • removedInput schema / properties / item_id / description
      Removed value: -"From get_lists"
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "confirm_token": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed2 schema fields changed
    • removedInput schema / properties / confirm_token / description
      Removed value: -"After the user's yes"
    • changedInput schema / properties / plugin_id / description
      Previous value: -"Default: the booking page"New value: +"Default: booking page"
  5. Changed1 schema field changed
    • removedInput schema / properties / site / description
      Removed value: -"Site name"
  6. Changed18 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / answers / additionalProperties
      Removed value: -{
      -  "maxLength": 500,
      -  "type": "string"
      -}
    • changedInput schema / properties / answers / description
      Previous value: -"{question id: answer} for the settings' questions (\"\" removes one)"New value: +"{question id: answer} (\"\" removes one)"
    • changedInput schema / properties / confirm_token / description
      Previous value: -"From the first call, after the user's yes"New value: +"After the user's yes"
    • removedInput schema / properties / email / maxLength
      Removed value: -254
    • removedInput schema / properties / force / description
      Removed value: -"Book even if it clashes"
    • removedInput schema / properties / message / maxLength
      Removed value: -500
    • removedInput schema / properties / name / maxLength
      Removed value: -100
    • removedInput schema / properties / notes / maxLength
      Removed value: -1000
    • changedInput schema / properties / notify_customer / description
      Previous value: -"Email the customer (default true when there is an email)"New value: +"Email the customer (default true)"
    • removedInput schema / properties / phone / maxLength
      Removed value: -40
    • changedInput schema / properties / plugin_id / description
      Previous value: -"Default: the site's booking page"New value: +"Default: the booking page"
    • changedInput schema / properties / resource / description
      Previous value: -"With start: staff or room id or name"New value: +"With start: staff or room"
    • removedInput schema / properties / resource / maxLength
      Removed value: -60
    • changedInput schema / properties / site / description
      Previous value: -"Site name, e.g. brave-otter-4821"New value: +"Site name"
    • changedInput schema / properties / start / description
      Previous value: -"A new time: local \"2026-10-15T14:00\" (booking time zone)"New value: +"New local time, e.g. \"2026-10-15T14:00\""
    • changedInput schema / properties / waitlist / description
      Previous value: -"A class time (cl_…) or wl_ entry: close its waitlist (bookings stay; the people waiting are emailed) or re-open it"New value: +"Class time or wl_ entry: close (bookings stay; those waiting are emailed) or re-open"
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": {},
      -  "properties": {
      -    "agent_message": {
      -      "type": "string"
      -    },
      -    "confirm_token": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "description": "On failure (isError): {code, message}"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  7. Changed5 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +{}
    • changedInput schema / properties / item_id / description
      Previous value: -"From list_plugin_data"New value: +"From get_lists"
    • changedInput schema / properties / plugin_id / description
      Previous value: -"From list_plugins"New value: +"Default: the site's booking page"
    • addedInput schema / properties / waitlist
      Added value: +{
      +  "description": "A class time (cl_…) or wl_ entry: close its waitlist (bookings stay; the people waiting are emailed) or re-open it",
      +  "enum": [
      +    "closed",
      +    "open"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "site",
      -  "plugin_id",
      -  "item_id"
      -]New value: +[
      +  "site",
      +  "item_id"
      +]
  8. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, openWorldHint=true. On top of that the description discloses the two-step confirm_token confirmation flow for moves/emailing changes and the clash-override behavior of force:true, which are meaningful behavioral facts not in the annotations or schema.

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?

Three front-loaded sentences covering the main purpose first, then edge cases. Extremely dense but nearly every clause carries information; only the compressed phrasing of the confirm_token sentence borders on cryptic.

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

Completeness3/5

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

Output schema and annotations are rich, lowering the burden, and the description handles the tricky interactions. But for a 16-parameter mutation tool with 44% schema coverage, several parameters still lack any documented semantics, leaving the definition short of complete.

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 coverage is only 44%, so the description must compensate. It adds real meaning for item_id's cl_ convention, the start+resource pairing, confirm_token, and force, but leaves customer-detail fields (name, email, phone, notes, party, site) unexplained, so compensation is partial.

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?

States a specific verb and resource ('Changes one booking') and enumerates what can change: customer details, or start+resource to move. It also disambiguates item_id (a cl_ prefix means a class). Sibling routing (vs add_booking, cancel_booking, set_booking_outcome) is implied but never named.

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

Usage Guidelines3/5

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

The description gives invocation-level guidance for tricky parameters ('A move or a change that emails someone asks first (confirm_token); force: true books a clash'), which is real when-to-use context. However, it does not state when to choose this over cancel_booking or set_booking_outcome, leaving the main routing decision 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.

Resources