Why the scheduler is built the way it is

The scheduler at Appointments is the screen most staff spend the majority of their working day in, so it's built around speed above almost everything else. Nearly every action — booking, moving, resizing, checking a patient in, cancelling a visit — happens directly on the calendar grid or in a lightweight drawer/modal layered over it. You're rarely asked to navigate away from the calendar to get something done, because every navigation away is a moment where the front desk loses track of what's happening in the waiting room.

That design goal shows up in specific details covered throughout this article: drag-and-drop instead of edit forms for moving a visit, a compact ticket-style modal instead of a full page for appointment details, and color and iconography carrying information (telehealth, home-visit, cancelled, completed) that would otherwise require reading text on a busy screen.

What you'll learn
  • The three calendar views and when each one earns its keep
  • How to create an appointment, step by step
  • How drag-and-drop moving and resizing work, including the safeguards built in
  • What's inside the ticket-style appointment detail modal
  • How status actions and telehealth-specific controls work
  • What every color and badge on the grid means at a glance
  • The conditional fields you'll only see in certain situations, and why
ClinyPal appointment scheduler, Week view
The Appointments scheduler in Week view, showing the practitioner columns, colored appointment blocks, the current-time line, and the view switcher (Week / Day / Now) in the header.

Three views for three different jobs

The scheduler doesn't try to force one layout to serve every situation. Planning next week's staffing calls for a different view than triaging who's sitting in the waiting room right now, so the scheduler gives you three distinct views and lets you switch between them freely.

  • <strong>Week</strong> — the full week as a grid, one column per day. Best for forward planning: spotting gaps later in the week, confirming a recurring series lands where expected, or getting a sense of overall load. Includes a <strong>Hide weekends</strong> toggle to narrow the view to weekdays when your clinic doesn't open Saturday or Sunday.
  • <strong>Day</strong> — a single day, with one column per practitioner instead of per day. Best when you need to compare practitioners side by side — for example, finding the next available slot with any of three practitioners this afternoon.
  • <strong>Now</strong> — a triage-style list rather than a grid, grouped into buckets: Overdue, No show, Arrived-waiting, In session, Up next, Upcoming, Scheduled, and Cancelled. Best for the front desk during a live shift, where the question isn't "what does the week look like" but "who is sitting in front of me right now, and who's next."

In Now view, each bucket has a colored dot indicator and a clickable count "pill." Clicking a pill jump-scrolls the list down to that bucket, which is genuinely useful during a rush — a receptionist fielding a phone call can glance at the Arrived-waiting pill's count without scanning the whole list, and jump straight to it the moment they're off the phone.

ClinyPal Now view triage list
The Now view showing the triage list with colored dot indicators and count pills for Overdue, No show, Arrived-waiting, In session, Up next, Upcoming, Scheduled, and Cancelled.
Now view earns its place on a busy front desk Week and Day views answer "what's the plan." Now view answers "what do I do next," which is the more common question during actual clinic hours. Staff who only ever use Week view often don't realize how much faster Now view makes a busy morning until they try it.

Creating an appointment

Booking is designed to happen without leaving the calendar. The steps below are genuinely sequential — each field depends on a choice made in the one before it, which is why the drawer reveals fields progressively rather than showing everything at once.

1

Click an empty slot

Click any open slot on the calendar grid. The appointment drawer opens pre-filled with that date, time, and practitioner.

2

Choose or add a patient

If no patient is pre-selected, a searchable patient picker modal opens so you can find an existing patient or add a new one inline without leaving the flow.

3

Confirm the practitioner

The Appointment Type dropdown stays disabled until a practitioner is chosen, since types are scoped per practitioner.

4

Choose an appointment type

Once a practitioner is selected, the Appointment Type dropdown enables and its options are filtered to only that practitioner's types.

5

Review the Mode field

Once an appointment type is selected, a read-only Mode field appears, showing the mode derived from that type (for example, in-person or telehealth).

6

Set repeat, if needed

Choosing a repeat option other than "No repeat" reveals a Repeat Until date field to bound the series.

7

Save

Save the appointment. A toast confirms success or reports a failure so you're never left guessing whether the booking actually went through.

Waitlist button is conditional A Waitlist button appears in the drawer footer only when you're creating a brand-new appointment and a patient is already selected. It doesn't appear when editing an existing appointment — instead, a Delete button appears in that case. See <a href="/scheduling/managing-the-waitlist/">Managing the Waitlist</a> for what happens after a patient is added.
Repeat section on recurring occurrences When you edit a single occurrence of a recurring appointment, the Repeat section is hidden and replaced with a note: "Part of a recurring series — repeat settings are managed on the original appointment."

The progressive disabling of Appointment Type until a practitioner is picked isn't an arbitrary restriction — it prevents a specific, common mistake: booking a patient into a type of visit (say, a 60-minute initial consult) with a practitioner who doesn't actually offer that type, which would otherwise create a confusing booking that has to be caught and corrected later.

Moving an appointment with drag-and-drop

Click and hold an appointment block, then drag it to move it. For a front desk juggling a schedule that shifts constantly through the day — a patient calls to push their visit back thirty minutes, a practitioner runs long and everything behind them needs to shuffle — drag-and-drop turns what would otherwise be a multi-field edit form into a single fluid motion, which matters when you're doing it a dozen times a day.

  • Dragging <strong>vertically</strong> changes the appointment's time, snapping to the clinic's configured slot size (for example, 15 minutes), so you can't accidentally drop an appointment a minute or two off-grid.
  • Dragging <strong>horizontally</strong> changes the day in Week view, or the practitioner in Day view — useful for reassigning a visit to a colleague without reopening the booking.
  • A "ghost" outline stays behind at the original slot while you drag, so you always have a visual reference for where the appointment is moving from, in case you change your mind mid-drag.
  • Dragging near the edge of the grid auto-scrolls it, so you can move an appointment to a time or day beyond what's currently visible on screen without cancelling the drag first.
  • Releasing on the same slot you started from doesn't move anything — it just opens the appointment detail modal instead, so an accidental click-and-release is never mistaken for an intentional move.
Cancelled appointments are locked Cancelled appointments can't be dragged or resized. If you need to reschedule instead of cancel, don't cancel first — move or edit the active appointment directly, since a cancelled one is deliberately frozen in place.

A toast confirms a successful move or reports a failure, so a dropped connection or a save conflict never leaves the schedule in a silently wrong state — you'll always know whether the move actually took effect.

Resizing an appointment

Each appointment block has a small resize handle at the bottom edge. Drag it to change the end time — like moving, it snaps to the clinic's grid size, so a visit that runs a little long can be extended to the nearest sensible increment rather than an arbitrary minute. As with moving, cancelled appointments can't be resized, for the same reason: a cancelled booking is frozen, not an active visit you're still adjusting.

Inside the appointment detail modal

Clicking an appointment block without dragging opens a ticket-style detail modal — deliberately compact, showing the time, patient avatar, and duration at the top, along with a row of icon buttons for the actions you're most likely to take next.

ButtonWhat it does
Book anotherDuplicates the appointment to book a similar one quickly, useful for a patient booking a follow-up on the spot
EditOpens the appointment drawer to change details such as time, practitioner, or type
CancelReveals an inline reason textarea and a confirm step, with an optional "cancel all future" checkbox for recurring series
PaymentJumps to the related invoice, so you can take payment without leaving the appointment context
NotesJumps to treatment notes for the visit; hidden once notes are marked done, since there's nothing further to jump to
ArchiveArchives the appointment, removing it from active views without deleting its history
Appointment detail modal
The ticket-style appointment detail modal, showing the patient avatar, time and duration, the row of icon buttons (Book another, Edit, Cancel, Payment, Notes, Archive), and the status action buttons below.

Moving an appointment through its status lifecycle

Below the icon buttons, status actions move the appointment through its lifecycle — from booked, to arrived, to in session, to completed. This lifecycle is what powers the Now view buckets described earlier: an appointment marked Arrived moves into the Arrived-waiting bucket automatically, without any separate step.

Status controls change based on appointment type A two-button segmented control lets you mark Arrived / Did not arrive — for telehealth appointments these relabel to "Patient joined" / "Did not join," since there's no physical arrival to record. A Start session button only appears once the patient has arrived, and only for in-person or home-visit appointments; it's hidden for telehealth, which tracks session start automatically via the call. A Mark completed button is available to close out the visit.
Telehealth-only controls For telehealth appointment types, an additional row shows Resend link and Join call buttons, letting you re-send the patient's call link or join the session directly from the modal. See <a href="/telehealth/running-a-telehealth-session-doctor-side/">Running a Telehealth Session (Doctor Side)</a> for what happens after you join.

The relabeling and hiding of controls per appointment mode isn't cosmetic — it removes buttons that would otherwise be actively misleading. A telehealth visit has no "Start session" to click manually because the call itself is the session; showing that button anyway would invite staff to click something that does nothing meaningful.

Reading the grid at a glance: color and badges

During a busy morning, nobody has time to click into every appointment to know what it is. The grid is built so the answer to "what's this, and does it need my attention" is visible from across the room.

  • Each appointment type has its own color, shown as a left accent bar and matching text on the block — so a New Patient Consult and a Follow-up are visually distinct without reading either label.
  • Cancelled appointments render grayscale and faded, so they read instantly as "no longer happening" rather than needing a second look.
  • Completed appointments show a checkmark badge and appear dimmed, distinguishing "done" from "still to come" without a status column.
  • Telehealth appointments carry a small camera icon badge.
  • Home-visit appointments carry a small house icon badge.
  • A live line marks the current time across the grid, moving in real time so you always know where "now" sits relative to the day's bookings.
  • Practitioner availability is shaded with hatched bands over non-working hours and breaks, so you can see at a glance where booking isn't expected, before you even try to drop an appointment there.
Appointment color coding and availability shading
A close-up of the calendar grid showing several appointment blocks in different type colors, one grayscale cancelled block, one dimmed completed block with a checkmark badge, a telehealth block with a camera icon, and hatched availability shading over a practitioner's lunch break.

Because appointment type colors are configured once in Settings and then apply everywhere, getting your clinic's type list right up front pays off every single day afterward on the grid. See Appointment Types (Settings) for how to set colors and other type fields.

Common mistakes this design prevents

A few of the scheduler's behaviors exist specifically because they head off mistakes that were common on simpler calendar tools. Locking cancelled appointments from dragging or resizing prevents a cancelled slot from being accidentally reused as if it were a live booking. Filtering Appointment Type by the selected practitioner prevents booking a visit type a practitioner doesn't actually perform. The ghost outline during a drag prevents losing track of an appointment's original slot mid-move, which matters most when a phone rings in the middle of rescheduling something.

Availability shading is the quietest of these safeguards but arguably the most valuable day to day — it turns "did I just double-book someone's lunch" from a question you find out the hard way into something you can see before you click.

FAQ

Was this article helpful?
Your feedback helps us improve our documentation.
Rate this article: