diff --git a/apps/web/pages/api/email.ts b/apps/web/pages/api/email.ts
index e353dfa4c6..6e99a6e77e 100644
--- a/apps/web/pages/api/email.ts
+++ b/apps/web/pages/api/email.ts
@@ -60,7 +60,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
res.setHeader("Content-Type", "text/html");
res.setHeader("Cache-Control", "no-cache, no-store, private, must-revalidate");
res.write(
- renderEmail("OrganizerScheduledEmail", {
+ renderEmail("OrganizerRequestEmail", {
calEvent: evt,
attendee: evt.organizer,
})
diff --git a/apps/web/public/emails/confirmIcon.png b/apps/web/public/emails/confirmIcon.png
new file mode 100644
index 0000000000..d20ec56445
Binary files /dev/null and b/apps/web/public/emails/confirmIcon.png differ
diff --git a/apps/web/public/emails/confirmIcon.svg b/apps/web/public/emails/confirmIcon.svg
new file mode 100644
index 0000000000..16e6b00573
--- /dev/null
+++ b/apps/web/public/emails/confirmIcon.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/web/public/emails/rejectIcon.png b/apps/web/public/emails/rejectIcon.png
new file mode 100644
index 0000000000..da19051177
Binary files /dev/null and b/apps/web/public/emails/rejectIcon.png differ
diff --git a/apps/web/public/emails/rejectIcon.svg b/apps/web/public/emails/rejectIcon.svg
new file mode 100644
index 0000000000..bd2446ce30
--- /dev/null
+++ b/apps/web/public/emails/rejectIcon.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/emails/src/components/CallToAction.tsx b/packages/emails/src/components/CallToAction.tsx
index 0ba00f1b96..04007623c7 100644
--- a/packages/emails/src/components/CallToAction.tsx
+++ b/packages/emails/src/components/CallToAction.tsx
@@ -1,33 +1,76 @@
-import { LinkIcon } from "./LinkIcon";
+import { CallToActionIcon } from "./CallToActionIcon";
-export const CallToAction = (props: { label: string; href: string; secondary?: boolean }) => (
-
-
- {props.label}
-
-
-
-);
+export const CallToAction = (props: {
+ label: string;
+ href: string;
+ secondary?: boolean;
+ startIconName?: string;
+ endIconName?: string;
+}) => {
+ const { label, href, secondary, startIconName, endIconName } = props;
+
+ const calculatePadding = () => {
+ const paddingTop = "0.625rem";
+ const paddingBottom = "0.625rem";
+ let paddingLeft = "1rem";
+ let paddingRight = "1rem";
+
+ if (startIconName) {
+ paddingLeft = "0.875rem";
+ } else if (endIconName) {
+ paddingRight = "0.875rem";
+ }
+
+ return `${paddingTop} ${paddingRight} ${paddingBottom} ${paddingLeft}`;
+ };
+
+ return (
+
+
+ {startIconName && (
+
+ )}
+ {label}
+ {endIconName && }
+
+
+ );
+};
diff --git a/packages/emails/src/components/CallToActionIcon.tsx b/packages/emails/src/components/CallToActionIcon.tsx
new file mode 100644
index 0000000000..c90be53867
--- /dev/null
+++ b/packages/emails/src/components/CallToActionIcon.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+
+import { WEBAPP_URL } from "@calcom/lib/constants";
+
+export const CallToActionIcon = ({
+ secondary,
+ iconName,
+ style,
+}: {
+ secondary?: boolean;
+ iconName: string;
+ style?: React.CSSProperties;
+}) => (
+
+);
diff --git a/packages/emails/src/components/LinkIcon.tsx b/packages/emails/src/components/LinkIcon.tsx
deleted file mode 100644
index 190da6aee0..0000000000
--- a/packages/emails/src/components/LinkIcon.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { BASE_URL, IS_PRODUCTION } from "@calcom/lib/constants";
-
-export const LinkIcon = ({ secondary }: { secondary?: boolean }) => (
-
-);
diff --git a/packages/emails/src/components/LocationInfo.tsx b/packages/emails/src/components/LocationInfo.tsx
index b8bf8d7c54..fe69bf5813 100644
--- a/packages/emails/src/components/LocationInfo.tsx
+++ b/packages/emails/src/components/LocationInfo.tsx
@@ -5,8 +5,8 @@ import { getVideoCallUrl } from "@calcom/lib/CalEventParser";
import logger from "@calcom/lib/logger";
import type { CalendarEvent } from "@calcom/types/Calendar";
+import { CallToActionIcon } from "./CallToActionIcon";
import { Info } from "./Info";
-import { LinkIcon } from "./LinkIcon";
export function LocationInfo(props: { calEvent: CalendarEvent; t: TFunction }) {
const { t } = props;
@@ -40,7 +40,7 @@ export function LocationInfo(props: { calEvent: CalendarEvent; t: TFunction }) {
title={t("meeting_url")}
style={{ color: "#101010" }}
rel="noreferrer">
- {providerName || "Link"}
+ {providerName || "Link"}
}
extraInfo={
diff --git a/packages/emails/src/components/index.ts b/packages/emails/src/components/index.ts
index bfbe24f865..de16cac108 100644
--- a/packages/emails/src/components/index.ts
+++ b/packages/emails/src/components/index.ts
@@ -4,7 +4,7 @@ export { CallToAction } from "./CallToAction";
export { CallToActionTable } from "./CallToActionTable";
export { UserFieldsResponses } from "./UserFieldsResponses";
export { Info } from "./Info";
-export { LinkIcon } from "./LinkIcon";
+export { CallToActionIcon } from "./CallToActionIcon";
export { LocationInfo } from "./LocationInfo";
export { ManageLink } from "./ManageLink";
export { default as RawHtml } from "./RawHtml";
diff --git a/packages/emails/src/templates/AttendeeAwaitingPaymentEmail.tsx b/packages/emails/src/templates/AttendeeAwaitingPaymentEmail.tsx
index 4a593f5970..a02408cd22 100644
--- a/packages/emails/src/templates/AttendeeAwaitingPaymentEmail.tsx
+++ b/packages/emails/src/templates/AttendeeAwaitingPaymentEmail.tsx
@@ -8,7 +8,7 @@ function ManageLink(props: React.ComponentProps)
return (
-
+
);
}
diff --git a/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx b/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
index 763057d74e..256e77596b 100644
--- a/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
+++ b/packages/emails/src/templates/AttendeeWasRequestedToRescheduleEmail.tsx
@@ -17,7 +17,7 @@ export const AttendeeWasRequestedToRescheduleEmail = (
subject="rescheduled_event_type_subject"
callToAction={
-
+
}
{...props}
diff --git a/packages/emails/src/templates/OrganizerRequestEmail.tsx b/packages/emails/src/templates/OrganizerRequestEmail.tsx
index ab441b27dc..9454aaf1c6 100644
--- a/packages/emails/src/templates/OrganizerRequestEmail.tsx
+++ b/packages/emails/src/templates/OrganizerRequestEmail.tsx
@@ -1,7 +1,7 @@
import { WEBAPP_URL } from "@calcom/lib/constants";
import { symmetricEncrypt } from "@calcom/lib/crypto";
-import { CallToAction, CallToActionTable, Separator } from "../components";
+import { CallToAction, Separator, CallToActionTable } from "../components";
import { OrganizerScheduledEmail } from "./OrganizerScheduledEmail";
export const OrganizerRequestEmail = (props: React.ComponentProps) => {
@@ -21,13 +21,15 @@ export const OrganizerRequestEmail = (props: React.ComponentProps
diff --git a/packages/emails/src/templates/TeamInviteEmail.tsx b/packages/emails/src/templates/TeamInviteEmail.tsx
index f6e0a5c92e..a99b805c51 100644
--- a/packages/emails/src/templates/TeamInviteEmail.tsx
+++ b/packages/emails/src/templates/TeamInviteEmail.tsx
@@ -55,6 +55,7 @@ export const TeamInviteEmail = (