Skip to main content
Use this to pull a week’s schedule into your system, or to reconcile HealOS appointments with yours.
Filter with date=YYYY-MM-DD, one day per request. GET /appointments accepts start_date and end_date, but does not apply them today: a request with only those parameters returns every appointment.

How the filter works

  • date matches appointments whose start_at falls on that calendar day in UTC. An appointment at 6 PM Pacific on 14 April is 01:00 UTC on 15 April, so it appears under date=2026-04-15.
  • Results are paginated (page, limit up to 100), newest start_at first.
  • Appointments are those in HealOS: created through the API or the dashboard. Appointments that exist only in your EHR are not listed.

Steps

1

Ask for one day

Expect 200 with data (the appointments) and meta (page, limit, total_pages).
2

Read every page

While meta.page is less than meta.total_pages, ask again with page=2, page=3 and so on.
3

Repeat for each day in the range

Move the date forward one day at a time until the end of the range. To cover a whole local day, also fetch the UTC day after it and keep only the appointments whose start_at falls inside your local day.

Script

Node.js 18 or later: HEALOS_API_KEY=hlsk_... node appointments.mjs 2026-04-13 2026-04-19.
appointments.mjs

Expected outcomes

Each appointment carries id, patient_id, patient_name, provider_id, provider_name, appointment_type, visit_type, start_at, duration_minutes, status (SCHEDULED, COMPLETED, CANCELLED or NO_SHOW), notes, repeat_rule and your external_id. See List appointments for the full schema.