Skip to main content
Glama
cotletdev

Fresha MCP Server

Create appointment

create_appointment
Destructive

Books a client's appointment by selecting services, team member, and start time, scheduling services sequentially at catalogue prices. Check free times with find_available_slots first.

Instructions

Book an appointment for a client: services, team member and start time.

Books the services one after another from start_at with one team member, as New appointment in the calendar does, at each service's catalogue price. Fresha may send the client a booking confirmation by their notification settings (get_client), so this can reach the client. Find free times with find_available_slots first: Fresha books over other appointments and returns its warnings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
start_atYesStart, ISO 8601: 2026-11-03T14:30 is wall clock in the business's time zone; with an offset (2026-11-03T14:30:00+01:00) it is converted.
client_idNoClient from list_clients. Without it: a walk-in.
service_idsYesService ids from list_services, done one after another in this order.
team_member_idNoTeam member. Default: the first who takes bookings.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructive=true, openWorld=true and idempotent=false, so the safety profile is covered; the description adds real context beyond that: services are booked sequentially from start_at at catalogue price, and the booking can send a real confirmation to the client. The only thing left vague is what the call returns on success or how the over-booking warning surfaces in this tool's own response.

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?

Two compact sentences, front-loaded with what the tool does before the prerequisites and side effects. Every clause earns its place – the calendar analogue, the sequential booking, the client notification and the double-booking warning all change agent behavior.

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 4-parameter destructive mutation with no output schema, the description covers ordering, pricing, external side effects and the slot-checking prerequisite. The remaining gap is the response shape, which is neither documented here nor in an output schema.

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 every parameter is already documented, including the walk-in default and the team-member default. The description reinforces semantics (services run one after another from start_at with a single team member) but adds no format, ordering or constraint detail the schema does not already carry. Baseline 3 is appropriate.

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 ('Book an appointment') plus the key inputs (services, team member, start time), and anchors it to a concrete analogue: 'as New appointment in the calendar does'. An agent can distinguish it from list_appointments, reschedule_appointment and find_available_slots without opening any schema.

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 an explicit prerequisite ('Find free times with find_available_slots first') and a concrete consequence of skipping it ('Fresha books over other appointments and returns its warnings'). It also routes to get_client for the notification-settings question, so both when-to-use and which sibling to consult are spelled out.

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