# Retrieve a patient's appointment schedule

You can use this API action to look up a specific patient’s scheduled appointments. 

> **Prerequisite: Having a patient identifier**
>
> To use this API action, you must know the patient identifier. If you don’t have one, [search for a patient with demographics](/fhir-api-actions/patients/search-for-a-patient-by-demographics) to locate an appropriate identifier first.

## Use cases

This API action may be a good fit for your organization if you perform any of these use cases:

- Send reminders to patients for scheduled appointments.
- Prompt patients to schedule routine appointments (e.g., annual physicals).
- Schedule follow-up appointments for a patient.
- Review historical appointments for a patient.

So, you can think about using this for chronic management of a patient, not for urgent or dynamic scheduling. 

> **Not for scheduling appointments**
>
> This isn't what you'd use for scheduling a patient appointment. In that case, you'd want to look up a provider's schedule first, not retrieve a patient's appointments. 

## Supported systems

You can use this API action with the Redox FHIR API.

> **Talk to a Redoxer**
>
> It’s also possible to use the Redox Data Model API for this API action. [Talk to a Redoxer](https://redoxengine.com/forms/contact-us/) to learn about your options.

Your connection's system can return results with their own FHIR or query-based API. 

> **Using data on demand**
>
> Your connection's system may not support a query-based data exchange, but they may still be willing to provide results with a push-based method.
>
> However, we understand that you may not want to store all that data. Maybe you don't need _all_ the possible results and just want to query for what you want when you need it. If so, you can use this API action via our <u>data on demand</u> service, which stores the connection's data so that you can query from Redox "on demand." [Learn about data on demand](/basics/data-exchange-with-redox/data-on-demand).

## Things you need to know

<details>
<summary>Refining your search</summary>

Like with any query, you can refine your search using query parameters. If searching with a patient identifier, you might receive a patient’s appointments with different providers or locations within the same organization. Or you could combine query parameters to refine a search to a specific facility or with a specific provider. 

No matter how you search, you can only search and retrieve appointments for one organization at a time. If you want a schedule for multiple organizations, you must perform this API action for every organization that you’re interested in receiving data from.

</details>

<details>
<summary>Variation in scheduling practices</summary>

The philosophy for how to make and maintain a schedule in healthcare is a bit like the slogan for Reese's peanut butter cups: There’s no wrong way to make a schedule. In other words, scheduling isn’t standardized throughout the industry. 

What this means for you is that the details and the appointment types you receive back may be formatted very differently, depending on which connection it’s from. For example, one connection may have standardized appointments for a certain time zone, while another creates appointments in multiple time zones.

Make sure to account for this high degree of variation in scheduling formats and details for your own workflow needs. Check with your connection so that you know what to expect.

</details>

<details>
<summary>Sensible queries</summary>

Like sensible shoes, you only need a few targeted queries to retrieve the appointments you need. We recommend designing your system around the reason for needing appointments, then sequence your polling queries for appointment data based on outcomes.

For example, you could run a query at the beginning of each day for the next two weeks’ worth of appointments instead of re-running a query for that same data every five minutes.

</details>

> **What's next? **
>
> Does this API action seem like a good fit for your unique workflow? Let your Technical Account Manager know! To start development, download the resource schema noted in the related action step. Then decide which data elements you need.
>
> If you’re new to Redox, [use the Quickstart guide](/quickstart-for-redox) to dive in. If you’re not engaged with our sales team yet, [talk to a Redoxer](https://redoxengine.com/forms/contact-us/) to get started.
