From 9a52938f64ea416494cad82d58e223bb982b24be Mon Sep 17 00:00:00 2001 From: Kartik <103111467+kartik-212004@users.noreply.github.com> Date: Mon, 10 Nov 2025 02:45:17 +0530 Subject: [PATCH] fix: strip internal $RCH$ prefix from cancellation reason in ICS files (#25016) * fix: strip internal RCH prefix from cancellation reason used in ICS * fixed * trimmed --- packages/lib/CalEventParser.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/lib/CalEventParser.ts b/packages/lib/CalEventParser.ts index 03e1b6ac6f..22edbe7479 100644 --- a/packages/lib/CalEventParser.ts +++ b/packages/lib/CalEventParser.ts @@ -223,8 +223,9 @@ export const getPlatformCancelLink = ( if (calEvent.platformCancelUrl) { const platformCancelLink = new URL(`${calEvent.platformCancelUrl}/${bookingUid}`); platformCancelLink.searchParams.append("slug", calEvent.type); - calEvent.organizer.username && + if (calEvent.organizer.username) { platformCancelLink.searchParams.append("username", calEvent.organizer.username); + } platformCancelLink.searchParams.append("cancel", "true"); platformCancelLink.searchParams.append("allRemainingBookings", String(!!calEvent.recurringEvent)); if (seatUid) platformCancelLink.searchParams.append("seatReferenceUid", seatUid); @@ -267,8 +268,9 @@ export const getPlatformRescheduleLink = ( `${calEvent.platformRescheduleUrl}/${seatUid ? seatUid : bookingUid}` ); platformRescheduleLink.searchParams.append("slug", calEvent.type); - calEvent.organizer.username && + if (calEvent.organizer.username) { platformRescheduleLink.searchParams.append("username", calEvent.organizer.username); + } platformRescheduleLink.searchParams.append("reschedule", "true"); if (calEvent?.team) platformRescheduleLink.searchParams.append("teamId", calEvent.team.id.toString()); return platformRescheduleLink.toString(); @@ -408,7 +410,10 @@ export const getRichDescription = ( export const getCancellationReason = (calEvent: Pick, t: TFunction) => { if (!calEvent.cancellationReason) return ""; - return `${t("cancellation_reason")}:\n${calEvent.cancellationReason}`; + const sanitized = calEvent.cancellationReason.startsWith("$RCH$") + ? calEvent.cancellationReason.substring(5).trim() + : calEvent.cancellationReason.trim(); + return `${t("cancellation_reason")}:\n${sanitized}`; }; export const isDailyVideoCall = (calEvent: Pick): boolean => {