Skip to main content
Glama

Tradify MCP Server and API by Cotlet

Schedule appointment

schedule_appointment
Destructive

Book a job appointment on the Scheduler for staff, optionally emailing the customer a confirmation. Books the job on the Scheduler from start to end for each staff member named (by full name; default the signed-in user), as the Scheduler does. Each staff member gets Tradify's "You've been scheduled" notice, and an Unassigned or Assigned job becomes Scheduled. email_customer also sends the customer the appointment confirmation email, with customer_message in it. By default you confirm each call, and 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": {
      "job_id": "<job_id>",
      "start": "<start>",
      "end": "<end>"
    },
    "name": "schedule_appointment"
  }
}

Input Schema

NameRequiredDescriptionDefault
endYesISO 8601; without a zone, company time.
notesNoNotes for the crew.
staffNoStaff member names, one appointment each. Default: you.
startYesISO 8601; without a zone, company time.
job_idYesJob ID from list_jobs.
email_customerNoEmail the customer a confirmation.
customer_messageNoExtra text in that email.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

With destructiveHint=true and idempotentHint=false already declared, the description adds real context: staff receive a 'You've been scheduled' notice, the job transitions from Unassigned/Assigned to Scheduled, an optional customer confirmation email is sent containing customer_message, and there is a per-call confirmation plus an owner-approval gate. It does not explain reversibility (how to unschedule) or what happens on overlapping bookings, which matters given destructiveHint=true.

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?

The key action and its scope are front-loaded in the first sentence, and each subsequent sentence carries information (staff default, status transition, email contents, confirmation/approval). It is somewhat run-on with mild redundancy around 'as the Scheduler does' and the repeated 'Books the job on the Scheduler', but nothing is wasted enough to distract.

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 7-parameter mutation tool with no output schema, the description covers side effects, prompts, approval, and state changes well. It still leaves gaps an agent would want: what the call returns (created appointment identifiers) and failure behavior on conflicts or unavailability are unaddressed.

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 100%, so the baseline is 3. The description adds modest value—'by full name' for staff and the fact that customer_message is embedded in the confirmation email—but largely restates what the schema already documents (staff default, one appointment each, email_customer behavior).

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?

The opening sentence states a specific verb and resource ('Book a job appointment on the Scheduler') plus the optional email side effect, and the body clarifies scope: one appointment per named staff member, start-to-end. It is clearly distinguishable from the sibling list_appointments (read) and create_job (job creation) without opening a schema.

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?

Usage is implied rather than stated: 'job_id' comes from list_jobs and the tool applies only to Unassigned or Assigned jobs, but there is no explicit 'use X instead when...' guidance or stated preconditions (e.g. what happens if the job is already Scheduled or Completed). The approval/confirmation note is about execution flow, not tool selection.

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.