Register an OAuth2 application in the DrChrono developer portal to get a client_id and client_secret; implement the authorization code flow to obtain user-delegated access tokens.
Refresh tokens using the refresh_token grant before expiry; DrChrono access tokens are short-lived.
List appointments by sending GET to https://drchrono.com/api/appointments with filters such as date_range, doctor, patient, or office to narrow results.
Create an appointment by POSTing to https://drchrono.com/api/appointments with required fields: doctor (ID), patient (ID), office (ID), exam_room, scheduled_time, and duration.
Update an appointment status (e.g. to 'Arrived' or 'Complete') with a PATCH request to https://drchrono.com/api/appointments/{id} supplying only the changed fields.
Handle webhook events from DrChrono for real-time appointment status changes by registering a webhook endpoint in the developer portal and validating the secret included in each callback.
Known gotchas
DrChrono IDs for doctors, patients, offices, and exam rooms are internal integer IDs; you must resolve these via their respective list endpoints before creating appointments—do not guess or hardcode them.
Rate limits are enforced per OAuth token; if your integration serves multiple practices, each will have its own token and separate rate-limit bucket.
Appointment time fields use the practice's local timezone as configured in DrChrono, not UTC; always clarify and store timezone context alongside scheduled times to avoid scheduling errors.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp