Scheduling Configuration Guide

A complete scheduling integration with NexHealth has two moving parts: (1) configuring when a provider is available and (2) retrieving the bookable slots that return. This guide walks through scheduling configurations from simplest to most complex. At each level, you'll see how to configure the schedule, what the API returns when you ask for slots, and what to look out for in the data.


The walkthrough starts with manual configuration - you create the schedule through the API, and the shape is identical across every health record system. Later on in this guide we will cover synced configuration at Level 2b, once you have an understanding of our scheduling endpoints.

📘

Default working hours configuration

Manual is the default for most integrations. Synced is opt-in per location and only available for supported systems.

Examples below use:
v20240412 (/working_hours, /available_slots) with the Nex-Api-Version: v20240412 header.
Reference: [/working_hours], [/available_slots].

Level 1 — One provider, one operatory, fixed weekly schedule

Throughout this guide, we will use the example office called Happy Smiles Dental to demonstrate working hour configurations.

This straightforward configuration is the simplest one most practices start with. Every other level adds a layer of complexity on top.

See the Level 1 subpage here: https://docs.nexhealth.com/docs/level-1-scheduling-configuration#/

Level 2a — Multiple providers, multiple operatories, lunch breaks (manual)

Two new things at this level: additional working hour records (one per provider-operatory pair) and gaps in the day (lunch). Manual handles both by treating them as data structure problems — more POSTs, split records.

See the Level 2a subpage here: https://docs.nexhealth.com/docs/level-2a-scheduling-configuration#/

Level 2b — Calendar Unavailabilities

This sections covers how the Synchronizer API handles calendar availabilities synced from the target health record system.

See the Level 2b subpage here: https://docs.nexhealth.com/docs/level-2b-scheduling-configuration-unavailabilities#/

Level 2C - Appointment Types

A working hour record tells you when a provider is available. It doesn't tell you what they can be booked for. That's the job of appointment types. This sections covers the difference between: NexHealth appointment types are categories defined only inside NexHealth. Appointment descriptors are the EHR's native appointment types and procedure codes, read directly from the practice's system.

See the Level 2C subpage here: https://docs.nexhealth.com/docs/level-2c-scheduling-configuration-appointment-types#/

Level 2d - Under the hood: how slots are derived

You now have all three inputs: working hours (when a provider is available), calendar unavailabilities (when a provider explicitly is not available), and NexHealth appointment types (what type of appointment a provider can be booked for). The /available_slots endpoint utilizes these inputs in order to calculate available time slots.

This section will cover how all these concept work together in order to calculate appointment availability.

See the Level 2d subpage here: https://docs.nexhealth.com/docs/level-2d-scheduling-configuration-slots#/

Level 3 - Synced working hours

So far, you've been the source of truth, every working hour record exists because your application POSTed it. For supported systems (Athena, Dentrix Enterprise, eClinicalWorks, Open Dental, Orthotrac, ModMed, NextGen Office, and Eaglesoft.), there's another way: NexHealth reads the schedule directly from the practice's health record system. The practice manages it through their existing workflow. Your application reads what the practice has already configured in their system.

See the level 3 subpage here: https://docs.nexhealth.com/docs/level-3-scheduling-configuration-synced-working-hours#/