Recurring Bookings

7 min read

Allow customers to book repeating appointments on a weekly, biweekly, or monthly basis, and manage entire booking series from a single interface.

Overview

Recurring bookings let your customers schedule a series of repeating appointments in a single transaction. Instead of rebooking manually each week or month, the system automatically generates all future occurrences based on the chosen pattern. Key capabilities include:

  • Weekly, biweekly (every 2 weeks), and monthly recurrence patterns
  • Configurable maximum number of occurrences per series
  • Parent-child booking relationships for easy series management
  • Cancel or reschedule an entire series with one action
  • Individual occurrence editing without affecting the rest of the series
  • Automatic conflict detection across all occurrences

Step 1: Enable Recurring on a Service

Open any service in WordPress Admin → Bookings → Services and click the Recurring tab in the service details meta box.

1

Enable recurring bookings

Check the “Allow recurring bookings” checkbox. The recurrence configuration fields will appear below.

2

Select allowed patterns

Choose which recurrence patterns customers can select: Weekly (every 7 days), Biweekly (every 14 days), or Monthly (same day of month). You can enable one or more patterns.

3

Set maximum occurrences

Define the maximum number of repeating appointments allowed per series. Default is 12. This prevents unbounded series from filling up your calendar.

4

Optional: Set a default pattern

If you want the booking form to pre-select a specific pattern, choose it from the “Default pattern” dropdown. Customers can still change it.

Step 2: How Customers Select Recurring

When a customer selects a recurring-enabled service on the public booking form, an additional “Recurrence” step appears after choosing their initial date and time:

Pattern Selection

A dropdown or button group showing the available patterns (Weekly, Biweekly, Monthly). Customers pick one.

Occurrences Count

A number input to choose how many sessions they want (up to the configured maximum).

Preview Calendar

A visual preview showing all generated dates, highlighting any conflicts with existing bookings or staff availability.

Price Summary

The total price calculated as single session price multiplied by the number of occurrences. Discount codes apply to the total.

Step 3: Conflict Detection

Before the series is confirmed, the system checks every generated date against staff availability and existing bookings. If a conflict is found on any occurrence:

The conflicting date is highlighted in the preview calendar. The customer can either skip that occurrence, choose a different time for it, or reduce the total number of sessions. The booking cannot proceed until all conflicts are resolved.

Step 4: Parent-Child Booking Relationships

When a recurring series is created, the system generates a parent booking (the first occurrence) and child bookings (all subsequent occurrences). This hierarchy allows you to:

  • View the entire series from the parent booking's detail screen.
  • Each child booking stores a reference to its parent booking ID.
  • Filter the bookings list by "Recurring Series" to see only parent bookings.
  • The parent booking displays a series badge with the total occurrence count.

Step 5: Managing a Recurring Series

From the admin booking edit screen or the customer’s “My Bookings” page, the following series-level actions are available:

1

Cancel entire series

Cancels all future occurrences in the series. Past occurrences remain unchanged. If payment was collected upfront, a proportional refund is calculated for the cancelled sessions.

2

Reschedule series

Shifts all future occurrences by the same offset. For example, moving the next session from Tuesday to Thursday shifts all remaining sessions forward by 2 days.

3

Cancel single occurrence

Cancel just one session without affecting the rest of the series. The child booking is marked as cancelled while the parent series continues.

4

Reschedule single occurrence

Move one session to a different date or time. Only that child booking is updated; the rest of the series keeps its original schedule.

Tips & Best Practices

Tip: Set a reasonable maximum occurrence limit (e.g., 12 for weekly, 6 for monthly) to prevent customers from accidentally booking too far into the future. You can always increase it later.
Tip: Use the {recurring_dates} and {series_count} email placeholders to include the full list of scheduled dates in the confirmation email.

If a staff member’s availability changes after a recurring series is booked, affected future occurrences will be flagged in the admin dashboard. Review and reassign or reschedule them promptly.