Summary

When a host reschedules a booking, this now checks if the guest (attendee) is a Cal.com user. If they are, the system fetches their availability and only shows time slots when BOTH the host AND the guest are available.

Problem

As described in #16378, when a host reschedules a booking, the current system doesn’t consider the guest’s availability - it just shows the host’s available slots. This can lead to hosts choosing times when the guest is actually busy.

Solution

  1. When rescheduleUid is present in the slot calculation:

    • Fetch the original booking with attendees
    • Check if any attendee is a Cal.com user (by email lookup)
    • If yes, fetch their availability for the date range
    • Intersect host availability with guest availability
    • Only return time slots where both parties are free
  2. Graceful degradation:

    • If guest is not a Cal.com user: show all host’s available slots (current behavior)
    • If availability fetch fails: fall back to host-only availability
    • Logged for debugging without blocking the flow

Changes

  • Added _getGuestAvailabilityForReschedule helper method in AvailableSlotsService
  • Integrated availability intersection in _getAvailableSlots after aggregated availability is calculated

Testing

  • Host reschedules with non-Cal.com guest: shows all host slots (unchanged)
  • Host reschedules with Cal.com guest: shows only mutual availability
  • Error handling: graceful fallback on failures

Closes #16378 /claim #16378


Found this helpful? Buy me a coffee

Claim

Total prize pool $200
Total paid $0
Status Pending
Submitted February 03, 2026
Last updated February 03, 2026

Contributors

J.

J.A.R.V.I.S.

@JarvisInvestInsight

100%

Sponsors

CA

Cal.com, Inc.

@cal

$200