diff --git a/apps/web/pages/success.tsx b/apps/web/pages/success.tsx
index b577d9f935..929c42e13c 100644
--- a/apps/web/pages/success.tsx
+++ b/apps/web/pages/success.tsx
@@ -259,7 +259,7 @@ export default function Success(props: SuccessProps) {
);
const customInputs = bookingInfo?.customInputs;
- const locationToDisplay = getSuccessPageLocationMessage(location, t);
+ const locationToDisplay = getSuccessPageLocationMessage(location, t, props?.bookingInfo?.status);
return (
@@ -825,6 +825,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
select: {
title: true,
uid: true,
+ status: true,
description: true,
customInputs: true,
user: {
diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json
index 51385df053..c815ff940f 100644
--- a/apps/web/public/static/locales/en/common.json
+++ b/apps/web/public/static/locales/en/common.json
@@ -67,12 +67,14 @@
"event_still_awaiting_approval": "An event is still waiting for your approval",
"booking_submitted_subject": "Booking Submitted: {{eventType}} with {{name}} at {{date}}",
"your_meeting_has_been_booked": "Your meeting has been booked",
- "event_type_has_been_rescheduled_on_time_date": "Your {{eventType}} with {{name}} has been rescheduled to {{time}} ({{timeZone}}) on {{date}}.",
+ "event_type_has_been_rescheduled_on_time_date": "Your {{eventType}} with {{name}} has been rescheduled to {{date}}.",
"event_has_been_rescheduled": "Updated - Your event has been rescheduled",
"request_reschedule_title_attendee": "Request to reschedule your booking",
"request_reschedule_subtitle": "{{organizer}} has cancelled the booking and requested you to pick another time.",
"request_reschedule_title_organizer": "You have requested {{attendee}} to reschedule",
"request_reschedule_subtitle_organizer": "You have cancelled the booking and {{attendee}} should pick a new booking time with you.",
+ "rescheduled_event_type_subject": "Request for reschedule sent: {{eventType}} with {{name}} at {{date}}",
+ "requested_to_reschedule_subject_attendee": "Action Required Reschedule: Please book a new time for {{eventType}} with {{name}}",
"reschedule_reason": "Reason for reschedule",
"hi_user_name": "Hi {{name}}",
"ics_event_title": "{{eventType}} with {{name}}",
@@ -92,8 +94,6 @@
"meeting_password": "Meeting Password",
"meeting_url": "Meeting URL",
"meeting_request_rejected": "Your meeting request has been rejected",
- "rescheduled_event_type_subject": "Request for reschedule sent: {{eventType}} with {{name}} at {{date}}",
- "requested_to_reschedule_subject_attendee": "Action Required Reschedule: Please book a new time for {{eventType}} with {{name}}",
"rejected_event_type_with_organizer": "Rejected: {{eventType}} with {{organizer}} on {{date}}",
"hi": "Hi",
"join_team": "Join team",
diff --git a/packages/app-store/locations.ts b/packages/app-store/locations.ts
index 2797e44240..f6a349c59e 100644
--- a/packages/app-store/locations.ts
+++ b/packages/app-store/locations.ts
@@ -310,13 +310,17 @@ export const getEventLocationValue = (eventLocations: LocationObject[], bookingL
);
};
-export function getSuccessPageLocationMessage(location: EventLocationType["type"], t: TFunction) {
+export function getSuccessPageLocationMessage(
+ location: EventLocationType["type"],
+ t: TFunction,
+ bookingStatus?: BookingStatus
+) {
const eventLocationType = getEventLocationType(location);
let locationToDisplay = location;
if (eventLocationType && !eventLocationType.default && eventLocationType.linkType === "dynamic") {
- const isConfirmed = status === BookingStatus.ACCEPTED;
+ const isConfirmed = bookingStatus === BookingStatus.ACCEPTED;
- if (status === BookingStatus.CANCELLED || status === BookingStatus.REJECTED) {
+ if (bookingStatus === BookingStatus.CANCELLED || bookingStatus === BookingStatus.REJECTED) {
locationToDisplay == t("web_conference");
} else if (isConfirmed) {
locationToDisplay =
diff --git a/packages/emails/email-manager.ts b/packages/emails/email-manager.ts
index db1f8c7c9e..75e4b43844 100644
--- a/packages/emails/email-manager.ts
+++ b/packages/emails/email-manager.ts
@@ -5,9 +5,9 @@ import AttendeeCancelledEmail from "./templates/attendee-cancelled-email";
import AttendeeDeclinedEmail from "./templates/attendee-declined-email";
import AttendeeLocationChangeEmail from "./templates/attendee-location-change-email";
import AttendeeRequestEmail from "./templates/attendee-request-email";
-import AttendeeRequestRescheduledEmail from "./templates/attendee-request-reschedule-email";
import AttendeeRescheduledEmail from "./templates/attendee-rescheduled-email";
import AttendeeScheduledEmail from "./templates/attendee-scheduled-email";
+import AttendeeWasRequestedToRescheduleEmail from "./templates/attendee-was-requested-to-reschedule-email";
import BrokenIntegrationEmail from "./templates/broken-integration-email";
import FeedbackEmail, { Feedback } from "./templates/feedback-email";
import ForgotPasswordEmail, { PasswordReset } from "./templates/forgot-password-email";
@@ -16,7 +16,7 @@ import OrganizerLocationChangeEmail from "./templates/organizer-location-change-
import OrganizerPaymentRefundFailedEmail from "./templates/organizer-payment-refund-failed-email";
import OrganizerRequestEmail from "./templates/organizer-request-email";
import OrganizerRequestReminderEmail from "./templates/organizer-request-reminder-email";
-import OrganizerRequestRescheduleEmail from "./templates/organizer-request-reschedule-email";
+import OrganizerRequestedToRescheduleEmail from "./templates/organizer-requested-to-reschedule-email";
import OrganizerRescheduledEmail from "./templates/organizer-rescheduled-email";
import OrganizerScheduledEmail from "./templates/organizer-scheduled-email";
import TeamInviteEmail, { TeamInvite } from "./templates/team-invite-email";
@@ -53,7 +53,7 @@ export const sendScheduledEmails = async (calEvent: CalendarEvent) => {
export const sendRescheduledEmails = async (calEvent: CalendarEvent) => {
const emailsToSend: Promise[] = [];
-
+ // @TODO: we should obtain who is rescheduling the event and send them a different email
emailsToSend.push(
...calEvent.attendees.map((attendee) => {
return new Promise((resolve, reject) => {
@@ -73,7 +73,7 @@ export const sendRescheduledEmails = async (calEvent: CalendarEvent) => {
const scheduledEmail = new OrganizerRescheduledEmail(calEvent);
resolve(scheduledEmail.sendEmail());
} catch (e) {
- reject(console.error("OrganizerScheduledEmail.sendEmail failed", e));
+ reject(console.error("OrganizerRescheduledEmail.sendEmail failed", e));
}
})
);
@@ -255,10 +255,10 @@ export const sendRequestRescheduleEmail = async (
emailsToSend.push(
new Promise((resolve, reject) => {
try {
- const requestRescheduleEmail = new AttendeeRequestRescheduledEmail(calEvent, metadata);
+ const requestRescheduleEmail = new AttendeeWasRequestedToRescheduleEmail(calEvent, metadata);
resolve(requestRescheduleEmail.sendEmail());
} catch (e) {
- reject(console.error("AttendeeRequestRescheduledEmail.sendEmail failed", e));
+ reject(console.error("AttendeeWasRequestedToRescheduleEmail.sendEmail failed", e));
}
})
);
@@ -266,10 +266,10 @@ export const sendRequestRescheduleEmail = async (
emailsToSend.push(
new Promise((resolve, reject) => {
try {
- const requestRescheduleEmail = new OrganizerRequestRescheduleEmail(calEvent, metadata);
+ const requestRescheduleEmail = new OrganizerRequestedToRescheduleEmail(calEvent, metadata);
resolve(requestRescheduleEmail.sendEmail());
} catch (e) {
- reject(console.error("OrganizerRequestRescheduledEmail.sendEmail failed", e));
+ reject(console.error("OrganizerRequestedToRescheduleEmail.sendEmail failed", e));
}
})
);
diff --git a/packages/emails/src/templates/AttendeeRescheduledEmail.tsx b/packages/emails/src/templates/AttendeeRescheduledEmail.tsx
index 33966dc52d..9e0ab07943 100644
--- a/packages/emails/src/templates/AttendeeRescheduledEmail.tsx
+++ b/packages/emails/src/templates/AttendeeRescheduledEmail.tsx
@@ -4,7 +4,7 @@ export const AttendeeRescheduledEmail = (props: React.ComponentProps
);
diff --git a/packages/emails/src/templates/AttendeeRequestRescheduledEmail.tsx b/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
similarity index 93%
rename from packages/emails/src/templates/AttendeeRequestRescheduledEmail.tsx
rename to packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
index 77cdba9237..763057d74e 100644
--- a/packages/emails/src/templates/AttendeeRequestRescheduledEmail.tsx
+++ b/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
@@ -1,7 +1,7 @@
import { CallToAction, CallToActionTable } from "../components";
import { OrganizerScheduledEmail } from "./OrganizerScheduledEmail";
-export const AttendeeRequestRescheduledEmail = (
+export const AttendeeWasRequestedToRescheduleEmail = (
props: { metadata: { rescheduleLink: string } } & React.ComponentProps
) => (
) => (
);
diff --git a/packages/emails/src/templates/index.ts b/packages/emails/src/templates/index.ts
index 918f6b76e4..b1682fc23f 100644
--- a/packages/emails/src/templates/index.ts
+++ b/packages/emails/src/templates/index.ts
@@ -3,7 +3,7 @@ export { AttendeeCancelledEmail } from "./AttendeeCancelledEmail";
export { AttendeeDeclinedEmail } from "./AttendeeDeclinedEmail";
export { AttendeeLocationChangeEmail } from "./AttendeeLocationChangeEmail";
export { AttendeeRequestEmail } from "./AttendeeRequestEmail";
-export { AttendeeRequestRescheduledEmail } from "./AttendeeRequestRescheduledEmail";
+export { AttendeeWasRequestedToRescheduleEmail } from "./AttendeeWasRequestedToRescheduleEmail";
export { AttendeeRescheduledEmail } from "./AttendeeRescheduledEmail";
export { AttendeeScheduledEmail } from "./AttendeeScheduledEmail";
export { FeedbackEmail } from "./FeedbackEmail";
@@ -13,7 +13,7 @@ export { OrganizerLocationChangeEmail } from "./OrganizerLocationChangeEmail";
export { OrganizerPaymentRefundFailedEmail } from "./OrganizerPaymentRefundFailedEmail";
export { OrganizerRequestEmail } from "./OrganizerRequestEmail";
export { OrganizerRequestReminderEmail } from "./OrganizerRequestReminderEmail";
-export { OrganizerRequestRescheduledEmail } from "./OrganizerRequestRescheduledEmail";
+export { OrganizerRequestedToRescheduleEmail } from "./OrganizerRequestedToRescheduleEmail";
export { OrganizerRescheduledEmail } from "./OrganizerRescheduledEmail";
export { OrganizerScheduledEmail } from "./OrganizerScheduledEmail";
export { TeamInviteEmail } from "./TeamInviteEmail";
diff --git a/packages/emails/templates/attendee-rescheduled-email.ts b/packages/emails/templates/attendee-rescheduled-email.ts
index e7e079d1ac..aca08219b9 100644
--- a/packages/emails/templates/attendee-rescheduled-email.ts
+++ b/packages/emails/templates/attendee-rescheduled-email.ts
@@ -11,12 +11,12 @@ export default class AttendeeRescheduledEmail extends AttendeeScheduledEmail {
to: `${this.attendee.name} <${this.attendee.email}>`,
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: [...this.calEvent.attendees.map(({ email }) => email), this.calEvent.organizer.email],
- subject: `${this.attendee.language.translate("rescheduled_event_type_subject", {
+ subject: `${this.attendee.language.translate("event_type_has_been_rescheduled_on_time_date", {
eventType: this.calEvent.type,
name: this.calEvent.team?.name || this.calEvent.organizer.name,
date: this.getFormattedDate(),
})}`,
- html: renderEmail("AttendeeCancelledEmail", {
+ html: renderEmail("AttendeeRescheduledEmail", {
calEvent: this.calEvent,
attendee: this.attendee,
}),
diff --git a/packages/emails/templates/attendee-scheduled-email.ts b/packages/emails/templates/attendee-scheduled-email.ts
index 8a86a0393b..e2cc52d75e 100644
--- a/packages/emails/templates/attendee-scheduled-email.ts
+++ b/packages/emails/templates/attendee-scheduled-email.ts
@@ -71,7 +71,7 @@ export default class AttendeeScheduledEmail extends BaseEmail {
name: this.calEvent.team?.name || this.calEvent.organizer.name,
date: this.getFormattedDate(),
})}`,
- html: renderEmail("AttendeeScheduledEmail", {
+ html: renderEmail("AttendeeRescheduledEmail", {
calEvent: this.calEvent,
attendee: this.attendee,
}),
diff --git a/packages/emails/templates/attendee-request-reschedule-email.ts b/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts
similarity index 94%
rename from packages/emails/templates/attendee-request-reschedule-email.ts
rename to packages/emails/templates/attendee-was-requested-to-reschedule-email.ts
index 2a325a79cc..a30131d4f4 100644
--- a/packages/emails/templates/attendee-request-reschedule-email.ts
+++ b/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts
@@ -4,10 +4,10 @@ import dayjs from "@calcom/dayjs";
import { getCancelLink } from "@calcom/lib/CalEventParser";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { renderEmail } from "../";
+import { renderEmail } from "..";
import OrganizerScheduledEmail from "./organizer-scheduled-email";
-export default class AttendeeRequestRescheduledEmail extends OrganizerScheduledEmail {
+export default class AttendeeWasRequestedToRescheduleEmail extends OrganizerScheduledEmail {
private metadata: { rescheduleLink: string };
constructor(calEvent: CalendarEvent, metadata: { rescheduleLink: string }) {
super(calEvent);
@@ -27,7 +27,7 @@ export default class AttendeeRequestRescheduledEmail extends OrganizerScheduledE
eventType: this.calEvent.type,
name: this.calEvent.attendees[0].name,
})}`,
- html: renderEmail("AttendeeRequestRescheduledEmail", {
+ html: renderEmail("AttendeeWasRequestedToRescheduleEmail", {
calEvent: this.calEvent,
attendee: this.calEvent.organizer,
metadata: this.metadata,
diff --git a/packages/emails/templates/organizer-request-reschedule-email.ts b/packages/emails/templates/organizer-requested-to-reschedule-email.ts
similarity index 93%
rename from packages/emails/templates/organizer-request-reschedule-email.ts
rename to packages/emails/templates/organizer-requested-to-reschedule-email.ts
index 452c3489a3..5abdf1ebc9 100644
--- a/packages/emails/templates/organizer-request-reschedule-email.ts
+++ b/packages/emails/templates/organizer-requested-to-reschedule-email.ts
@@ -4,10 +4,10 @@ import dayjs from "@calcom/dayjs";
import { getRichDescription } from "@calcom/lib/CalEventParser";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { renderEmail } from "../";
+import { renderEmail } from "..";
import OrganizerScheduledEmail from "./organizer-scheduled-email";
-export default class OrganizerRequestRescheduledEmail extends OrganizerScheduledEmail {
+export default class OrganizerRequestedToRescheduleEmail extends OrganizerScheduledEmail {
private metadata: { rescheduleLink: string };
constructor(calEvent: CalendarEvent, metadata: { rescheduleLink: string }) {
super(calEvent);
@@ -28,7 +28,7 @@ export default class OrganizerRequestRescheduledEmail extends OrganizerScheduled
name: this.calEvent.attendees[0].name,
date: this.getFormattedDate(),
})}`,
- html: renderEmail("OrganizerRequestRescheduledEmail", {
+ html: renderEmail("OrganizerRequestedToRescheduleEmail", {
calEvent: this.calEvent,
attendee: this.calEvent.organizer,
}),
diff --git a/packages/emails/templates/organizer-rescheduled-email.ts b/packages/emails/templates/organizer-rescheduled-email.ts
index 551a555773..d48d12e58b 100644
--- a/packages/emails/templates/organizer-rescheduled-email.ts
+++ b/packages/emails/templates/organizer-rescheduled-email.ts
@@ -20,7 +20,7 @@ export default class OrganizerRescheduledEmail extends OrganizerScheduledEmail {
},
from: `Cal.com <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
- subject: `${this.calEvent.organizer.language.translate("rescheduled_event_type_subject", {
+ subject: `${this.calEvent.organizer.language.translate("event_type_has_been_rescheduled_on_time_date", {
eventType: this.calEvent.type,
name: this.calEvent.attendees[0].name,
date: `${this.getOrganizerStart("h:mma")} - ${this.getOrganizerEnd(
diff --git a/packages/lib/CalEventParser.ts b/packages/lib/CalEventParser.ts
index b73d2dc872..efdf8ee265 100644
--- a/packages/lib/CalEventParser.ts
+++ b/packages/lib/CalEventParser.ts
@@ -93,7 +93,10 @@ export const getLocation = (calEvent: CalendarEvent) => {
export const getProviderName = (calEvent: CalendarEvent): string => {
// TODO: use getAppName from @calcom/app-store
if (calEvent.location && calEvent.location.includes("integrations:")) {
- const location = calEvent.location.split(":")[1];
+ let location = calEvent.location.split(":")[1];
+ if (location === "daily") {
+ location = "Cal Video";
+ }
return location[0].toUpperCase() + location.slice(1);
}
// If location its a url, probably we should be validating it with a custom library