Skip to main content
Glama

Fresha MCP Server and API by Cotlet

Reschedule appointment

reschedule_appointment
Destructive

Move an appointment to a new start time, optionally to another team member. Moves every service of the appointment by the same amount so the first starts at start_at, as Reschedule in the appointment drawer does; lengths and prices stay. team_member_id moves all services to that team member, who must work at the appointment's location (location_ids in list_team_members); the location itself stays. With notify_client (default true) Fresha sends the client a reschedule message by their notification settings; false moves it quietly. Cancelled, completed and no-show appointments are refused. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "appointment_id": "<appointment_id>",
      "start_at": "<start_at>"
    },
    "name": "reschedule_appointment"
  }
}

Input Schema

NameRequiredDescriptionDefault
start_atYesNew start. 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.
notify_clientNoLet Fresha send the client a reschedule message, by their notification settings. Default: true.
appointment_idYesAppointment id from list_appointments.
team_member_idNoNew team member for every service, one who works at the appointment's location (location_ids in list_team_members). Default: unchanged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / team_member_id / description
      Previous value: -"New team member for every service. Default: unchanged."New value: +"New team member for every service, one who works at the appointment's location (location_ids in list_team_members). Default: unchanged."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations mark this destructive and non-idempotent; the description goes well beyond that by explaining exactly what changes (all services shift by the same delta, lengths and prices preserved, location unchanged) and what side effects occur (client notification unless notify_client is false). It also discloses confirmation-per-call, an owner-approval wait, and refusal conditions — none of which are in the annotations.

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-loads the action and the core consequence, then layers constraints. It is dense and mostly earns its length, though the drawer analogy plus repeated location/team-member caveats make it longer than strictly necessary.

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 destructive mutation with no output schema, it covers prerequisites, side effects, refusals and the approval flow, so an agent can call it safely. It does not describe what the call returns or how to observe the pending-approval result, which is the remaining hole.

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 coverage is 100%, so all four params are already documented; the description still adds cross-parameter meaning the schema lacks — that start_at anchors the first service and the rest shift equally, and that team_member_id moves every service while the location stays fixed. That extra context justifies above baseline.

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?

Opens with a precise verb+resource ('Move an appointment to a new start time') and immediately scopes the effect to every service in the appointment. It is clearly distinguishable from cancel_appointment, create_appointment and get_appointment siblings.

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?

Gives concrete when-to-use context ('as Reschedule in the appointment drawer does') plus explicit when-not cases: cancelled, completed and no-show appointments are refused. It does not name a sibling tool as the alternative path (e.g. cancel_appointment plus create_appointment), which is the only gap.

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.