Repeat schedules enable you to establish your regular timetable - sessions that occur on the same day each week. Session automatically generates bookable slots and maintains them. For sessions without a pattern, such as special events or seasonal offerings, use One-off schedules instead.
Most users combine both: a repeat schedule for weekly operations plus occasional one-offs throughout the year.
Just want one session repeating weekly? You can tick Repeat weekly straight from the calendar's quick-add without opening this editor - see quick add. Come here when you need the full controls: several days, different times, start and end dates, or every-N-weeks cadences.
What you can do with it
- Build a weekly timetable - pick the days, times, and duration. Session generates bookable slots automatically.
- Use multiple schedules together - chain them with start and end dates to handle term-time vs holiday hours, mid-year time changes, or different cadences on different days.
- Run the same session at multiple locations - a schedule inherits the session's default location, but you can override it per schedule, so a single template can run different days/times at different venues. See multiple locations.
- Control how far ahead customers can book - set a rolling window ("bookable for the next 60 days") or a fixed cutoff date ("schedule ends on 31 December").
- Run biweekly, monthly-ish, or quarterly cadences - the "Every N weeks" setting handles every 2, 3, 4 weeks and so on, up to 12.
Multiple repeat schedules
In most cases you'll have one ongoing repeat schedule, with several repeating days/times within it. However, a single template can run several repeat schedules in parallel:
A schedule that changes mid-year. Run "Tuesday at 5pm" Jan-May, then "Tuesday at 6pm" from June. Set the first's end date to 31 May, add a second starting 1 June. Customers see one continuous Tuesday session; reports keep a clean cutover.
Different times at different locations. Tuesday + Thursday at Pontcanna and Friday + Saturday at Cardiff Bay on the same template.
Term-time vs holiday hours. Use start/end dates on each one to partition the year.
Different days at different times. Weekday off-peak + weekend peak as two separate schedules.
Repeating less often than weekly
Anchors on the schedule's start date. Every 4 weeks from 7 Jan 2026 fires on 7 Jan, 4 Feb, 4 Mar, 1 Apr, 29 Apr, and so on. Three things to know:
- "Every 4 weeks" isn't "first Wednesday of each month." Drifts 1-3 days/year. If you need a true calendar-monthly pattern, use one-off events - one per month.
- Alternating-week patterns use two schedules - class A every 2 weeks from Monday, class B every 2 weeks from the following Monday.
- The Days picker still applies - Mon + Wed on Every 4 weeks fires both days every 4th week.
Booking windows
Bookable for the next N days ahead (default 90, configurable 1-365) - rolling window slides forward each day. Most flexible option.
Schedule ends on a specific date - hard cutoff. Use for a six-week course, summer series, venue closure date.
The two are mutually exclusive. Click Change in the editor to switch.
What happens when you edit a recurring schedule
Three buckets:
Propagate live to everyone (no booking impact): name, description, booking instructions, image, calendar colour, visibility.
Apply to new bookings only (existing keep their paid value): price, price options, membership pricing, add-ons, capacity increase.
Cancel affected bookings (confirmation dialog before save, refunds + emails after): capacity decrease below current bookings, day/time/duration change, removing a schedule, shortening end date. Past sessions are never touched.
Booking-window changes are always safe - they only affect new bookings.
The cancel affected bookings dialog lists every customer who will be refunded and makes you type CANCEL to go ahead. If you didn't mean to cancel anyone, click Go back - nothing is charged or refunded until you confirm. To add a one-off session without any risk of touching existing bookings, use the calendar quick add instead of the full editor.
Troubleshooting
-
Sessions aren't showing for far-future dates. Check booking window (fixed end-date passed, or rolling window smaller than expected).
-
Customer can see a date but booking fails. They're probably looking at a member-extended date. Server rejects with "this session isn't available yet". Check the schedule's actual horizon.
-
Wrong time on confirmation. Sessions display in venue timezone, not browser. Check the template's timezone setting under Settings.
-
Schedule set up but no instances appearing. Check start date isn't in the future, booking window isn't fixed mode with a past end date.
-
Edited a price, Stripe report shows different amount. Expected. Existing bookings keep their paid price.
-
Customer says a session is missing but admin can see it. Probably Hidden or Archived visibility - or that single date was hidden from the calendar.
-
Adding a session seemed to cancel a different booking. Adding a one-off from the calendar quick add never touches other sessions. Cancellations only happen through the full editor's cancel affected bookings dialog, which lists who's affected and asks you to type
CANCEL. If in doubt, use quick add to add sessions and edit one session at a time. -
A phantom session appears on the admin calendar but not for customers. The admin calendar draws a faint preview of your repeating rules slightly further ahead than real bookable sessions exist yet. Customers only ever see real sessions, so nothing is exposed or double-booked. It settles as the calendar fills in; you can ignore it.
-
I added a new day or time to an existing schedule - will it create sessions in the past? No. Adding a day or time to a schedule that started months ago only creates sessions from today forwards, even though the schedule's start date is in the past. Adding days and times to one schedule is the right way to grow a timetable - you don't need a separate schedule per slot.