Slot
Overview
Purpose
The Slot resource represents a specific time period within a Schedule that can be booked for an appointment. Slots define the granular availability for healthcare services, practitioners, or locations, indicating whether each time period is free, busy, or otherwise unavailable.
Use Cases
- Find available appointment times for booking
- Check slot availability for specific practitioners or locations
- Support appointment scheduling workflows
- Display real-time availability to patients
Relationships
- Schedule - Slots belong to a parent Schedule resource
- Appointment - Booked appointments reference specific slots
- Practitioner - Slots may be associated with specific practitioners
- Location - Slots define availability at specific locations
- HealthcareService - Slots can be linked to specific services
Resource Schema
Key Fields
- id - Unique identifier for the slot
- schedule - Reference to the parent Schedule
- status - Availability status (free, busy, busy-unavailable, busy-tentative, entered-in-error)
- start - Start time of the slot
- end - End time of the slot
- overbooked - Indicates if the slot is overbooked
- comment - Additional information about the slot
JSON Example
{
"resourceType": "Slot",
"id": "slot-456",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2026-03-15T09:00:00Z",
"end": "2026-03-15T09:30:00Z",
"overbooked": false,
"comment": "30-minute appointment slot"
}
Operations
Read
Retrieve a specific slot by ID.
- Production
- Preview
GET /Slot/{id}
Example Request
curl -X GET https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/slot-456 \
-H "Accept: application/fhir+json"
GET /Slot/{id}
Example Request
curl -X GET https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/slot-456 \
-H "Accept: application/fhir+json"
Search
Search for slots using various criteria.
- Production
- Preview
GET /Slot?parameter=value
POST /Slot/_search
GET /Slot?parameter=value
POST /Slot/_search
Search Parameters
Patient-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
schedule | reference | No | Reference to parent Schedule | schedule=Schedule/schedule-123 |
start | date | No | Slot start time | start=ge2026-03-15T09:00:00Z |
status | token | No | Slot availability status | status=free |
_count | number | No | Number of results per page | _count=20 |
_lastUpdated | date | No | Only return resources which were last updated as specified by the given range | _lastUpdated=ge2026-01-01 |
_revinclude | special | No | Include Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target" | _revinclude=Provenance:target |
ID-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
_id | token | Yes | Slot ID | _id=slot-456 |
_count | number | No | Number of results per page | _count=20 |
_lastUpdated | date | No | Only return resources which were last updated as specified by the given range | _lastUpdated=ge2026-01-01 |
_revinclude | special | No | Include Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target" | _revinclude=Provenance:target |
Create
Create a new Slot resource.
- Production
- Preview
POST /Slot
POST /Slot
Update
Update an existing Slot resource by its ID.
- Production
- Preview
PUT /Slot/{id}
PUT /Slot/{id}
Examples
Request Examples
- Production
- Preview
Search by schedule
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "schedule=Schedule/schedule-123&status=free"
Search by date range
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "start=ge2026-03-15T09:00:00Z&start=le2026-03-15T17:00:00Z&status=free"
Search by status
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "status=free&_count=10"
Search by schedule
curl -X POST https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "schedule=Schedule/schedule-123&status=free"
Search by date range
curl -X POST https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "start=ge2026-03-15T09:00:00Z&start=le2026-03-15T17:00:00Z&status=free"
Search by status
curl -X POST https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/_search \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "status=free&_count=10"
Response Examples
Successful Search Response
Slot Search Bundle
{
"resourceType": "Bundle",
"type": "searchset",
"total": 2,
"entry": [
{
"resource": {
"resourceType": "Slot",
"id": "slot-456",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2026-03-15T09:00:00Z",
"end": "2026-03-15T09:30:00Z",
"overbooked": false,
"comment": "30-minute appointment slot"
}
},
{
"resource": {
"resourceType": "Slot",
"id": "slot-457",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2026-03-15T09:30:00Z",
"end": "2026-03-15T10:00:00Z",
"overbooked": false,
"comment": "30-minute appointment slot"
}
}
]
}
Individual Slot Response
Single Slot Resource
{
"resourceType": "Slot",
"id": "slot-789",
"schedule": {
"reference": "Schedule/schedule-456"
},
"status": "busy",
"start": "2026-03-15T14:00:00Z",
"end": "2026-03-15T14:30:00Z",
"overbooked": false,
"comment": "Booked appointment"
}
Empty Result Set
No Slots Found
{
"resourceType": "Bundle",
"type": "searchset",
"total": 0,
"entry": []
}
Create
- Production
- Preview
Create Slot
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Slot",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2024-03-15T09:00:00Z",
"end": "2024-03-15T09:30:00Z"
}'
Create Slot
curl -X POST https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Slot",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2024-03-15T09:00:00Z",
"end": "2024-03-15T09:30:00Z"
}'
Update
- Production
- Preview
Update Slot
curl -X PUT https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/{id} \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Slot",
"id": "{id}",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2024-03-15T09:00:00Z",
"end": "2024-03-15T09:30:00Z"
}'
Update Slot
curl -X PUT https://fhirtest.netsmartcloud.com/provider/system-access/v2/{tenant-id}/Slot/{id} \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "Slot",
"id": "{id}",
"schedule": {
"reference": "Schedule/schedule-123"
},
"status": "free",
"start": "2024-03-15T09:00:00Z",
"end": "2024-03-15T09:30:00Z"
}'
Integration Patterns
Common Workflows
1. Find and Book Available Appointment
# Step 1: Search for practitioner's schedule
GET /Schedule?actor=Practitioner/practitioner-123&active=true
# Step 2: Find available slots for the schedule
GET /Slot?schedule=Schedule/schedule-123&status=free&start=ge2026-03-15
# Step 3: Book an appointment using an available slot
POST /Appointment
2. Check Availability for Date Range
# Step 1: Search for location schedule
GET /Schedule?actor=Location/loc-456&date=ge2026-03-15
# Step 2: Get free slots within date range
GET /Slot?schedule=Schedule/schedule-789&status=free&start=ge2026-03-15T08:00:00Z&start=le2026-03-15T17:00:00Z
# Step 3: Display available times to user
Related Resources
- Schedule - Parent container that organizes slots
- Appointment - Booked appointments that reference slots
- Practitioner - Healthcare providers whose availability is represented by slots
- Location - Physical locations where slot appointments occur
- HealthcareService - Services available during slot times
Error Handling
The Slot resource follows standard FHIR error handling patterns. For detailed error responses and troubleshooting guidance, see the Common Errors page.
Slot-Specific Error Scenarios
- 404 Not Found: Slot ID doesn't exist or has been deleted
- 400 Bad Request: Invalid search parameters or malformed date formats
- Empty Results: No slots match the search criteria
Troubleshooting Tips
- Empty Results: Verify the schedule reference exists and has slots defined
- Invalid Date Format: Ensure dates follow ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ)
- Performance Issues: Use date range filters to limit result sets