From 76b68bebd7ac77995bce045ab743c5e1b67bae88 Mon Sep 17 00:00:00 2001 From: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Date: Mon, 11 Aug 2025 21:13:56 +0530 Subject: [PATCH] fix: ensure seated event reschedules send proper reschedule emails (#22849) * fix: ensure seated event reschedules send proper reschedule emails - Fix attendee reschedule bypass when no existing booking at new time slot - Remove restrictive isConfirmedByDefault conditions from owner reschedule functions - Add seatedRescheduleEmailSent flag to coordinate email sending between handleSeats and handleNewBooking - Prevent main flow from overriding seated reschedule emails with scheduled emails Fixes issue where both organizer and attendee receive schedule emails instead of reschedule emails during seated event reschedules. Co-Authored-By: anik@cal.com * refine: only apply seatedRescheduleEmailSent check for seated bookings - Add eventType.seatsPerTimeSlot condition to ensure flag only affects seated events - Prevents interference with regular booking email flow Co-Authored-By: anik@cal.com * fix: replace unreliable flag mechanism with direct seated reschedule detection - Remove seatedRescheduleEmailSent flag from HandleSeatsResultBooking type - Remove flag assignments from seated reschedule functions - Use direct detection (eventType.seatsPerTimeSlot && rescheduleUid) in handleNewBooking - Maintain email sending fixes for attendee reschedules and owner reschedule conditions - Resolve TypeScript type mismatch issues with type-safe approach Co-Authored-By: anik@cal.com * Update attendeeRescheduleSeatedBooking.ts * revert --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- packages/features/bookings/lib/handleNewBooking.ts | 2 +- .../reschedule/attendee/attendeeRescheduleSeatedBooking.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 5260f37c2f..5afe3715a5 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -1990,7 +1990,7 @@ async function handler( }) ); - if (!isDryRun) { + if (!isDryRun && !(eventType.seatsPerTimeSlot && rescheduleUid)) { await sendScheduledEmailsAndSMS( { ...evt, diff --git a/packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts b/packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts index 023ce6f068..97e50055a9 100644 --- a/packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts +++ b/packages/features/bookings/lib/handleSeats/reschedule/attendee/attendeeRescheduleSeatedBooking.ts @@ -51,6 +51,8 @@ const attendeeRescheduleSeatedBooking = async ( // We don't want to trigger rescheduling logic of the original booking originalRescheduledBooking = null; + await sendRescheduledSeatEmailAndSMS(evt, seatAttendee as Person, eventType.metadata); + return null; }