Shift occupancy: one booking reserves the whole morning or afternoon

Conversa Labs

Conversa Labs

Last updated on Aug 12, 2026

Overview

Some services are not sold by the hour, they are sold by the shift. An upholstery-cleaning crew that arrives at 10:30 is not free again at 11:30: they take the whole morning. The customer still needs to pick an arrival time, but the rest of that shift has to leave the calendar the moment they book.

That is what the "The whole shift" option does. It lives on the event type, under What one booking takes off the calendar:

  • Only the chosen time (default): the appointment plus its buffers. This is how Agenda has always worked, and nothing changes for event types that already exist.
  • The whole shift: booking any time reserves the entire availability range it falls in. Book 10:30 inside 08:00–12:00 and the whole morning disappears from the public page β€” only the afternoon shift stays for sale.

The shift IS the availability range. There is no separate "shift" field: Agenda uses the ranges you already configure under Availability. A day with two shifts is a day with two ranges separated by a gap.

Prerequisites

  • Agenda module enabled and an event type created.
  • The day's availability split into separate ranges β€” that is what defines the shifts.
  • A role allowed to edit event types.

Step by step

  1. Open Availability (on the calendar or on the event type itself) and split each day into the shifts you work. The classic shape:
    • 08:00 – 12:00 (morning)
    • 14:00 – 18:00 (afternoon) Use Add time range to create the second one. Leave a gap between them.
  2. Save the availability.
  3. Open the event type and, under What one booking takes off the calendar, choose The whole shift.
  4. Set the duration to the real length of the service (that is what the customer sees, and what reaches Google and the .ics file) and the slot interval to how often you want to offer arrivals: every 30 minutes, every hour…
  5. Save and test on the public page: pick a morning time and confirm the whole morning is gone, with only the afternoon left.

Settings & options

  • What one booking takes off the calendar: Only the chosen time or The whole shift.
  • Duration: the real length of the service. It does not have to match the shift β€” the customer sees this duration, and it is what lands on their calendar.
  • Slot interval (under Agenda settings β†’ Scheduling defaults): how often arrivals are offered inside the shift.
  • Buffers: with shift occupancy they protect the edges of the shift β€” the buffer before pushes its start, the buffer after extends its end.
  • Availability: each day's ranges. They are what define the shifts.

Use cases

  • Upholstery cleaning: arrival between 08:00 and 10:00, but the crew stays all morning.
  • Removals and freight: one job per shift, two a day.
  • On-site technical installation: the customer picks "morning" and the technician sets the route order.
  • Renting a space by period: morning, afternoon, or both.

Tips, limits & best practices

  • Leave a gap between shifts. Two ranges that touch (12:00–14:00 right after 08:00–12:00) are merged into one 08:00–14:00 range, and then a booking takes both. The lunch break is not just a pause: it is what separates one shift from the next.
  • A shift that runs past midnight works. A range cannot cross midnight, so a 22:00–02:00 shift is written across two days: Monday 22:00–24:00 and Tuesday 00:00–02:00. Because they touch at midnight they count as one shift β€” a 23:00 booking takes the small hours with it, and a customer can pick a start whose appointment ends after midnight.
  • A day with a single range is one shift. If the day is only 08:00–18:00, one booking takes the whole day. That may be exactly what you want (one job a day) β€” it just has to be deliberate.
  • Any appointment inside the shift kills it, not only bookings from the public page: an event created directly in the agenda or imported from Google at 09:00 also takes the morning off sale.
  • Rescheduling inside the same shift is allowed β€” the shift is already the customer's, so moving from 10:30 to 11:00 works normally.
  • On the dashboard grid the booking shows at its real time, with the reserved shift drawn as a faded band behind it. It is not a second appointment: it is the same booking, rendered.
  • On Google: the technician gets the appointment at its real time (10:30–11:30), not the whole shift. The shift reservation lives in Conversa Labs Agenda β€” anyone booking straight into Google needs to check Agenda too.

Troubleshooting

  • I booked one time and the whole day disappeared: the day probably has a single range, or two ranges that touch. Open Availability and separate the shifts with a gap.
  • The afternoon went away with the morning: the two ranges are back to back (e.g. 08:00–12:00 and 12:00–18:00) and were merged. Leave a real gap between them.
  • The page offers no times at all: the duration may be longer than the shift. A 4-hour service does not fit in a 3-hour range.
  • Only one time per shift shows up: raise the slot interval β€” it is what decides how many arrivals are offered inside the shift.
  • The customer says their appointment is wrong on their calendar: it is not. Their invite is the real time they picked; the whole-shift reservation is internal, which is why it is not in the invite.

See also