Skip to content
Gaurav TiwariDocs

Recurring Bookings, Approvals and Waitlists

Updated October 22, 2026

Some bookings don’t fit a simple “pick a time, done” flow. A client wants the same slot every Tuesday for three months. You want to vet a request before anyone pays. A popular session is full, and you’d rather keep the next person in line than lose them. Core Bookings handles all three per service, and none of them needs a module switch.

All three live in the service editor under Booking options. Open a service from Bookings → Services to set them.

Allow Recurring Bookings

Set Maximum sessions per recurring request above 1 (up to 52) on a one-to-one service. The booking form then shows a repeat line where the customer chooses:

  • Number of sessions, up to your maximum.
  • Repeat: every week (or every few weeks), every month on the same date, or every month on the same weekday, such as the second Tuesday.
  • Weeks between sessions or Months between sessions, from 1 to 4.

Every session keeps the same local time in the staff member’s timezone, across daylight-saving changes. A monthly series on the 29th to 31st moves to the last day in shorter months. Try it on the Coaching Sessions demo.

  • All or nothing: every date must be free. If one is taken, nothing is reserved and the customer picks again.
  • One checkout: a paid series collects every deposit in a single payment. Each confirmed session can later be cancelled and refunded on its own.
  • Group sessions: recurring requests aren’t available. Group services always book one session at a time.

Require Staff Approval

Tick Require staff approval before payment or confirmation under Staff approval. Customers now see Request appointment instead of a confirm button, and a note that online payment starts after approval.

  1. The customer sends the request. The time is held, nothing is charged, and the assigned staff member gets an email.
  2. Staff open the appointment in Bookings → Appointments and choose Approve request or Reject request, with a reason.
  3. On approval, a free or offline booking is confirmed right away. A service with online payment moves to awaiting payment and the customer is emailed to pay.

Approval request lifetime (hours), 1 to 168 with a default of 24, sets how long the time stays held. The hold ends at the appointment start if that comes sooner. An unanswered request expires, the time is released and the customer is told. Customers can withdraw a pending request from their booking page. A recurring request is approved, rejected or withdrawn as one series. See it on the Project Review demo.

Offer a Waitlist

Tick Offer a verified waitlist for unavailable times under Waitlist. The form then shows Join a waitlist for a full time once a customer has chosen a staff member.

  1. The customer picks the Requested time, enters their details (and seats, for a group session), ticks the agreement and clicks Join waitlist. Their duration, location or ticket choices are saved with the request.
  2. They get an email and must open the private link within 15 minutes to verify. Joining never books or charges anything.
  3. When the time frees up, verified entries are offered in the order they joined. The place is held for up to 15 minutes, never past the start, and the customer is emailed a link to claim it.
  4. The customer clicks Claim this appointment. Approval and payment rules still apply after the claim. An unclaimed offer expires and the place goes back on sale.

Manage the Waitlist

Go to Bookings → Customers and click Waitlist. Filter by status or search by name or email. For each entry, pick an Action, type a Reason and click Apply:

  • Pause and Resume take a waiting entry out of line and put it back.
  • Offer available seat sends an offer now instead of waiting for the next automatic check.
  • Cancel entry closes it. Customers can also leave with Leave waitlist on their waitlist page.

If the last offer attempt failed, the entry says why, for example that the time is still full or the staff calendar couldn’t be checked. Most of these retry on their own.

Limits

  • A waitlist request names one staff member. With “Any available staff member” selected, the form asks the customer to pick someone first.
  • Managers can’t skip email verification. An unverified or expired entry needs a fresh request from the customer before it can be offered.
  • Invitation-only services have no waitlist. Entries made before a service became invitation only are closed without an offer.
  • Waitlist checks and emails run on WP-Cron, once a minute. On a site with little traffic they can run late, so a server cron job that triggers WP-Cron keeps them on time.
Share

Was this helpful?

Still stuck? Open a support ticket