For whoever is evaluating this
How this demo works
The clinic is invented; the software is not. This is the real plugin on a real WordPress install, configured with a synthetic clinic so that nothing you do here can touch a patient, a calendar or a phone. Break it as hard as you like.
Try these five things
-
Book something
Open the booking form, pick Tallinn, pick an examination, pick a weekday, and fill the form with obvious nonsense. You get a reference like
TIMO-D813FC792E. -
Watch one booking close a clinic, not a slot
Go back, choose the same day and clinic, and look at the times. The slot you took is gone and so are the two that overlap it — for both examinations. Now switch to Tartu on the same day: untouched.
-
Ask the API directly
The form has no privileged access; it reads the same public route you can:
/wp-json/booking-timo/v1/availability?site=demo-tallinn&service=demo-eye-exam&date=2026-08-17Local times carry their offset, UTC instants sit beside them, and the two always agree.
-
Try to cancel by accident
Cancellation links are single-purpose and only a hash of the token is stored. Opening one shows the appointment and nothing else — an email scanner following every link in your inbox cannot cancel anything. It takes a deliberate second press.
-
Look behind the form
The administration screens are where staff configure clinics, hours, closures, services and calendars, read the appointment list, and see the launch verdict. Credentials come separately, not on a public page.
Real here, simulated here
The line matters, because a demo that quietly fakes the hard parts is worth nothing. The hard parts are the ones that run.
Running for real
- Availability, computed from opening hours, closures, durations and buffers in the clinic’s own time zone.
- The last-moment re-check that stops two people taking one slot, under genuine concurrency.
- The capacity rule: one online appointment holds the whole clinic.
- Cancellation tokens, stored only as hashes, with a deadline per clinic.
- Staff screens, the appointment list and the audit trail.
- Automatic anonymisation of patient details once they are no longer needed.
- The launch gate, which refuses to call this environment ready.
- HTTPS on the clinic’s own domain, with a certificate the host renews by itself.
Deliberately simulated
- Google Calendar — a local stand-in adapter. Appointments behave as if written to a calendar; no Google account is connected.
- Text messages — a simulator. Reminders are composed and recorded, and nothing leaves the server.
- Email — this host has no mail transport, so confirmations are generated but not delivered.
- Terms and privacy copy — placeholders marked as testing-only, awaiting approved wording.
The plugin refuses to call this ready
Going live is a command with an exit code, not a checklist somebody ticks. Run it against this host and it fails, naming the development environment, the development calendar adapter, the text-message simulator, the placeholder legal copy and the sign-offs nobody has given. Each failure names the decision that owns it.
wp booking-timo launch check
That refusal is the feature. The same command on a properly configured clinic site is what says it is safe to open the form to patients.