SMART Scheduling Links, published by HL7 International / Patient Administration. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/smart-scheduling-links/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/smart-scheduling-schedule | Version: 1.0.0-ballot | ||||
| Standards status: Trial-use | Maturity Level: 2 | Computable Name: SmartSchedulingSchedule | |||
Each line of the Schedule File is a minified JSON object that conveys information about a Schedule to which slots are attached. The Schedule represents a particular healthcare service (e.g., primary care appointments, specialist consultations, or procedures) offered at a specific location or by a specific practitioner role.
Example Usage Scenarios
Schedules can reference multiple actors in the actor array to provide more specific context about the healthcare service. Common patterns include:
When multiple actors are specified, all referenced resources apply to the schedule and its associated slots.
The following data elements must always be present or must be supported if the data is present in the sending system. They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.
Each Schedule Must Have:
Each Schedule Must Support:
Profile Specific Implementation Guidance:
Each Schedule object may optionally include extension JSON objects in the Schedule's extension array to provide additional context about the healthcare services offered. Common extensions might include:
Extensions should follow FHIR extension conventions and use appropriate extension URLs. Implementers may define custom extensions as needed for their specific use cases, following FHIR extension guidelines.
Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | boolean | Whether this schedule is in active use |
![]() ![]() |
SΣ | 1..* | CodeableConcept | Specific service Binding: ServiceType (example) |
![]() ![]() |
SΣ | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for |
![]() ![]() ![]() |
SΣC | 1..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
SΣ | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |
![]() ![]() |
S | 1..* | CodeableConcept | Specific service |
![]() ![]() |
S | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for |
![]() ![]() ![]() |
S | 1..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
S | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() |
?!Σ | 0..1 | boolean | Whether this schedule is in active use | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | High-level category Binding: ServiceCategory (example) | ||||
![]() ![]() |
SΣ | 1..* | CodeableConcept | Specific service Binding: ServiceType (example) | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Type of specialty needed Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty). | ||||
![]() ![]() |
SΣ | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SΣC | 1..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() |
Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | ||||
![]() ![]() ![]() |
Σ | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() |
SΣ | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() |
Σ | 0..1 | Period | Period of time covered by schedule | ||||
![]() ![]() |
0..1 | string | Comments on availability | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
| Schedule.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Schedule.actor.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
Summary
Mandatory: 2 elements
Must-Support: 4 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Maturity: 2
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | boolean | Whether this schedule is in active use |
![]() ![]() |
SΣ | 1..* | CodeableConcept | Specific service Binding: ServiceType (example) |
![]() ![]() |
SΣ | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for |
![]() ![]() ![]() |
SΣC | 1..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
SΣ | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
Differential View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |
![]() ![]() |
S | 1..* | CodeableConcept | Specific service |
![]() ![]() |
S | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for |
![]() ![]() ![]() |
S | 1..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
S | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
Snapshot ViewView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..* | Coding | Schedule Specialty URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/schedule-specialty | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | External Ids for this item | ||||
![]() ![]() |
?!Σ | 0..1 | boolean | Whether this schedule is in active use | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | High-level category Binding: ServiceCategory (example) | ||||
![]() ![]() |
SΣ | 1..* | CodeableConcept | Specific service Binding: ServiceType (example) | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Type of specialty needed Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty). | ||||
![]() ![]() |
SΣ | 1..* | Reference(Practitioner | PractitionerRole | Healthcare Service | Location | Patient | RelatedPerson | Device) | Resource(s) that availability information is being provided for | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SΣC | 1..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() |
Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | ||||
![]() ![]() ![]() |
Σ | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() |
SΣ | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() |
Σ | 0..1 | Period | Period of time covered by schedule | ||||
![]() ![]() |
0..1 | string | Comments on availability | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | example | Service type | 📍4.0.1 | FHIR Std. |
| Schedule.specialty | Base | preferred | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std. |
| Schedule.actor.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
Summary
Mandatory: 2 elements
Must-Support: 4 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Maturity: 2
Other representations of profile: CSV, Excel, Schematron