Skip to main content

Customer Booking Process

The Appointment Form

After setting up your appointable product, appointment form is generated for the front-end, based on your product configuration. Here is an example for an Acupuncture appointment booking. Remaining time slots are listed:

Appointment form

If some of the time slots in a given day have been booked, a gray line on that day denotes that it is partially scheduled. Longer the line, more occupied the time slots on that day are. If you don't want the partially booked gray line, it's possible to hide this using CSS.

Appointment calendar grey line

As options are chosen, the cost is updated dynamically – and once a valid appointment slot is selected, the "Book Now" button can be pressed to add the appointment to the cart. Appointment has an In Cart status that freezes the slot when added to the cart for 1 hour.

Selection Info Row

Appointment form selection info

For time-based products (minute/hour duration), a selection info row appears between the calendar and the time slots. This row shows:

  • Selected date with a clear button (×) to reset
  • "Select time below" prompt after a date is chosen
  • Selected time once a slot is picked, also with a clear button
  • Timezone selector (right side) — displays the current timezone abbreviation (e.g., EST) as a clickable link that opens a full timezone dropdown

The timezone selector only appears when the product has Customer Timezones enabled. When the customer's timezone differs from the site timezone, times in the slot picker are automatically converted. See Timezones for details.

The Checkout Process

Once a customer selects an appointment slot and clicks "Book Now", the appointment is added to the cart. Appointment data is shown in the cart line item, including:

  • Product name and appointment details
  • Selected date and time
  • Duration
  • Staff member (if applicable)
  • Price

The appointment has an In Cart status that freezes the slot for 1 hour to prevent double-booking.

note

The cart screenshot should show an appointment product with date/time details. If you see a search input instead, ensure an appointment has been added to the cart first.

Appointment in cart

If the appointment requires approval, payment is not taken during the checkout. This creates the appointment and the order, but requires payment after the appointment is confirmed.

Appointment confirmation request

Later, after you approve the appointment, the customer is emailed an Appointment Confirmed email as described in the Email Notifications section below. Alternately, the customer can log into their My Account page and make a payment there.

My Account appointments

Appointments do not require a payment to behave like any other product in your store.

Email Notifications

Appointments have several email alerts that are handled automatically. You can edit all emails at WooCommerce → Settings → Emails:

Admin Emails:

  • New Appointment — Sent when a new appointment is created and paid (or pending confirmation)
  • Appointment Cancelled — Sent when an appointment is cancelled
  • Appointment Rescheduled — Sent when an appointment date/time is changed

Customer Emails:

  • Appointment Confirmed — Sent when the appointment status changes to confirmed
  • Appointment Reminder — Sent before the appointment (configurable timing)
  • Appointment Cancelled — Sent when the appointment is cancelled
  • Appointment Follow-up — Sent after the appointment is completed (configurable timing)

For full details on each email, ICS attachments, placeholders, and customization, see Email Notifications.