Appointment Reminder & Rebooking

by Telenow AI

Confirm appointments by call and automatically rebook a cancellation from your waitlist before the slot goes cold.

healthcareNative
Install Appointment Reminder & RebookingReviewed & approved · install free · connect your tools
1.1.0
Version
9
Tools

Last updated 2026-07-12

Screenshots

Live dashboard — outcomes, KPIs & status mix
Live dashboard — outcomes, KPIs & status mix
Appointments
Appointments
Waitlist
Waitlist
Guided setup — create the agent & connect your data
Guided setup — create the agent & connect your data

About Appointment Reminder & Rebooking

Appointment Reminder & Rebooking

Confirm every appointment by phone and auto-rebook a cancellation from your waitlist — before the slot goes cold.

Built on the Telenow App Platform as a pure declarative app: the data model, the agent tools, the scheduler webhook, the reminder + backfill workflows, the two multilingual agents, and the clinic playbook knowledge base all run on-platform. No external server.

The problem (and the number)

No-shows cost U.S. healthcare an estimated ~$150B a year, and every empty chair is worth $200+ in lost clinician time — plus care denied to someone who is waiting. The single biggest lever is a live confirmation call: appointments confirmed by phone no-show around 3%, versus about 39% for unconfirmed ones. And when a patient does cancel, the slot is only recovered if you reach the next person on the waitlist fast — before it goes cold.

Appointment Reminder & Rebooking does both automatically, in the patient's own language.

How it works

Scheduler / PMS  ──(appointment created webhook)──►  appointment object (status: booked)
       │                                                     │
       │                                          fires object.appointment.created
       ▼                                                     ▼
  dedupe on phone                                confirm_reminder workflow
                                                   ├─ short delay
                                                   └─ outbound-call  {{settings.confirm_agent_id}}
                                                         → dials {{trigger.data.phone}}
                                                         → find_appointment → confirm / reschedule / cancel
                                                                                     │
                                        on cancel or reschedule ► create_opening ◄───┘
                                                                     │
                                                       fires object.slot_opening.created
                                                                     ▼
                                                          backfill_slot workflow
                                                            └─ outbound-call  {{settings.waitlist_agent_id}}
                                                                  → dials {{trigger.data.offer_phone}} (next on waitlist)
                                                                  → offer_waitlist → fill_slot  ✅ recovered slot

The cancel → slot_opening → backfill loop

This is the heart of Appointment Reminder & Rebooking. A cancellation is not a dead end — it is a fresh slot to sell:

  1. A patient cancels (on the confirmation call, or via the Cancel & backfill button on the Appointments page). The appointment is marked cancelled.
  2. A slot_opening row is created for that provider + time, pointed at the highest-priority waiting patient (offer_phone). The UI picks the top waitlist entry that prefers the same provider; the confirmation agent can also open the slot mid-call with create_opening.
  3. Creating the opening fires object.slot_opening.created, which runs the backfill_slot workflow: the Waitlist Backfill Agent calls offer_phone and offers the freed slot.
  4. If the patient accepts, the agent calls fill_slot — the opening flips to filled and shows up on the dashboard as a recovered slot worth ~$200.

Everything the agents do on a call updates the same rows you see on the dashboard — and the dashboard's Call now / Call to offer buttons dial through the same agents and tools.

Agent tools (used mid-call — all declarative)

ToolDoesHandler
find_appointmentLook up the caller's appointment by phoneobject.query appointment
confirm_apptPatient will attend — lock it inobject.update appointment (match phone → status confirmed)
reschedule_apptPatient wants a different time — release the slotobject.update appointment (match phone → status rescheduled)
cancel_apptPatient can't come — release the slotobject.update appointment (match phone → status cancelled)
create_openingOpen the freed slot for backfillobject.create slot_opening
find_waitlistLook up the waitlist patient by phoneobject.query waitlist_entry
offer_waitlistWaitlist patient has been offered the slotobject.update waitlist_entry (match phone → status offered)
fill_slotWaitlist patient accepted — recovered slotobject.update slot_opening (match offer_phone → status filled)
book_waitlistWaitlist patient booked — off the queueobject.update waitlist_entry (match phone → status filled)

Bundled agents

  • Appointment Confirmation Agent (confirm-agent) — a multilingual multi-context flow: a deterministic find_appointment lookup node (looks the caller up in this app's data) → a conversation node that confirms, reschedules, or cancels, and opens the freed slot for backfill on a cancellation.
  • Waitlist Backfill Agent (waitlist-agent) — looks up the waitlist entry, offers the freed slot, and books the patient in with fill_slot.

Both auto-attach this app's tools and the clinic-playbook knowledge base. STT/TTS default to Deepgram + ElevenLabs; switch to Sarvam for vernacular Indian clinics in the agent builder.

Dashboard pages

  • Appointment Reminder & Rebooking (dashboard) — KPI tiles (projected no-show rate, confirmed, recovered slots, est. recovered revenue, waitlist waiting), an appointment-status mix bar, an upcoming-appointments table, and a "backfill loop" panel. Also powers the platform dashboard_widget slot in a compact form.
  • Appointments — filter by status, search, and per-row Call now (confirmation call), Confirm, and Cancel & backfill (releases the slot and offers it to the waitlist).
  • Waitlist — the priority queue with open-slot counts and a Call to offer button that dials the waitlist agent.
  • Setup — a configuration checklist, one-click Create confirmation agent / Create waitlist agent, and the post-install wiring steps.

Knowledge base

clinic-playbook ships four real scripts the agents answer from: appointment confirmation script, handling a reschedule, cancellation / late-arrival / no-show policy, and waitlist backfill offer script.

Install & post-install wiring

  1. Install Appointment Reminder & Rebooking into your org.
  2. Open SetupCreate confirmation agent and Create waitlist agent (builds the bundled agents, auto-wired to the tools + KB).
  3. Copy each new agent's ID into the app's settings: Confirmation agent ID (confirm_agent_id, required) and Waitlist agent ID (waitlist_agent_id, optional) so confirm_reminder and backfill_slot can dial.
  4. (Optional) Set Reminder window (hours) (reminder_hours, default 48) — how long before the appointment your reminder campaign dials.
  5. Point your scheduler / practice-management system's appointment created webhook at the inbound hook scheduler_webhook. New appointments now flow in (deduped on phone) and auto-dial to confirm.

Settings

KeyTypeNotes
confirm_agent_idtext (required)The agent the reminder workflow + "Call now" dial.
waitlist_agent_idtextThe agent the backfill workflow + "Call to offer" dial (falls back to the confirmation agent).
reminder_hoursnumberHours before the appointment the reminder campaign dials (default 48).

Bulk dialing your day

The real-time path (webhook → workflow → call) covers new appointments. To remind a whole day's list at once, use the app-key campaign API:

POST /api/app-campaigns
{ "agentId": "<confirm agent id>",
  "targetQuery": { "status": "booked" },     // over the `appointment` object
  "result": { ... write-back ... } }

It dials every unconfirmed patient the configured reminder_hours before their slot.

Monetization

Appointment Reminder & Rebooking is billed on outcomes, not seats:

  • Per confirmed slot — a small fee for each appointment the agent confirms by phone, since each avoided a likely no-show (39% → 3%).
  • Per recovered slot — a higher fee for each cancellation that gets backfilled from the waitlist (fill_slot), because that slot — worth ~$200 — would otherwise have gone empty.

Confirmations kept and slots recovered are surfaced on the dashboard as dollars saved, so the ROI is obvious every day.

Ready-made agents it ships

Appointment Confirmation Agentmulti-step flow

A multilingual agent that calls patients to confirm their upcoming appointment, reschedule it, or cancel it — and on a cancellation opens the freed slot so it can be backfilled from the waitlist.

Waitlist Backfill Agentmulti-step flow

Calls the next patient on the waitlist when a slot opens up, offers them the freed appointment time, and books them in — turning a cancellation into a kept slot.

What your agents can do with it

find_appointment

Look up the caller's appointment by their phone number so you can read back the date, time, and provider before confirming.

find_waitlist

Look up the waitlist patient's entry by their phone number so you can greet them and offer the freed slot with their preferred provider.

confirm_appt

Mark the caller's appointment as CONFIRMED once they say they will attend at the scheduled time.

cancel_appt

Mark the caller's appointment as CANCELLED when they can no longer attend. Optionally capture the reason. After cancelling, call create_opening so the freed slot can be backfilled from the waitlist.

reschedule_appt

Mark the caller's appointment as RESCHEDULED when they want a different day or time (they are keeping their care, just moving it). After marking it rescheduled, call create_opening so the freed original slot can be backfilled from the waitlist while the office arranges a new time.

create_opening

Open the freed slot for backfill after a cancellation or reschedule. Records the provider and slot time so the waitlist backfill workflow can offer it to the next patient.

offer_waitlist

Mark a waitlist patient as OFFERED once you have called to offer them a freed slot.

fill_slot

Mark the freed slot as FILLED once a waitlist patient accepts it. This closes the backfill loop and counts as a recovered slot.

book_waitlist

Mark the waitlist patient as FILLED once they accept the freed slot and you have booked them in — so they are taken off the waiting queue and never offered another slot by mistake. Call this together with fill_slot when a waitlist patient says yes.

Data it manages

Appointment Waitlist entry Slot opening

Permissions it requests

Apps run inside your workspace under least-privilege scopes you can see up front. This app asks for:

Store & manage “appointment” records in your workspace
objects:appointment
Store & manage “waitlist_entry” records in your workspace
objects:waitlist_entry
Store & manage “slot_opening” records in your workspace
objects:slot_opening
Read your agents' configuration
agents:read
Place phone calls on your behalf
calls:initiate
Read calls of agents this app is connected to
calls:read
ai:llm
ai:llm
View your outbound campaigns
campaigns:read
See your name and email
user:profile

What's new in v1.1.0

Changelog

1.1.0 — 2026-07-12

  • Renamed to Appointment Reminder & Rebooking (business-friendly) with a marketplace icon.
  • Added real UI screenshots (dashboard + key pages).
  • Added reschedule_appt and book_waitlist; removed the unreachable completed status.
  • Verified end-to-end loop closure: trigger → workflow → call → agent tools → write-back → dashboard.

1.0.0

  • Initial release.
  • Data model: appointment (patient, phone, slot_start, provider, reason, status) with upcoming / unconfirmed / cancelled saved views; waitlist_entry (patient, phone, preferred_provider, priority, status) with waiting / offered views; slot_opening (provider, slot_start, offer_phone, status, created_at) with open / filled views.
  • Agent tools (declarative): find_appointment, confirm_appt, cancel_appt, create_opening, offer_waitlist, fill_slot.
  • Bundled agents: Appointment Confirmation Agent — a multilingual multi-context flow (deterministic find_appointment lookup → confirm / reschedule / cancel, opening the freed slot for backfill); Waitlist Backfill Agent — looks up the waitlist entry, offers the freed slot, and fills it. Both auto-wired to the tools and the clinic playbook.
  • Knowledge base: clinic-playbook — appointment confirmation script, handling a reschedule, cancellation / late-arrival / no-show policy, and the waitlist backfill offer script.
  • Automation: scheduler_webhook inbound hook (dedupe on phone); confirm_reminder workflow (short delay → outbound confirmation call); backfill_slot workflow (fires on a new slot opening → outbound call to the next waitlist patient).
  • The cancel → slot_opening → backfill loop: a cancellation creates a slot_opening pointed at the highest-priority waiting patient, which auto-dials the waitlist agent to rebook the slot.
  • Dashboard UI: KPI tiles (projected no-show rate, confirmed, recovered slots, est. recovered revenue, waitlist waiting), appointment-status mix, upcoming appointments, and a backfill-loop panel; also renders into the dashboard_widget slot in compact form.
  • Appointments page: status filters, search, and per-appointment Call now, Confirm, and Cancel & backfill (releases the slot and offers it to the waitlist).
  • Waitlist page: priority queue with open-slot counts and per-entry Call to offer.
  • Setup page: configuration checklist + one-click Create confirmation agent / Create waitlist agent and post-install wiring steps.
  • Self-seed: a fresh install auto-loads six realistic demo appointments, three waitlist entries, and one recovered slot (removable) so the dashboard is populated on first open.

Publisher

Telenow AI

Marketplace publisher · app reviewed by Telenow before listing.

Your data, your keys

Encryption everywhere

Secrets, carrier credentials and API keys stored AES-GCM encrypted; TLS in transit; HMAC-signed webhooks.

Org isolation & RBAC

Strict per-organization data isolation with role-based access for every member.

Full audit log

Every mutating action is logged and filterable, with CSV export for your records.

Telephony compliance

In-app DLT / regulatory flows, TCPA calling windows, and org-wide Do-Not-Call enforcement.

₹300.00 free credit on signup

Install Appointment Reminder & Rebooking

Sign up free and get ₹300.00 in credit — no card required. Connect your number, pick a template, and go live in minutes.