Skip to main content


Scheduling platform that supports clinical workflows such as clinician or location filtering, patient slot selection, custom notifications, pre-appointment forms and more. Medplum supports the full range of scheduling scenarios from very simple single schedule with slots, to a complex scheduling requirements with facilities, equipment and constraints requirements.

Scheduling Art


The Medplum scheduling implementation is a very standards compliant implementation of the FHIR Schedule. It has the following features.

  • Schedule creation: create a schedule on or via API. Associate the appropriate metadata with the schedule, for example, what service type, location and practitioner is associated with this schedule.
  • Slot creation: once a schedule is in place, creating slots at a certain time is the next step. Slots are commonly created via API, but can also be made on Slots belong to a schedule and represent an opening on that schedule that can be booked.
  • Calendar scheduler for patients: when allowing patients to book their appointments you can embed a schedule in your application that corresponds to a schedule. Here is the React component. When the patient selects a slot, create an appointment that references that slot programmatically and mark the Slot.status=busy and create an Appointment that references that slot. An appointment can take one or more slots.
  • Embedded questionnaires: you can require patients to fill out a questionnaire before scheduling, and to do so embed the questionnaire in the React component. The filled out questionnaire will be available as a FHIR QuestionnaireResponse.
  • Schedule search: It's common to require that a patient be matched to a provider in a specific location or with a specific credential. Use the search API to match a schedule to a patient as needed.

Common Configurations

When enabling scheduling by patients or referring physicians, it's critical that scheduling is only enabled under the correct conditions.

  • Geographic scheduling: Medplum supports searching for schedules by location, and using that feature can ensure that patients are matched with providers in the appropriate location.
  • Scheduling for a specific doctor or practitioner: schedule search can ensure that a patient only meets with their practitioner or CareTeam. (See in documentation.)
  • Requiring a form, payment active insurance to be filled out before scheduling an appointment can be accomplished by showing users schedules or allowing them to book slots only when data is complete and verified.
  • Best Practices for billing include tagging schedules and appointments with the appropriate service type
  • Reminders and communications regarding scheduling can be implemented using bots, and SMS reminders, emails, and calendar appointments are common.
  • Video conferencing for virtual care is common and providers use the a one "meeting room with waiting area" per schedule model to provide a streamlined experience for providers, for example one Zoom Meeting Room per schedule.

FHIR Resources

ResourceApp LinkCreate NewAPI Documentation
ScheduleView AllCreate NewAPI
SlotView AllCreate via API or workflowAPI
AppointmentView AllCreate via API or workflowAPI

In general one Schedule has many Slots, one Appointment takes one or more Slots.

Demos and Reference Material