diff --git a/apps/web/pages/icons.tsx b/apps/web/pages/icons.tsx
new file mode 100644
index 0000000000..d15a292bca
--- /dev/null
+++ b/apps/web/pages/icons.tsx
@@ -0,0 +1,77 @@
+"use client";
+
+import type { InferGetStaticPropsType } from "next";
+import { Inter } from "next/font/google";
+import localFont from "next/font/local";
+import Head from "next/head";
+
+import { APP_NAME } from "@calcom/lib/constants";
+import type { IconName } from "@calcom/ui";
+import { Icon, IconSprites } from "@calcom/ui";
+
+import { lucideIconList } from "../../../packages/ui/components/icon/icon-list.mjs";
+
+const interFont = Inter({ subsets: ["latin"], variable: "--font-inter", preload: true, display: "swap" });
+const calFont = localFont({
+ src: "../fonts/CalSans-SemiBold.woff2",
+ variable: "--font-cal",
+ preload: true,
+ display: "swap",
+ weight: "600",
+});
+
+export const getStaticProps = async () => {
+ return {
+ props: {
+ icons: Array.from(lucideIconList).sort() as IconName[],
+ },
+ };
+};
+
+const IconGrid = (props: {
+ title: string;
+ icons: IconName[];
+ rootClassName?: string;
+ iconClassName?: string;
+}) => (
+
+
{props.title}
+
+ {props.icons.map((icon) => {
+ return (
+
+ );
+ })}
+
+
+);
+
+export default function IconsPage(props: InferGetStaticPropsType) {
+ return (
+
+
+
Icon showcase | {APP_NAME}
+
+
+
+
+
Icons showcase
+
+
+
+
+ );
+}
diff --git a/apps/web/playwright/icons.e2e.ts b/apps/web/playwright/icons.e2e.ts
new file mode 100644
index 0000000000..ab68bf289e
--- /dev/null
+++ b/apps/web/playwright/icons.e2e.ts
@@ -0,0 +1,10 @@
+import { expect } from "@playwright/test";
+
+import { test } from "./lib/fixtures";
+
+test("Icons render properly", async ({ page }, testInfo) => {
+ await page.goto("/icons");
+ await expect(page).toHaveScreenshot("icons.png", {
+ fullPage: true,
+ });
+});
diff --git a/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-darwin.png b/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-darwin.png
new file mode 100644
index 0000000000..9ba6975127
Binary files /dev/null and b/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-darwin.png differ
diff --git a/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-linux.png b/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-linux.png
new file mode 100644
index 0000000000..632c305f10
Binary files /dev/null and b/apps/web/playwright/icons.e2e.ts-snapshots/icons--calcom-web-linux.png differ
diff --git a/apps/web/public/icons/sprite.svg b/apps/web/public/icons/sprite.svg
index 5d0c578415..d65166c2e9 100644
--- a/apps/web/public/icons/sprite.svg
+++ b/apps/web/public/icons/sprite.svg
@@ -2,77 +2,77 @@