---
title: 'Appointment (FHIR R5)'
description: 'A booking of a healthcare event between patient(s) and practitioner(s) for a specific date/time. Maps to HuliPractice ap'
nav: 'API / R5 / Appointment'
order: 20
version: v1
fhir: r5
source: generated
updated: '2026-09-23'
---

# Appointment (FHIR R5)

<FhirResourceHeader fhir="r5" slug="appointment" />

A booking of a healthcare event between patient(s) and practitioner(s) for a specific date/time. Maps to HuliPractice appointment slots with start/end times, status, and participant references.

> This page is auto-generated from the server's FHIR R5 CapabilityStatement (`/fhir/R5/metadata`).

## FHIR R5 Specification

Official spec: [Appointment — HL7 FHIR R5](https://hl7.org/fhir/R5/appointment.html)

## Supported Interactions

- **read** — Read a single resource by ID (`GET /fhir/R5/{Resource}/{id}`)
- **search-type** — Search resources with query parameters (`GET /fhir/R5/{Resource}?...`)
- **create** — Create a new resource (`POST /fhir/R5/{Resource}`)
- **update** — Update an existing resource (`PUT /fhir/R5/{Resource}/{id}`)

<Callout variant="note">
Supports recurring appointments via the R5 `recurrenceTemplate` element: POST with a recurrenceTemplate creates a series. Series edits select scope with the `_recurrenceScope` query parameter (`this` | `this-and-following` | `all`) on the PUT; cancelling a series is a PUT with status=cancelled plus `_recurrenceScope`. GET/search echo the recurrenceTemplate and a `recurrence-pattern-id` extension for occurrences that belong to a series.
</Callout>

## Scopes

Scopes are shared across FHIR releases — the same `system/Appointment.*` scope grants Appointment access on both `/fhir/R4` and `/fhir/R5`.

- <Scope name="system/Appointment.rs" /> — see [scope reference](/v1/scopes#system-appointment-rs)
- <Scope name="system/Appointment.cru" /> — see [scope reference](/v1/scopes#system-appointment-cru)

## Search Parameters

| Parameter | Type | Notes |
|-----------|------|-------|
| `_id` | token | Exact match. For identifiers use `system|value` format. |
| `patient` | reference | Resource reference — supply the UUID of the referenced resource. |
| `practitioner` | reference | Resource reference — supply the UUID of the referenced resource. |
| `date` | date | Supports FHIR date prefixes: `eq`, `ne`, `gt`, `ge`, `lt`, `le`. Format: `[prefix]YYYY-MM-DD`. |
| `status` | token | Exact match. For identifiers use `system|value` format. |
| `appointment-type` | token | Exact match. For identifiers use `system|value` format. |
| `_count` | number | Integer. For `_count`: default 20, max 100. |
| `_cursor` | string | Case-insensitive partial match. |

## Endpoints

Operations, request/response examples, and code samples mirror the R4 surface — call them at `/fhir/R5` with the same token and scopes. See the [Appointment R4 reference](/v1/api/r4/appointment).
