Create an appointment
Book an appointment for a job with a technician and a time window.
MCP tool servicetrade_write → create_appointment
write Confirm
Returns the new appointment with its status, window, technicians and released flag. Service requests must belong to the job. Leave released false to review the day first, and use update_appointment to release it. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| job_id integer required | integer | Job to book, from list_jobs. |
| technician_ids array | array | Technician ids from list_technicians. |
| window_start string | string | ISO 8601 date-time with offset. |
| window_end string | string | ISO 8601 date-time with offset. |
| service_request_ids array | array | Services of the job to do at this appointment; none means an appointment without services. |
| released boolean | boolean | true gives the appointment to the technicians now, false keeps it as a draft. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "servicetrade_write",
"arguments": {
"operation": "create_appointment",
"arguments": {
"job_id": 48213,
"technician_ids": [
3301
],
"window_start": "2026-10-26T08:00:00-04:00",
"window_end": "2026-10-26T10:00:00-04:00",
"released": false
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"appointment_id": 90417,
"job_id": 48213,
"status": "scheduled",
"window_start": "2026-10-26T08:00:00-04:00",
"window_end": "2026-10-26T10:00:00-04:00",
"technicians": [
{
"id": 3301,
"name": "Marcus Hill"
}
],
"released": false
},
"isError": false
}