⏱️ Smarter Slot Availability for Overlapping Appointments

We’ve enhanced the way slot availability is calculated for calendars that permit

multiple appointments per slot

.

Previously

, when a single

appointment overlapped

multiple time slots, the system would

block all affected slots entirely

— even if those slots still had remaining availability.

Now

, overlapping appointments only

reduce the availability by 1

in each slot they cover. Slots are blocked only when their true capacity limit is reached — not simply due to partial overlap. This new logic powers both the internal appointment modal and the public booking widget, resulting in more accurate and flexible scheduling.

✅ Overlapping Appointments Now Reduce, Not Block, Slot Capacity

The system examines all slots that an appointment overlaps and reduces their availability by 1 — rather than completely blocking them. The slots remain available for others until the individual per-slot appointment limit is actually reached.

  1. 🗓 Manual Booking via In-App Appointment Modal

  • Setup: 15-minute slots, 5 appointments allowed per slot

  • Custom Appointment: 10:15 to 10:45 AM (spans 10:00–10:30 AM and 10:30–11:00 AM slots)

  • Old behaviour: Both slots were fully blocked

  • New behaviour: Only 1 count is deducted from each slot, allowing 4 more appointments in both

  1. 🌐 Booking Widget (with 5-minute intervals)

  • Setup: 15-min duration, 5-min slot intervals, 5 appointments per slot

  • Appointment: Customer selects 10:00–10:15 AM

  • Result: The system subtracts only 1 appointment count from all overlapping slots’ capacity (e.g., 10:05–10:20 AM, 10:10–10:25 AM), keeping slots available until the capacity is reached

Applies Across Calendar Types

  • Personal Calendars
  • Round Robin Calendars
  • Event Calendars

Consistent Logic Across Internal & External Booking

Regardless of where the booking occurs, the system uses the same calculation for:

  • 🧠

    Accurate availability representation — no more premature blocking of slots

  • 📅

    Better availability utilisation — particularly beneficial for high-traffic calendars

  • 🤝

    Consistent behaviour across booking channels (admin + widget)