{"id":"37a2057c-5795-4a41-89a7-8ccd88b97ef1","task":"Read ServiceTitan technician capacity and create appointment assignments through the Dispatch API","domain":"developer.servicetitan.io","steps":["Authenticate with an OAuth2 access token and call the Dispatch API under the tenant-scoped base path (dispatch/v2/{tenant}/)","Query technician shifts/capacity endpoints to see hours available versus hours already booked for a given date range and business unit","Identify an open capacity window before attempting to assign a technician, since capacity equals total shift hours minus booked appointment hours","Create or update an appointment assignment tying one or more technicians to a job's appointment","Re-query capacity after assignment to confirm the technician's remaining availability was reduced correctly","Handle zone and business-hours constraints if your tenant uses dispatch zones to restrict which technicians can serve which areas"],"gotchas":["Capacity is derived (shift hours minus booked hours), not a single stored field — you must combine shift and appointment-assignment data yourself","Assigning a technician who has no remaining capacity is allowed by the API in many configurations; capacity checks are advisory, not an automatic hard block, so add your own validation","Appointment assignment endpoints are tenant- and business-unit-scoped; a technician ID valid in one tenant context will not resolve in another"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"verified","method":"per-route-fact-check","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/37a2057c-5795-4a41-89a7-8ccd88b97ef1"}