Scheduling Booked

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.

Scheduling vs. SurgicalScheduling vs. PatientAdmin data models

Theres some overlap among these data models, but heres 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.

Booked

Query for booked times within a given time range. Results are returned in Scheduling.BookedResponse.

Required query parameters and populated response

The required elements and populated response vary depending on the EHR system you're integrating with. Work with your connection to understand which query parameters they require and what to expect in the response during implementation testing.

Data on demand enabled

This event type is available with data on demand. Learn more about data on demand.

Data on Demand Enabled

Request Body Schema

  • Meta
    required, object
    • DataModel
      required, string
      Reliable

      Scheduling

    • EventType
      required, string
      Reliable

      Booked

    • EventDateTime
      string, null
      Reliable

      Displays the UTC date and time that an outgoing request is delivered or an incoming request is received.
      ISO 8601 Format

    • Test
      boolean, null
      Reliable

      Indicates whether the request is a test or not.

    • Source
      object

      Contains the information for the system initiating the message, including the source ID and name.
      Included in messages from Redox

      • ID
        string, null
        Reliable

        Identifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
        UUID

      • Name
        string, null
        Reliable

        Displays the name of the system initiating the message.

    • Destinations
      Array of object

      Contains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
      Required when sending data to Redox.

      • ID
        string, null
        Reliable

        Identifies the endpoint that the request is directed to.
        UUID

      • Name
        string, null
        Reliable

        Displays the name of the endpoint that the request is directed to.

    • Logs
      Array of object

      Contains the log identifier(s) for the request.

      • ID
        string, null
        Reliable

        Identifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
        UUID

      • AttemptID
        string, null
        Reliable

        Identifies the request log attempt value, which is useful when retries are possible.
        UUID

    • FacilityCode
      string, null
      Possible

      Code for the facility related to the message.
      Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.

  • StartDateTime
    required, string
    Reliable

    Defines the start of the time range to search for appointments.
    ISO 8601 Format

  • EndDateTime
    string, null
    Possible

    Defines the end of the time range to search for appointments.
    ISO 8601 Format

  • Visit
    object
    • Reason
      string, null
      Reliable

      Indicates the appointment reason to search for.

    • VisitNumber
      string, null
      Possible

      Displays the unique identifier for the patient visit. You must query for a specific booked appointment by a known VisitNumber.

    • AttendingProviders
      Array of object
      • ID
        string, null
        Probable

        ID of the provider.
        This ID is often required for Inpatient Visits.

      • IDType
        string, null
        Probable

        ID type of the ID for the provider

      • FirstName
        string, null
        Possible

        First name of the provider

      • LastName
        string, null
        Possible

        Last name of the provider

      • Credentials
        Array of string

        List of credentials for the provider.
        e.g. MD, PhD

      • Address
        object

        Provider's address

        • StreetAddress
          string, null
          Possible

          Street address

        • City
          string, null
          Possible

          City

        • State
          string, null
          Possible

          State

        • ZIP
          string, null
          Possible

          ZIP

        • County
          string, null
          Possible

          County

        • Country
          string, null
          Possible
          Value Set

          Country

      • EmailAddresses
        Array of string

        Provider's email address(es)

      • PhoneNumber
        object
        • Office
          string, null
          Possible

          Provider's office phone number.
          In E. 164 Format. (e.g. +16085551234)

      • Location
        object

        Provider's location

        • Type
          string, null
          Possible

          Type of location.
          Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone

        • Facility
          string, null
          Possible

          Facility.
          Example: Community Hospital

        • FacilityIdentifiers
          Array of object

          List of IDs specific to this facility

          • ID
            string, null
            Possible

            An ID specific to this facility

          • IDType
            string, null
            Possible

            The source or system to which this ID pertains.
            Could be an OID or a human-readable name

        • Department
          string, null
          Possible

          Department

        • DepartmentIdentifiers
          Array of object

          List of IDs specific to this department

          • ID
            string, null
            Possible

            An ID specific to this department

          • IDType
            string, null
            Possible

            The source or system to which this ID pertains.
            Could be an OID or a human-readable name

        • Room
          string, null
          Possible

          Room.
          Example: 136

    • VisitProvider
      object
      • ID
        string, null
        Possible

        ID of the visit provider.
        This ID is often required for Inpatient Visits.

      • IDType
        string, null
        Possible

        ID type of the ID for the visit provider

      • FirstName
        string, null
        Possible

        First name of the visit provider

      • LastName
        string, null
        Possible

        Last name of the visit provider

      • Credentials
        Array of string

        List of credentials for the visit provider.
        e.g. MD, PhD

      • Address
        object

        Provider's address

        • StreetAddress
          string, null
          Possible

          Street address

        • City
          string, null
          Possible

          City

        • State
          string, null
          Possible

          State

        • ZIP
          string, null
          Possible

          ZIP

        • County
          string, null
          Possible

          County

        • Country
          string, null
          Possible
          Value Set

          Country

      • EmailAddresses
        Array of string

        Provider's email address(es)

      • PhoneNumber
        object
        • Office
          string, null
          Possible

          Provider's office phone number.
          In E. 164 Format. (e.g. +16085551234)

      • Location
        object

        Provider's location

        • Type
          string, null
          Possible

          Type of location.
          Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone

        • Facility
          string, null
          Possible

          Facility.
          Example: Community Hospital

        • FacilityIdentifiers
          Array of object

          List of IDs specific to this facility

          • ID
            string, null
            Possible

            An ID specific to this facility

          • IDType
            string, null
            Possible

            The source or system to which this ID pertains.
            Could be an OID or a human-readable name

        • Department
          string, null
          Possible

          Department

        • DepartmentIdentifiers
          Array of object

          List of IDs specific to this department

          • ID
            string, null
            Possible

            An ID specific to this department

          • IDType
            string, null
            Possible

            The source or system to which this ID pertains.
            Could be an OID or a human-readable name

        • Room
          string, null
          Possible

          Room.
          Example: 136

    • Location
      object

      Defines the location of the appointment.

      • Type
        string, null
        Probable

        Type of location.
        Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone

      • Facility
        string, null
        Probable

        Facility.
        Example: Community Hospital

      • FacilityIdentifiers
        Array of object

        List of IDs specific to this facility

        • ID
          string, null
          Probable

          An ID specific to this facility

        • IDType
          string, null
          Probable

          The source or system to which this ID pertains.
          Could be an OID or a human-readable name

      • Department
        string, null
        Probable

        Department

      • DepartmentIdentifiers
        Array of object

        List of IDs specific to this department

        • ID
          string, null
          Probable

          An ID specific to this department

        • IDType
          string, null
          Probable

          The source or system to which this ID pertains.
          Could be an OID or a human-readable name

      • Room
        string, null
        Probable

        Room.
        Example: 136

    • Patients
      Array of object

      Identifies the patient(s) for the appointment.

      • Identifiers
        Array of object

        Contains a list of identifiers and identifiers types that correlate to the patient.

        • ID
          string, null
          Probable

          Contains an identifier for the patient.

        • IDType
          string, null
          Probable

          Defines the type of the identifier used for the patient.
          E.g. MRN, EPI

Example
json
1
{
2
"Meta": {
3
"DataModel": "Scheduling",
4
"EventType": "Booked",
5
"EventDateTime": "2026-05-11T15:29:39.437Z",
6
"Test": true,
7
"Source": {
8
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
9
"Name": "Redox Dev Tools"
10
},
11
"Destinations": [
12
{
13
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
14
"Name": "Redox EMR"
15
}
16
],
17
"Logs": [
18
{
19
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
20
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
21
}
22
],
23
"FacilityCode": null
24
},
25
"StartDateTime": "2026-05-11T15:29:39.759Z",
26
"EndDateTime": null,
27
"Visit": {
28
"Reason": null,
29
"VisitNumber": null,
30
"AttendingProviders": [
31
{
32
"ID": "4356789876",
33
"IDType": "NPI",
34
"FirstName": "Pat",
35
"LastName": "Granite",
36
"Credentials": [
37
"MD"
38
],
39
"Address": {
40
"StreetAddress": "123 Main St.",
41
"City": "Madison",
42
"State": "WI",
43
"ZIP": "53703",
44
"County": "Dane",
45
"Country": "USA"
46
},
47
"EmailAddresses": [],
48
"PhoneNumber": {
49
"Office": "+16085551234"
50
},
51
"Location": {
52
"Type": null,
53
"Facility": null,
54
"FacilityIdentifiers": [],
55
"Department": null,
56
"DepartmentIdentifiers": [],
57
"Room": null
58
}
59
}
60
],
61
"VisitProvider": {
62
"ID": null,
63
"IDType": null,
64
"FirstName": null,
65
"LastName": null,
66
"Credentials": [],
67
"Address": {
68
"StreetAddress": null,
69
"City": null,
70
"State": null,
71
"ZIP": null,
72
"County": null,
73
"Country": null
74
},
75
"EmailAddresses": [],
76
"PhoneNumber": {
77
"Office": null
78
},
79
"Location": {
80
"Type": null,
81
"Facility": null,
82
"FacilityIdentifiers": [],
83
"Department": null,
84
"DepartmentIdentifiers": [],
85
"Room": null
86
}
87
},
88
"Location": {
89
"Type": null,
90
"Facility": null,
91
"FacilityIdentifiers": [],
92
"Department": null,
93
"DepartmentIdentifiers": [],
94
"Room": null
95
},
96
"Patients": [
97
{
98
"Identifiers": [
99
{
100
"ID": "0000000001",
101
"IDType": "MR"
102
},
103
{
104
"ID": "e167267c-16c9-4fe3-96ae-9cff5703e90a",
105
"IDType": "EHRID"
106
},
107
{
108
"ID": "a1d4ee8aba494ca",
109
"IDType": "NIST"
110
}
111
]
112
}
113
]
114
}
115
}

FHIR® is a registered trademark of Health Level Seven International (HL7) and is used with the permission of HL7. Use of this trademark does not constitute an endorsement of products/services by HL7®.