diff --git a/packages/features/ee/workflows/api/scheduleEmailReminders.ts b/packages/features/ee/workflows/api/scheduleEmailReminders.ts index 898c5e9dd9..e960c9eca6 100644 --- a/packages/features/ee/workflows/api/scheduleEmailReminders.ts +++ b/packages/features/ee/workflows/api/scheduleEmailReminders.ts @@ -240,6 +240,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } else if (reminder.workflowStep.template === WorkflowTemplates.REMINDER) { emailContent = emailReminderTemplate( false, + reminder.booking.user?.locale || "en", reminder.workflowStep.action, getTimeFormatStringFromUserTimeFormat(reminder.booking.user?.timeFormat), reminder.booking.startTime.toISOString() || "", @@ -366,6 +367,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { emailContent = emailReminderTemplate( false, + reminder.booking.user?.locale || "en", WorkflowActions.EMAIL_ATTENDEE, getTimeFormatStringFromUserTimeFormat(reminder.booking.user?.timeFormat), reminder.booking.startTime.toISOString() || "", diff --git a/packages/features/ee/workflows/components/WorkflowStepContainer.tsx b/packages/features/ee/workflows/components/WorkflowStepContainer.tsx index f412d45abe..aaf34f7b47 100644 --- a/packages/features/ee/workflows/components/WorkflowStepContainer.tsx +++ b/packages/features/ee/workflows/components/WorkflowStepContainer.tsx @@ -81,7 +81,7 @@ const getTimeSectionText = (trigger: WorkflowTriggerEvents, t: TFunction) => { }; export default function WorkflowStepContainer(props: WorkflowStepProps) { - const { t } = useLocale(); + const { t, i18n } = useLocale(); const utils = trpc.useUtils(); const { step, form, reload, setReload, teamId } = props; @@ -145,13 +145,14 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) { whatsappReminderTemplate(true, action, timeFormat) ); } else { - const reminderBodyTemplate = emailReminderTemplate(true, action, timeFormat).emailBody; + const reminderBodyTemplate = emailReminderTemplate(true, i18n.language, action, timeFormat).emailBody; form.setValue(`steps.${step.stepNumber - 1}.reminderBody`, reminderBodyTemplate); } } if (!form.getValues(`steps.${step.stepNumber - 1}.emailSubject`)) { const subjectTemplate = emailReminderTemplate( true, + i18n.language, form.getValues(`steps.${step.stepNumber - 1}.action`), timeFormat ).emailSubject; @@ -525,6 +526,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) { } else { const emailReminderBody = emailReminderTemplate( true, + i18n.language, val.value, timeFormat ); @@ -832,11 +834,11 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) { } else { form.setValue( `steps.${step.stepNumber - 1}.reminderBody`, - emailReminderTemplate(true, action, timeFormat).emailBody + emailReminderTemplate(true, i18n.language, action, timeFormat).emailBody ); form.setValue( `steps.${step.stepNumber - 1}.emailSubject`, - emailReminderTemplate(true, action, timeFormat).emailSubject + emailReminderTemplate(true, i18n.language, action, timeFormat).emailSubject ); } } else if (val.value === WorkflowTemplates.RATING) { diff --git a/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts b/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts index 5819b3e0ae..4c40ee8d56 100644 --- a/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts +++ b/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts @@ -185,6 +185,7 @@ export const scheduleEmailReminder = async (args: scheduleEmailReminderArgs) => } else if (template === WorkflowTemplates.REMINDER) { emailContent = emailReminderTemplate( false, + evt.organizer.language.locale, action, evt.organizer.timeFormat, startTime, diff --git a/packages/features/ee/workflows/lib/reminders/templates/emailReminderTemplate.ts b/packages/features/ee/workflows/lib/reminders/templates/emailReminderTemplate.ts index 14b1bf589e..e9862da5b3 100644 --- a/packages/features/ee/workflows/lib/reminders/templates/emailReminderTemplate.ts +++ b/packages/features/ee/workflows/lib/reminders/templates/emailReminderTemplate.ts @@ -5,6 +5,7 @@ import { WorkflowActions } from "@calcom/prisma/enums"; const emailReminderTemplate = ( isEditingMode: boolean, + locale: string, action?: WorkflowActions, timeFormat?: TimeFormat, startTime?: string, @@ -28,9 +29,9 @@ const emailReminderTemplate = ( name = action === WorkflowActions.EMAIL_ATTENDEE ? "{ATTENDEE}" : "{ORGANIZER}"; eventDate = `{EVENT_DATE_${dateTimeFormat}}`; } else { - eventDate = dayjs(startTime).tz(timeZone).format(dateTimeFormat); + eventDate = dayjs(startTime).tz(timeZone).locale(locale).format(dateTimeFormat); - endTime = dayjs(endTime).tz(timeZone).format(currentTimeFormat); + endTime = dayjs(endTime).tz(timeZone).locale(locale).format(currentTimeFormat); } const emailSubject = `Reminder: ${eventName} - ${eventDate}`; diff --git a/packages/trpc/server/routers/viewer/workflows/create.handler.ts b/packages/trpc/server/routers/viewer/workflows/create.handler.ts index 93c28e1402..ce64ca5c0b 100644 --- a/packages/trpc/server/routers/viewer/workflows/create.handler.ts +++ b/packages/trpc/server/routers/viewer/workflows/create.handler.ts @@ -68,6 +68,7 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => { const renderedEmailTemplate = emailReminderTemplate( true, + ctx.user.locale, WorkflowActions.EMAIL_ATTENDEE, getTimeFormatStringFromUserTimeFormat(ctx.user.timeFormat) );