Doctor appointment management with cancellation window and ÖGK context
DocFinder, Doctolib AT and practice-CRM with two reminder pulses and rebooking
Many practices send only one reminder the evening before by email — which the patient misses if they don't check their inbox. Others send multiple SMS with no cancellation option; the patient can't cancel themselves, calls on the day and ties up the practice phone line. The optimal pattern is a two-pulse system with reply capability (YES / CANCEL) that automatically returns a cancelled slot to the Doctolib API — making a sub-two-hour rebooking realistic.
Appointment booking platforms like DocFinder (Austrian market leader since 2009) and Doctolib AT (live in Vienna since 2021) have reshaped practice life: patients book online, practices see the calendar in real time, and no-shows cost money. An average GP practice loses ~12 appointments per month to no-shows (WKO 2024 estimate); at a public-insurance honorarium of ~EUR 25 per appointment that's ~EUR 300/month of unused capacity — and depending on the insurance contract (ÖGK, SVS, BVAEB) also a gap in the obligation to provide care. Two-pulse reminders (24 h + 2 h) empirically cut no-show rates by 60-70%.
| Channel | Primary provider | Fallback |
|---|---|---|
| DocFinder-Webhook | docfinder.at/api/v2/webhook | REST polling (1 min) |
| Doctolib AT API | doctolib.at API + webhook | Tagespoll-Sync |
| Praxen-CRM (Bock, Innomed) | Vendor-spezifische REST-Adapter | CSV-Upload |
| Erinnerungs-SMS | BP-AT-002 SMS-Routing | E-Mail mit Kalender-Link |
| Stornierungs-MO-Webhook | Inbound SMS keyword | Sprachmenü Telefon |
Appointment reminders are also covered by medical confidentiality. The SMS text must not reveal the reason for the appointment — only date, time and practice.
Private-practice doctors have documentation duties around appointments and fees. Reminder sends and cancellations must be documented in a way that permits later fee reconciliation.
Hospital outpatient clinics face stricter documentation duties. Reminders for outpatient appointments must be linkable to the patient record.
Receive appointment event from booking platform
Webhook from DocFinder or Doctolib with patient (hashed ID), date/time, practice, service code. 4notify queues a reminder job with two trigger times: T-24h and T-2h.
First reminder 24 h before appointment
Neutral SMS text: ’Reminder of your appointment on 28.05. at 14:30, Dr. Huber's practice, Mariahilfer Str. 88. Reply CANCEL up to 4 h before the appointment.’ Reply CANCEL is received via the MO webhook and triggers an immediate cancellation in the booking platform.
Second reminder 2 h before appointment
Short version: ’In 2 h: appointment at Dr. Huber, Mariahilfer Str. 88.’ This reminder no longer carries a cancellation option — the window has closed and the slot would no longer be filled.
Cancellation window + automatic rebooking
If the patient cancels within the window, the freed slot is returned via the Doctolib/DocFinder API. The booking platform surfaces it under ’Recently available'; in parallel the next person on the waiting list — if any — is notified by SMS: ’Slot available: 28.05. 14:30 at Dr. Huber. Book at docfinder.at/...’.
Test procedure: (1) Create a test appointment in the DocFinder sandbox 30 h in the future — the reminder job with two triggers must be visible in 4notify. (2) Wait for T-24h or force the trigger — first SMS must arrive, neutral content, with CANCEL keyword. (3) Reply CANCEL — cancellation webhook to the booking platform within 60 seconds, MO in the audit log. (4) Appointment in the sandbox visible as ’cancelled’. (5) Test waiting-list entry must receive a ’Slot available’ SMS. (6) Second test without cancellation — T-2h reminder must arrive, patient is informed cancellation is no longer possible.
bash
curl -X POST https://api.4notify.net/v1/appointment/schedule \
-H "Authorization: Bearer $API_KEY' \
-H "Content-Type: application/json' \
-d '{
"patient_hashed_id': 'blake2b:a1b2c3d4…",
"patient_phone': '+436641234567",
"appointment_at': '2026-05-28T14:30:00+02:00",
"practice_name': 'Praxis Dr. Huber",
"practice_address': 'Mariahilfer Str. 88, 1070 Wien",
"reminders": [
{ "offset_hours_before": 24, "allow_cancel": true },
{ "offset_hours_before": 2, "allow_cancel": false }
],
"cancellation_window_hours": 4,
"booking_platform': 'docfinder",
"booking_id': 'df_12345"
}'Dr. Huber's practice: reminder of your appointment on 28.05. at 14:30, Mariahilfer Str. 88, 1070 Vienna. Reply CANCEL accepted up to 4 h before.
- Two-pulse reminder strategy configured (T-24h + T-2h)
- CANCEL keyword (incl. ’cancel’, ’absagen’, ’storno’) active for the MO webhook
- Booking platform API integrated for automatic cancellation return
- Waiting-list notification on freed slots enabled
- Reminder text neutral — no treatment reason, no patient last name
- Audit log documents: sent, confirmed, cancelled, no-show
Instead of a single reminder SMS, 4notify runs a two-pulse system with a cancel keyword — on cancellation the slot is returned to the booking platform within seconds and signalled to the waiting list.
Can I force patients to confirm?
No — and it's clinically counterproductive. Reminders demanding confirmation lead to frustration and anti-compliance. The cancel-without-confirm option is more effective: 92% of patients turn up with no reply, 7% cancel and 1% no-show.
What about repeat no-show patients?
4notify maintains an optional risk-score view — patient_ids with ≥ 3 no-shows in 12 months get a yellow flag in the practice CRM. The practice decides whether to book this patient only in fixed block hours going forward (a private-practice pattern).
How does this work with hospital outpatient clinics?
Hospital outpatient clinics often run their own HIS (hospital information systems) — Cerner, Infomed, Smart-Health. 4notify offers FHIR R4 connectors for HL7-capable HIS. The reminder logic stays identical; only the adapter differs.
Open a free account
14 days, no card. German-language support.