# Scheduling

This data model communicates information about a patient’s office or other outpatient appointment. EHR systems can send `Scheduling` messages to update your system with the appointment status, date/time, scheduled providers, and scheduled resources.

Every appointment gets assigned a visit number and patient ID. Any changes to the appointment are made with the relevant visit number. If the appointment is canceled and later rescheduled, however, a new visit number is created. Also keep in mind that scheduling holds and blocks don’t have an associated patient ID.

This data model has event types that allow you to:

- receive a notification about appointment updates; 
- push or receive a list of available appointment slots; 
- query for and receive open appointment times; or
- query for and receive booked appointment times. 

> **EHR support for Scheduling**
>
> EHR systems typically make scheduling information available through either a standard SIU HL7v2 feed or a proprietary API. SIU messages follow a push notification model while a proprietary API and web service rely on queries. 
>
> You also have the option to use data on demand if you prefer to query, but your connection only supports push notifications for scheduling data. For example, if you primarily want information about a booked appointment, you can use the `Booked` event type to get the information you need with data on demand. [Learn more about data on demand](https://docs.redoxengine.com/permalink/4TD76U5kQESdKsZvzDHfx5).

> **Scheduling vs. SurgicalScheduling vs. PatientAdmin data models**
>
> There’s some overlap among these data models, but here’s what to expect for each: 
>
> - The `Scheduling` data model contains information about outpatient appointments. This may include pre- and post-op office appointments.
> - The `SurgicalScheduling` data model contains information about surgical appointments. This contains information besides appointment details, like questionnaire answers from the patient, equipment requirements for the procedure, or in-progress notes about the surgery.
> - The `PatientAdmin` data model contains insurance information for appointments or surgical procedures.

## Events in Scheduling

- [New](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-new)
- [Reschedule](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-reschedule)
- [Modification](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-modification)
- [Cancel](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-cancel)
- [NoShow](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-no-show)
- [PushSlots](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-push-slots)
- [AvailableSlots](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-available-slots)
- [AvailableSlotsResponse](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-available-slots-response)
- [Booked](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-booked)
- [BookedResponse](/api-reference/redox-data-model-api/datamodels/scheduling/scheduling-booked-response)
