Nirmitee.io
eClinicalWorksHealthcare Integration

eClinicalWorks Scheduling API: How to Get a Provider's Day List (2026)

October 19, 202613 min readUpdated Oct 28, 2026
Written by
Dinesh Thorat
Dinesh Thorat

Digital Growth Lead

Writes about healthcare technology, interoperability, and AI-driven transformation across modern care systems.

eClinicalWorks Scheduling API: How to Get a Provider's Day List (2026)

Updated October 2026

eClinicalWorks has no appointment API on its FHIR server: none of the calls in eCW's API list reads or writes Appointment, Schedule or Slot. To get a provider's full day list, including patients who are booked but not checked in, you need an HL7 SIU scheduling feed from the practice, the contracted healow Scheduling API for booking flows, or a third-party route.

This guide is for teams building on eClinicalWorks (eCW): AI scribes and agents that prepare for each visit, patient engagement tools, voice and booking agents, and analytics products. It covers why the FHIR route misses patients, what each scheduling route returns, the exact calls and messages involved, and the checks to run before go-live. If you want the work done for you, our eClinicalWorks integration services team builds these feeds end to end.

Only the SIU feed delivers every booking, including patients not yet checked in, at the moment it is made.

Does eClinicalWorks have an appointment API?

Not on its FHIR server. eCW's developer documentation shows 89 API calls for its certified FHIR R4 interface, and none of them is Appointment, Schedule or Slot, whether free or under contract. The page data also holds one hidden entry, an "Encounter (paid API)" read switched off by a feature flag, with no published price. Scheduling lives in a separate product, the healow Scheduling API, which runs on the older FHIR DSTU2 standard and needs its own registration and contract.

We checked this three ways in October 2026: the resource list in eCW's documentation at fhir.eclinicalworks.com, the live capability statement (/metadata) on both eCW FHIR hosts for two public test practices, and the healow developer portal. The capability statement reports "eCW FHIR Facade 1.6", FHIR 4.0.1 and 38 resources, with no scheduling resource among them. The same answer holds for patient apps, provider apps and backend (system) apps.

Of the 89 eCW API calls shown in the documentation, 60 are free reads, 29 need a contract, and none covers scheduling.
eCW API surfaceScheduling dataAccess
FHIR R4 (fhir4.eclinicalworks.com, fhir4.healow.com)None. Encounter (the visit) is the closest resourceFree certified reads; writes need a contract
healow Scheduling API (FHIR DSTU2)Schedule, Slot, book, cancel, update, get one appointment by idRegister a Scheduling App; terms include a monthly fee
HL7 v2 SIU interfaceEvery booking, reschedule and cancel as it happensOrdered by the practice from eCW, usually under a statement of work
Proprietary eCW APISome integrators describe one with appointment endpointsNot in eCW's public documentation; ask eCW whether your deployment has it

Why your eCW day list misses patients who have not checked in

Most teams build the day list from Encounter, because it is the only visit-shaped resource eCW's FHIR API offers. An Encounter is the visit itself, so a patient who is booked for 3 pm but has not arrived may not appear yet, and the list looks short until the afternoon fills in.

The Encounter search on eCW accepts six parameters: _id, date, location, page, patient and practitioner. There is no status parameter, so you cannot ask for planned or booked visits, and you get whatever eCW chooses to expose. Paging uses page, not the _count and next link pattern many FHIR servers use, so code written for Epic or Oracle Health can silently read only the first page.

# Free check: one provider, one day, every page
GET https://fhir4.eclinicalworks.com/fhir/r4/{practice_code}/Encounter?practitioner={practitioner_id}&date=2026-10-19
GET https://fhir4.eclinicalworks.com/fhir/r4/{practice_code}/Encounter?practitioner={practitioner_id}&date=2026-10-19&page=2
Authorization: Bearer {access_token}
Accept: application/fhir+json

Run that search for one provider and one day, page through every result, and compare it with the same provider's column on the eCW Resource Schedule. If every booked patient appears, your problem was paging or filtering, and you can stay on FHIR. If booked patients are missing, eCW's Encounter feed does not cover them in that practice, and you need one of the routes below. The behavior can differ by eCW version and practice setup, so test in the practice you will go live in, not only in the sandbox.

One more resource is worth testing. eCW describes its CarePlan read as "Upcoming appointments, Pending orders". We have not tested what it returns in a live practice, so treat it as a lead to check, not as a schedule feed.

Polling also has a ceiling. eCW allows 250 calls per minute per practice base URL, and that budget includes the token and authorize calls. A product that refreshes many providers every few minutes runs into it fast.

How eClinicalWorks scheduling works inside the practice

Bookings in eCW land on the Resource Schedule, a grid of provider columns and time slots built from templates. Each practice defines its own visit types (new patient, follow-up, procedure, telehealth), and each visit type carries a duration and rules about which provider and location can take it. Templates must be published before their slots can be booked.

This matters even if you only read the schedule. Your day list should carry the visit type and duration that eCW holds, not a guess, because an AI agent preparing a 40-minute new-patient visit needs different context from a 10-minute follow-up. If you also book, every write has to respect the same templates and visit-type rules, or the front desk ends up cancelling and rebooking by hand.

healow Scheduling API: endpoints, limits and terms

The healow Scheduling API is eCW's official scheduling interface for outside apps. It is built for booking flows: show open slots, book a visit, cancel or change it. It runs on FHIR DSTU2 under https://connect4.healow.com/apps/api/v1/fhir/{practice_code}/dstu2/, and every call carries a bearer token issued for the practice.

CallMethod and pathWhat it does
ScheduleGET .../dstu2/Schedule?actor=Practitioner/{NPI}&date=&actor.location={facility_id}The provider's schedule for a date and facility
SlotGET .../dstu2/SlotOpen slots to offer a patient
AppointmentPOST .../dstu2/AppointmentBook a visit
CancelPATCHCancel a booked visit
Retrieve detailsGET .../dstu2/v2/Appointment?_id={id}One appointment, when you already hold its id
Update appointmentPATCHChange a booked visit

None of the six calls returns every appointment for one provider on one date with patient details. That makes the healow Scheduling API the right tool for a patient booking app or a voice agent that books, and the wrong tool for a clinician-facing day list.

The healow Scheduling API books and changes visits; it has no call that lists a provider's whole day.

How to register a healow Scheduling App

Sign in to the healow developer portal at connect4.healow.com and choose Register Scheduling App on the dashboard, next to Register Patient App and Register RPM Device. The form asks for the app name, a logo (PNG or JPEG, up to 20 KB), a short description, and whether the app will query Patient and Encounter resources. You then accept the Scheduling API Terms of Service.

What the Scheduling API terms say

Read the terms before you build, because four of them shape the architecture. We read them on the registration form in October 2026:

  • Fees. Access is billed monthly in US dollars "according to the terms provided in Exhibit B". Exhibit B was blank on the page, so ask eCW for the price before you commit.
  • Business associate agreement. A HIPAA business associate agreement is attached as Exhibit A.
  • No caching or storing. The terms bar keeping "a cache or store" of data accessed through the APIs. An app that keeps its own copy of the schedule needs a different source for that copy.
  • No service-bureau use. Access is only through your own application and site; sub-licensing or running the API for another company is not allowed. Each vendor registers its own app.

The terms also say eCW approves apps automatically when they use only the common scheduling data set and follow the federal certification criteria, and that eCW may limit daily query volume.

HL7 SIU feed: the complete day list in real time

An HL7 SIU feed is the most reliable way to get a provider's full day list from eClinicalWorks. eCW says it follows standard HL7 SIU messaging to keep appointments in sync with other systems, and lists S12 (new booking), S13 (rescheduled) and S15 (cancelled) among the messages it sends. Some integration guides list S14 (modified) in place of S13; confirm the exact event list for your practice when you order the interface.

Because eCW sends the message when the front desk books the visit, the patient is in your data hours or days before check-in. The practice orders the interface from eCW, typically under a statement of work, and the feed usually lands in an interface engine such as Mirth Connect, which acknowledges each message and writes it to your database.

Key each row on the eCW appointment id so reschedules and cancels update the same visit instead of adding a new one.

A synthetic S12 message looks like this (all values made up):

MSH|^~\&|ECW|CLINIC01|MIRTH|APPDB|20261019083000||SIU^S12|MSG0001|P|2.3
SCH|APT000123|APT000123|||||FOLLOWUP^Follow-up visit|||15|MIN|^^15^20261019150000^20261019151500|||||||||||||Booked
PID|1||PAT0042^^^ECW||TEST^PATIENT||19800101|F
AIP|1||PRV001^SAMPLE^PROVIDER|||20261019150000|||15|MIN
AIL|1||MAIN^^^CLINIC01

Field positions vary between eCW versions and practices, so map from real messages captured in the practice, not from a template. Our Mirth Connect eClinicalWorks guide covers segment-by-segment mapping, ACK handling and replay.

Design a live appointment table

Store one row per appointment, keyed on the eCW appointment id, and let each SIU event update that row. Your app then answers "Dr X's day" with a simple query instead of a chain of API calls.

CREATE TABLE ecw_appointment (
  practice_code   text        NOT NULL,
  appointment_id  text        NOT NULL,   -- eCW id from SCH
  provider_id     text        NOT NULL,   -- from AIP
  patient_id      text        NOT NULL,   -- from PID
  visit_type      text,
  starts_at       timestamptz NOT NULL,
  duration_min    int,
  location        text,                   -- from AIL
  status          text        NOT NULL,   -- booked, rescheduled, cancelled
  last_event      text        NOT NULL,   -- S12, S13, S15
  updated_at      timestamptz NOT NULL DEFAULT now(),
  PRIMARY KEY (practice_code, appointment_id)
);

-- The day list, including patients not yet checked in
SELECT starts_at, patient_id, visit_type, status
FROM ecw_appointment
WHERE practice_code = 'CLINIC01'
  AND provider_id = 'PRV001'
  AND starts_at::date = DATE '2026-10-19'
  AND status <> 'cancelled'
ORDER BY starts_at;

Keep cancelled rows instead of deleting them, so you can tell a cancellation from a lost message. Alert when a practice goes quiet during clinic hours, because a silent feed looks exactly like an empty schedule.

Other routes: data services and UI automation

Two other routes exist, and both trade control for speed. Scheduling data services such as NexHealth expose eCW appointments through their own API; NexHealth's changelog notes eCW support for double booking through an appointments_per_slot setting on its v20240412 API version. Confirm with the vendor that your practices' eCW deployments are supported, and budget for a second vendor and a second business associate agreement.

UI automation (sometimes called RPA or browser automation) drives the eCW screens with a staff login, so it can read anything a user can see. It is quick to start and can work where no interface exists. It also breaks when screens change, depends on a user account and its login, and may conflict with eCW's terms or the practice's policies, so get the practice's written approval before you use it.

Which route fits your product

The right route depends on what the product does with the schedule. A backend app that needs every booking needs a feed; an app that books on behalf of patients needs the healow Scheduling API.

ProductWhat it needsRecommended route
AI scribe or clinical agent preparing for each visitFull day list with patients and visit types, before check-inSIU feed into your appointment table; FHIR for the chart
Voice or chat agent that books visitsOpen slots, booking, cancel, reschedulehealow Scheduling API, respecting templates and visit types
Patient app or portal extensionThe signed-in patient's own visits and bookinghealow Scheduling API plus a patient SMART app
Reminders, recall and no-show outreachEvery booking and cancel as it happensSIU feed
Analytics and capacity planningHistory of bookings and changesSIU feed stored over time; bulk FHIR export for visits
Start with the free Encounter check, then pick the route by whether you need names and live changes and whether the practice can order an HL7 feed.

Checks before you go live

Prove the day list in a real practice before anyone relies on it. Run these four checks with the practice's front desk:

  1. Book a test visit. It appears on the Resource Schedule and in your data with the right provider, visit type, duration and location.
  2. Reschedule it. The same record moves; no duplicate appears.
  3. Cancel it. The slot reopens in eCW and your record shows cancelled.
  4. Compare a full day. Your list for one provider matches the eCW schedule screen, including patients who have not checked in.

If your product also writes back (tasks, notes or bookings), confirm each write lands in the right eCW queue or chart, and plan for the eCW contract those writes need. Our eClinicalWorks API guide covers registration, authentication, write access and rate limits in detail, and our FHIR Encounter guide explains Encounter statuses across EHRs.

How we can help

We build eClinicalWorks integrations for health-tech products, from FHIR reads to SIU feeds. Our team has built more than 350 interfaces on Mirth Connect, and our eCW healow SMART on FHIR walkthrough shows a live sandbox launch. For AI products that need the day's patient list, see our healthcare AI agent work.

If your eCW day list is missing patients, book a 30-minute scoping call. We will run the Encounter check with you, tell you which route fits, and give you a fixed-price plan for the first practice. Read more on our eClinicalWorks integration page.

Ready to scale?

Talk to our healthcare engineering team about building, integrating, and shipping faster.

Frequently Asked Questions

Does eClinicalWorks have an appointment API?

Not on its FHIR server. None of the calls in eCW's API list covers Appointment, Schedule or Slot. eCW's scheduling interface is the separate healow Scheduling API on FHIR DSTU2, which needs its own registration and contract. A full real-time feed of bookings comes from an HL7 SIU interface ordered by the practice.

How do I get a provider's daily schedule from eClinicalWorks?

First run an Encounter search by practitioner and date and page through every result with the page parameter. If booked patients who have not checked in are missing, order an HL7 SIU scheduling interface for the practice and keep your own appointment table updated from S12, S13 and S15 messages. The healow Scheduling API cannot list a provider's whole day.

Why are patients who have not checked in missing from my eCW FHIR data?

eCW's FHIR API has no Appointment resource, so most apps read Encounter, which is the visit itself. Encounter search on eCW has no status parameter, so you cannot ask for booked or planned visits, and patients may only appear once their visit starts. A scheduling feed fixes this because eCW sends the message at booking time.

What is the healow Scheduling API?

It is eCW's official scheduling interface for outside apps, served from connect4.healow.com on FHIR DSTU2. It offers Schedule, Slot, book, cancel, update and get one appointment by id, with a bearer token per practice. You register it as a Scheduling App on the healow developer portal and accept terms that include a monthly fee, a business associate agreement and a ban on caching data.

Does the healow Scheduling API cost money?

Yes. Its terms say access is billed monthly in US dollars according to an Exhibit B. Exhibit B was blank on the registration page when we read it in October 2026, so ask eClinicalWorks for the price before you build.

Does eClinicalWorks send HL7 SIU messages?

Yes. eClinicalWorks says it follows standard HL7 SIU messaging to keep appointments in sync with other systems and lists S12 (new booking), S13 (rescheduled) and S15 (cancelled) among the messages. The practice orders the interface from eCW, and an interface engine such as Mirth Connect receives and acknowledges each message.

Can an AI agent book appointments in eClinicalWorks?

Yes, through the healow Scheduling API or an HL7 SIU interface, not through eCW's certified FHIR API. Every booking has to respect the practice's templates, visit types and durations on the Resource Schedule, and you should test book, reschedule and cancel in the live practice before go-live.

Can I use eCW FHIR backend services for scheduling?

Backend apps can authenticate with client credentials and read 60 free resource types, including Encounter, Practitioner and Location, but they get the same data as other app types. There is no scheduling resource for backend apps either, so the day list still needs an SIU feed or another route.
Share