Understanding Recurring Bookings
If you’ve ever set up a weekly cleaning, a fortnightly lawn mow, or a monthly maintenance visit, you’ve used what we call a recurring booking. This guide walks through exactly how that works — what happens behind the scenes, what you can change later, and what to expect when your schedule needs to shift.
Two different things: the booking, and each visit
It’s worth separating two ideas that sound similar but aren’t:
- The booking is the overall agreement — the service, the price, the business, and whether it repeats. There’s exactly one of these per arrangement.
- An occurrence is one actual visit on the calendar — a real date and time. A one-time booking has exactly one occurrence. A weekly booking has a new occurrence every week, for as long as the arrangement continues.
Think of the booking as the contract, and each occurrence as one appointment under that contract. When we talk about “moving a booking,” what actually moves is one or more occurrences — the underlying agreement itself doesn’t need a date to exist.
The lifecycle, step by step
1. You request the service. When you submit a request, you can say how often you’d like it — one-time, daily, weekly, every two weeks, or monthly. At this stage, it’s just a preference — nothing is locked in yet.
2. The business sends a quote. They review what you’re asking for and send back pricing.
3. You accept the quote. This creates your booking — but it doesn’t have a confirmed time yet. It’s waiting on the business to lock in an actual schedule.
4. The business confirms your schedule. This is the moment a real date and time gets set. If you asked for a recurring service, this is also where the business confirms the pattern — and your first occurrence, along with a batch of upcoming ones, appears on the calendar.
5. Future occurrences keep generating automatically. You don’t need to do anything for next month’s visits to appear — the system keeps extending your schedule forward on a rolling basis, for as long as the recurring arrangement stays active.
How each pattern behaves
| Pattern | What it means |
|---|---|
| Daily | A new occurrence every single day. |
| Weekly | Same day, same time, every 7 days. |
| Every 15 days | A new occurrence exactly two weeks apart, regardless of month length. |
| Monthly | Same date each month — e.g. the 10th of every month. |
A note on monthly bookings that start near the end of a month: if your booking starts on the 30th or 31st, some months don’t have that many days. When that happens, that month’s occurrence lands on the last real day of that shorter month instead — so a booking starting January 31st shows up on February 28th, then correctly returns to the 31st in months that have one. It never permanently drifts to a different date.
Changing a date — “just this once” or “from now on”
When you or the business needs to move a visit, you’ll be asked to choose between two options — the same choice you’d see in Google Calendar or Outlook for a recurring event:
- Just this one — only that single visit moves. Everything before and after it stays exactly where it was.
- This and every visit after it — that visit and all future ones shift by the same amount. If you move a Tuesday visit to Wednesday this way, every following Tuesday becomes a Wednesday too, from that point forward.
Past visits are never affected by either choice — you can only move something that hasn’t happened yet.
Cancelling
Cancelling a single occurrence removes just that one visit; the rest of your recurring schedule continues normally. If you need to end the whole recurring arrangement, that’s a separate action — the business can set (or you can request) an end date, after which no further occurrences will be generated.
Try it yourself — scenarios to test
Use these as a checklist to confirm everything behaves as described above. Each row is a self-contained scenario: set it up, then check the expected result.
| # | Scenario | Setup | Expected result |
|---|---|---|---|
| 1 | Basic weekly booking | Request weekly service, accept quote, business confirms schedule starting on a Monday | A Monday occurrence appears immediately; more Mondays appear looking several weeks ahead |
| 2 | One-time booking | Request with no recurrence, accept, business confirms a single date | Exactly one occurrence exists — no others generate on any later date |
| 3 | Move just one visit | On a weekly series, reschedule a single upcoming occurrence and choose “just this one” | Only that date changes; the visit before and after it stay on the original weekly pattern |
| 4 | Move this and everything after | On the same series, reschedule a different occurrence and choose “this and every visit after” | That visit and all later ones shift by the same amount; anything before it is untouched |
| 5 | Monthly booking starting on the 31st | Confirm a monthly booking with startAt on Jan 31 | February’s occurrence lands on Feb 28 (or 29 in a leap year); March’s occurrence returns to the 31st |
| 6 | Booking conflict | Try to confirm a schedule (or reschedule) into a time slot that overlaps an existing occurrence for the same business | The action is rejected with a conflict message; no double-booking is created |
| 7 | Ending a recurring series | Set an end date on an active weekly booking | Occurrences continue generating up to that date, then stop — nothing generates beyond it |
| 8 | Cancelling a single visit | Cancel one occurrence in an otherwise active weekly series | That date disappears from the calendar; the following week’s visit is unaffected |