> ## Documentation Index
> Fetch the complete documentation index at: https://docs.routiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Appointment Scheduling

> Bookings, reschedules, cancellations across every channel — pulled live from your PMS, with cancellation-window rules built in.

<Info>
  **Why this matters.** Scheduling is the highest-volume thing your
  reception team does. Most calls, most texts, most emails are
  ultimately about an appointment. Get this one feature right and you
  recover the most reception time per dollar of any clinic automation.
</Info>

## How it works

Robyn reads real-time availability directly from your PMS's online-booking system. Whatever rules you've already configured — lead times, cluster bookings, practitioner schedules, location-specific services, appointment-type mappings — apply automatically.

This is intentional. You don't reconfigure your scheduling logic in Robyn — you reuse what's in your PMS. If you change a practitioner's hours in Cliniko, Robyn knows immediately.

## How Robyn handles scheduling

<CardGroup cols={2}>
  <Card title="New patient booking" icon="user-plus">
    No record on caller ID → Robyn captures intake fields you've configured (name, DOB, mobile, email, etc.), creates the patient record in the PMS, then books.
  </Card>

  <Card title="Returning patient booking" icon="user-check">
    Caller ID matches → Robyn skips intake, suggests slots based on patient history (last practitioner, last appointment type), books.
  </Card>

  <Card title="Reschedule" icon="calendar-arrow-right">
    Robyn looks up the patient's next appointment, suggests new slots, updates the PMS. **Marked as a reschedule, not cancel-then-rebook** — keeps your reporting clean.
  </Card>

  <Card title="Cancellation" icon="calendar-xmark">
    Robyn cancels in the PMS, frees the slot for waitlist patients, optionally marks DNA / charges a fee per your cancellation-window rules.
  </Card>
</CardGroup>

## What your patient sees

> **Patient (call):** Hi, can I move my Tuesday appointment to later in the week?
>
> **Robyn:** Sure — that's your 9am Tuesday with Dr Lin. I can see Thursday at 10am or Friday at 2pm available. Which works?
>
> **Patient:** Friday 2pm.
>
> **Robyn:** Done — moved to Friday 9th May at 2pm with Dr Lin. You'll get a confirmation in a moment.

## Cancellation-window rules

Most clinics apply a cancellation policy (e.g. \< 24 hours = fee, \< 2 hours = DNA). Configure in **Settings** → **Account Setup** → **Cancellation Window**:

<CardGroup cols={2}>
  <Card title="Block">
    Don't allow cancellations or reschedules within the window. Patient is told to call the clinic directly.
  </Card>

  <Card title="Warn of fee">
    Allow the action, but Robyn warns the patient about the cancellation fee. Customisable wording.
  </Card>

  <Card title="Auto-mark DNA">
    Allow the cancellation, but mark the appointment as Did Not Attend in the PMS so the practitioner sees the late-cancel pattern.
  </Card>

  <Card title="Combination">
    Mix: warn-of-fee inside 24h window, auto-DNA inside 2h window, block inside 30min window.
  </Card>
</CardGroup>

## Setup

<Steps>
  <Step title="Connect your PMS">
    Scheduling is automatic once your PMS is connected. See [Cliniko](/integrations/cliniko), [Nookal](/integrations/nookal), or [PracSuite](/integrations/pracsuite) setup guides.
  </Step>

  <Step title="Enable online bookings in your PMS">
    Robyn reads availability from the online-booking portal. Make sure:

    * **Online bookings** is enabled at the account level
    * Each **practitioner** is enabled for online bookings
    * Each **location** is enabled for online bookings
    * Each **appointment type** you want bookable has online-booking enabled

    Pages with the per-PMS walkthrough: [Cliniko](/integrations/cliniko#enable-online-bookings) · [Nookal](/integrations/nookal) · [PracSuite](/integrations/pracsuite).
  </Step>

  <Step title="Configure intake fields">
    **Settings** → **Account Setup** → **Patient Fields**. Toggle which fields Robyn captures for new patients:

    * Required by default: name, mobile, email
    * Optional: DOB, gender, address, GP, Medicare number, referral source, emergency contact

    The fields you enable here apply across all channels (call, SMS, email, widget).
  </Step>

  <Step title="Configure cancellation window">
    **Settings** → **Account Setup** → **Cancellation Window**. Set the window length, the action (block / warn / DNA / combo), and customise the wording patients hear.

    <Tip>
      Most clinics start with **warn of fee inside 24h** — gentle, doesn't frustrate patients with hard blocks, but signals the policy clearly.
    </Tip>
  </Step>

  <Step title="(Optional) Set lead-time minimums">
    By default, Robyn books any future slot your PMS allows. To prevent same-hour bookings (which can stress your team), set a minimum lead time in **Settings** → **Account Setup** → **Lead Time** — e.g. 60 minutes.
  </Step>
</Steps>

## Patient experience consistency

Same scheduling logic runs across every channel:

| Channel            | Booking flow                                                          |
| ------------------ | --------------------------------------------------------------------- |
| **Call**           | Real-time conversation, Robyn speaks the slots                        |
| **SMS**            | Robyn texts up to 3 slot options at a time                            |
| **Email**          | Robyn drafts a reply with bullet-list of slots                        |
| **Website widget** | Robyn shows a quick-pick UI with the next 3 slots, falls back to text |
| **WhatsApp**       | Bounded template-based flow (post-Jan 2026 Meta rules)                |

## Common questions

<AccordionGroup>
  <Accordion title="What if a patient wants to book with a specific practitioner?">
    Robyn handles it. She matches names to practitioners in your PMS, checks that practitioner's availability, suggests their slots. If the patient asks for someone who doesn't exist or isn't taking new patients, Robyn explains and offers alternatives.
  </Accordion>

  <Accordion title="Can Robyn book for multiple appointment types in one conversation?">
    Yes — e.g. "I want to book initial consult plus a follow-up two weeks later." Robyn reads availability for both, suggests pairs of slots, books both transactionally.
  </Accordion>

  <Accordion title="What if the PMS goes down?">
    Robyn keeps answering calls and capturing intake. Bookings queue locally and sync as soon as the PMS is reachable. The patient never sees the outage — they get a confirmation message saying "I've got that down — you'll see the booking confirmed within a few minutes."
  </Accordion>

  <Accordion title="Can I prevent Robyn from offering certain slots (e.g. lunch breaks)?">
    Yes — in your PMS, just block those times the way you would for any other reason. Robyn reads the PMS as the source of truth.
  </Accordion>

  <Accordion title="What if two patients try to book the same slot at the same time?">
    Robyn uses the PMS's optimistic locking. Whoever's booking transaction lands first wins; the other patient gets the next-best slot offered.
  </Accordion>
</AccordionGroup>

## Next

<CardGroup cols={2}>
  <Card title="Knowledge base" icon="book" href="/features/knowledge-base">
    So Robyn can answer "what does this appointment type involve?" while booking.
  </Card>

  <Card title="Appointment confirmations" icon="check-double" href="/outbound/appointment-confirmations">
    Two-way confirmation flows that reduce no-shows after the booking is made.
  </Card>
</CardGroup>
