Practice setup

Preview, test and share your booking page

Finish setup with a booking experience you have checked from the patient’s point of view.

What you will achieve

Check a complete patient booking journey, then share a working booking link or website widget.

A completed test submission: this package-backed request still needs practice approval.

Where to go

Settings → Online booking page → Open booking page. For embedding: Settings → Integrations → Website widget.

Check the result

The intended patient can complete an eligible booking and sees the correct status. Ordinary unpaid bookings are confirmed after successful submission; payment-required bookings wait for verified payment; bookings covered by a session package wait for practice approval.

In this guide
  1. 1. Open and review the booking page
  2. 2. Check new and existing patient access
  3. 3. Complete an isolated test booking
  4. 4. Verify the appointment and its status
  5. 5. Copy and share the booking link
  6. 6. Add the website widget
  7. 7. Check the mobile experience
  8. Frequently asked questions

Finish with a working booking journey

Appointment types define the sessions; availability defines the times. This final setup step checks that the intended patient can actually complete a booking. Online payments are an optional follow-up for paid appointment types.

1. Open and review the booking page

Go to Settings → Online booking page → Open booking page. Preview as patient also opens a patient-facing page, but does not sign you in as a particular patient or override their permissions. Use a separate browser session for a reliable logged-out check.

Check the practice name, appointment types, available dates and times, duration, session format and location. Read cancellation and rescheduling rules. If payment is required, check the price and currency before continuing. An empty page may mean the type is inactive, no eligible future availability exists, public booking is disabled, the booking channel is unavailable, or payment setup is incomplete.

Keep the existing practice eligibility and privacy requirements in place. Demo-restricted practices cannot enable real patient booking. Complete the practice’s required legal and contact details before sharing a live page.

The signed-in demo patient chooses a released day and an available time for the follow-up session.

2. Check new and existing patient access

The logged-out booking page and the signed-in patient portal can offer different appointment types. Use the logged-out page for a new-patient check. In the isolated test environment, separately sign in to a fictional patient account through the practice’s patient portal and check the released follow-up sessions.

Existing-patient access depends on the appointment type’s patient group, booking channels, portal settings and that patient’s booking permission. A preview link does not bypass those rules. Internal or manual-only appointment types must remain unavailable for patient booking.

3. Complete an isolated test booking

Use an isolated local or test environment with fictional practice and patient data, a captured test mailbox and test payment credentials. For example, use Example Practice and Alex Example, with an address in your test mailbox. A public-page preview is not a sandbox: do not submit fictional bookings to a live practice.

  1. Choose an eligible appointment type and a future available time.
  2. Review the selected date, duration, location and booking rules.
  3. Enter only the required administrative details. Do not include diagnoses or treatment notes.
  4. Complete the consent fields and submit the booking.
  5. For a payment-required type, follow the test checkout. Test a successful payment and a cancelled or incomplete checkout separately.
Before submission, the booking shows the selected session, administrative details and available session package.

4. Verify the appointment and its status

Check the resulting screen, the appointment in the practice calendar and the message captured by the test mailbox. In the shipped public booking flow, a successfully submitted appointment without a payment requirement is confirmed. A payment-required booking starts as pending payment and is confirmed only after successful payment verification. Returning from checkout alone is not proof of payment. A booking covered by an eligible session package instead starts as pending practice approval and reserves one session; it is not instantly confirmed.

An incomplete payment can leave the time temporarily reserved; an expired hold releases it. Check the actual displayed status rather than treating every submission as a confirmed appointment. Appointment requests received through other channels are a separate workflow.

For the test patient, also check the portal’s appointment details and the cancellation or rescheduling actions allowed by the appointment type. Read the patient booking and appointment management guide for the patient journey.

This package-backed appointment request has been submitted and awaits practice approval. Submission and confirmation are separate steps.

5. Copy and share the booking link

Return to Settings → Online booking page and use Copy link beside the booking URL. Share the copied link on your practice website or in appointment information. Download QR code provides the corresponding QR code.

Copy the URL generated by your practice settings rather than constructing a domain or slug yourself. After changing the practice’s public slug, check any links and QR codes already in use. Open the copied link in a logged-out browser before publishing it.

6. Add the website widget

Go to Settings → Integrations → Website widget. Select the intended appointment type, enable its website widget, review the preview and use Save widget settings. Internal and manual-only types cannot use the widget; demo restrictions also apply.

Copy the generated Embed code into the HTML of the website where booking should appear. The integration uses a script loaded from /widget.js with the practice slug, appointment-type ID, language and number of displayed rows. Use the exact code generated in your own settings; do not substitute the fictional data from this guide.

For WordPress, download and activate the Theravo booking widget plugin from Integrations. Paste the generated integration code into Settings → Theravo Calendar in WordPress, then add [theravo_calendar] to a page or Shortcode block. The email request form is a separate integration and is not the booking widget.

Check the published page, not just the website editor. The widget opens the supported booking journey and applies the appointment type’s access and payment rules.

7. Check the mobile experience

Open the shared link and the embedded widget on a phone. Check appointment selection, date and time choices, readable details, form fields and the final status. Confirm that the keyboard does not hide the submit action and that no content requires horizontal scrolling. Repeat in each language offered by the practice.

Frequently asked questions

Does Preview as patient create a test environment?

No. It opens the patient-facing booking page. Complete fictional bookings only in an isolated test environment with test mail and payment integrations.

Do I need online payments to finish setup?

No. Configure payments only for appointment types that need them. Keep the existing online payments guide for that optional follow-up.

Does buying a session package reserve times?

No. Purchasing sessions and booking appointment times are separate actions. Patients or the practice book eligible appointments according to their permissions.

Next step

Share a checked booking experience

Open your booking settings, verify the patient journey and copy your own booking link.