diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts
index 5bf5cf5637fa42..3733ff0d8d38bd 100644
--- a/packages/app-store/apps.metadata.generated.ts
+++ b/packages/app-store/apps.metadata.generated.ts
@@ -13,6 +13,7 @@ import routing_forms_config_json from "./ee/routing-forms/config.json";
import { metadata as exchange2013calendar__metadata_ts } from "./exchange2013calendar/_metadata";
import { metadata as exchange2016calendar__metadata_ts } from "./exchange2016calendar/_metadata";
import exchangecalendar_config_json from "./exchangecalendar/config.json";
+import facetime_config_json from "./facetime/config.json";
import fathom_config_json from "./fathom/config.json";
import ga4_config_json from "./ga4/config.json";
import { metadata as giphy__metadata_ts } from "./giphy/_metadata";
@@ -68,6 +69,7 @@ export const appStoreMetadata = {
exchange2013calendar: exchange2013calendar__metadata_ts,
exchange2016calendar: exchange2016calendar__metadata_ts,
exchangecalendar: exchangecalendar_config_json,
+ facetime: facetime_config_json,
fathom: fathom_config_json,
ga4: ga4_config_json,
giphy: giphy__metadata_ts,
diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts
index 66ed6541b83bc4..9ea61df5633898 100644
--- a/packages/app-store/apps.server.generated.ts
+++ b/packages/app-store/apps.server.generated.ts
@@ -13,6 +13,7 @@ export const apiHandlers = {
exchange2013calendar: import("./exchange2013calendar/api"),
exchange2016calendar: import("./exchange2016calendar/api"),
exchangecalendar: import("./exchangecalendar/api"),
+ facetime: import("./facetime/api"),
fathom: import("./fathom/api"),
ga4: import("./ga4/api"),
giphy: import("./giphy/api"),
diff --git a/packages/app-store/facetime/DESCRIPTION.md b/packages/app-store/facetime/DESCRIPTION.md
new file mode 100644
index 00000000000000..6dbf65a2d2a379
--- /dev/null
+++ b/packages/app-store/facetime/DESCRIPTION.md
@@ -0,0 +1,7 @@
+---
+items:
+ - /api/app-store/facetime/facetime1.png
+ - /api/app-store/facetime/facetime2.png
+---
+
+With FaceTime, it’s easy to stay in touch. You can make audio and video calls with up to 32 people, share your screen, enjoy films and music together, and more.
diff --git a/packages/app-store/facetime/api/add.ts b/packages/app-store/facetime/api/add.ts
new file mode 100644
index 00000000000000..44d56bb0fa6d87
--- /dev/null
+++ b/packages/app-store/facetime/api/add.ts
@@ -0,0 +1,16 @@
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+
+import { createDefaultInstallation } from "../../_utils/installation";
+import appConfig from "../config.json";
+
+const handler: AppDeclarativeHandler = {
+ appType: appConfig.type,
+ variant: appConfig.variant,
+ slug: appConfig.slug,
+ supportsMultipleInstalls: false,
+ handlerType: "add",
+ createCredential: ({ appType, user, slug }) =>
+ createDefaultInstallation({ appType, userId: user.id, slug, key: {} }),
+};
+
+export default handler;
diff --git a/packages/app-store/facetime/api/index.ts b/packages/app-store/facetime/api/index.ts
new file mode 100644
index 00000000000000..4c0d2ead01e1f9
--- /dev/null
+++ b/packages/app-store/facetime/api/index.ts
@@ -0,0 +1 @@
+export { default as add } from "./add";
diff --git a/packages/app-store/facetime/config.json b/packages/app-store/facetime/config.json
new file mode 100644
index 00000000000000..d652a2451995c5
--- /dev/null
+++ b/packages/app-store/facetime/config.json
@@ -0,0 +1,26 @@
+{
+ "/*": "Don't modify slug - If required, do it using cli edit command",
+ "name": "Facetime",
+ "title": "Facetime",
+ "slug": "facetime",
+ "type": "facetime_video",
+ "imageSrc": "/api/app-store/facetime/icon.svg",
+ "logo": "/api/app-store/facetime/icon.svg",
+ "url": "https://cal.com/apps/facetime",
+ "variant": "conferencing",
+ "categories": ["video"],
+ "publisher": "Mythie",
+ "email": "help@cal.com",
+ "description": "Facetime makes it super simple for collaborating teams to jump on a video call.",
+ "__createdUsingCli": true,
+ "appData": {
+ "location": {
+ "linkType": "static",
+ "type": "integrations:facetime_video",
+ "label": "Facetime",
+ "organizerInputPlaceholder": "https://facetime.apple.com/join... link copied from the FaceTime app",
+ "urlRegExp": "^https?:\\/\\/facetime\\.apple\\.com\\/join.+$"
+ }
+ },
+ "isTemplate": false
+}
diff --git a/packages/app-store/facetime/index.ts b/packages/app-store/facetime/index.ts
new file mode 100644
index 00000000000000..d7f36022040096
--- /dev/null
+++ b/packages/app-store/facetime/index.ts
@@ -0,0 +1 @@
+export * as api from "./api";
diff --git a/packages/app-store/facetime/package.json b/packages/app-store/facetime/package.json
new file mode 100644
index 00000000000000..7157e96e021da4
--- /dev/null
+++ b/packages/app-store/facetime/package.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "private": true,
+ "name": "@calcom/facetime",
+ "version": "0.0.0",
+ "main": "./index.ts",
+ "description": "Facetime makes it super simple for collaborating teams to jump on a video call.",
+ "dependencies": {
+ "@calcom/lib": "*"
+ },
+ "devDependencies": {
+ "@calcom/types": "*"
+ }
+}
diff --git a/packages/app-store/facetime/static/facetime1.png b/packages/app-store/facetime/static/facetime1.png
new file mode 100644
index 00000000000000..53f91dd46ddba9
Binary files /dev/null and b/packages/app-store/facetime/static/facetime1.png differ
diff --git a/packages/app-store/facetime/static/facetime2.png b/packages/app-store/facetime/static/facetime2.png
new file mode 100644
index 00000000000000..84684665a4e940
Binary files /dev/null and b/packages/app-store/facetime/static/facetime2.png differ
diff --git a/packages/app-store/facetime/static/icon.svg b/packages/app-store/facetime/static/icon.svg
new file mode 100644
index 00000000000000..48de5172eb60ff
--- /dev/null
+++ b/packages/app-store/facetime/static/icon.svg
@@ -0,0 +1,8 @@
+
diff --git a/packages/app-store/facetime/static/logo.svg b/packages/app-store/facetime/static/logo.svg
new file mode 100644
index 00000000000000..48de5172eb60ff
--- /dev/null
+++ b/packages/app-store/facetime/static/logo.svg
@@ -0,0 +1,8 @@
+
diff --git a/packages/app-store/index.ts b/packages/app-store/index.ts
index 0d8277a07cc216..f639df57b9c713 100644
--- a/packages/app-store/index.ts
+++ b/packages/app-store/index.ts
@@ -6,6 +6,7 @@ import * as dailyvideo from "./dailyvideo";
import * as exchange2013calendar from "./exchange2013calendar";
import * as exchange2016calendar from "./exchange2016calendar";
import * as exchangecalendar from "./exchangecalendar";
+import * as facetime from "./facetime";
import * as giphy from "./giphy";
import * as googlecalendar from "./googlecalendar";
import * as googlevideo from "./googlevideo";
@@ -52,6 +53,7 @@ const appStore = {
exchange2013calendar,
exchange2016calendar,
exchangecalendar,
+ facetime,
};
export default appStore;
diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json
index e0c669cb61edaf..f93db4f144874a 100644
--- a/packages/prisma/seed-app-store.config.json
+++ b/packages/prisma/seed-app-store.config.json
@@ -197,5 +197,12 @@
"slug": "basic",
"type": "basic_other",
"isTemplate": true
+ },
+ {
+ "dirName": "facetime",
+ "categories": ["video"],
+ "slug": "facetime",
+ "type": "facetime_video",
+ "isTemplate": false
}
]