Skip to main content
Glama
chatgenius-mcp

chatgenius-mcp

Official
by SumCodeAI

book_appointment

Destructive

Books a future appointment slot in the customer's timezone, checks required details and availability, then confirms it and syncs to connected calendars.

Instructions

Book an appointment. Books a slot the way the portal calendar does: the account's required customer fields are enforced (422 missing_fields), the time must be in the future and free (409 slot_unavailable), the appointment is confirmed at once, synced to Google Calendar and GoHighLevel when connected, and appointment.booked fires. Attach conversation_id to book for a person you are chatting with; they get the confirmation DM unless send_confirmation is false. date and time are the customer's wall-clock time in timezone (the account timezone when omitted).

Input Schema

NameRequiredDescriptionDefault
costNo
dateYesYYYY-MM-DD.
timeYesHH:MM, 24-hour, in timezone.
notesNo
customerYes
locationNo
timezoneNoIANA name. Default: the account timezone.
service_typeNoA bookable service name from ai/config booking.bookable_services, or free text.consultation
vehicle_infoNo
conversation_idNoBook for the person in this conversation; sets the channel and enables the confirmation DM.
duration_minutesNoDefaults to the service's duration, else 30.
send_confirmationNoWith conversation_id: DM the customer the confirmation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotations it discloses the failure contract (422 missing_fields, 409 slot_unavailable), the immediate-confirmation semantics, downstream syncs to Google Calendar and GoHighLevel, and the appointment.booked event. It also explains the side effect of the confirmation DM, which is exactly the kind of behavior annotations cannot convey.

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-loaded with the action, then layered with validation, side effects, and parameter notes in a compact paragraph. It is dense but nearly every clause carries information; the nested parenthetical error codes are slightly heavy for prose but earn their place.

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 12-parameter mutation with no output schema, the description covers outcomes, error states, and side effects well enough to call the tool safely. The remaining gap is the handful of optional fields (cost, notes, location, vehicle_info) that neither schema nor description explains.

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?

With 58% schema coverage, the description compensates well for the most consequential params: conversation_id's channel/DM effect, timezone defaulting to account timezone, wall-clock semantics of date/time, service_type sourcing from booking.bookable_services, and duration fallbacks. It leaves cost, notes, location, vehicle_info, and the customer sub-object undocumented, so the coverage is strong but not 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 description opens with a specific verb and resource ("Book an appointment") and immediately qualifies how the booking behaves. It is clearly distinct from siblings like reschedule_appointment or cancel_appointment, but it never names those siblings or get_availability to draw the line explicitly.

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?

It gives concrete usage context: attach conversation_id when booking for a person in an active chat, and confirmation DM is controlled by send_confirmation. What's missing is guidance on the surrounding workflow (e.g. call get_availability first, or use reschedule_appointment to move an existing booking).

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