diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts
index e2163cb2ed..2068d0210d 100644
--- a/packages/app-store/apps.metadata.generated.ts
+++ b/packages/app-store/apps.metadata.generated.ts
@@ -24,6 +24,7 @@ import { metadata as n8n_meta } from "./n8n/_metadata";
import { metadata as office365calendar_meta } from "./office365calendar/_metadata";
import { metadata as office365video_meta } from "./office365video/_metadata";
import { metadata as ping_meta } from "./ping/_metadata";
+import { metadata as pipedream_meta } from "./pipedream/_metadata";
import { metadata as qr_code_meta } from "./qr_code/_metadata";
import { metadata as rainbow_meta } from "./rainbow/_metadata";
import { metadata as raycast_meta } from "./raycast/_metadata";
@@ -62,6 +63,7 @@ export const appStoreMetadata = {
office365calendar: office365calendar_meta,
office365video: office365video_meta,
ping: ping_meta,
+ pipedream: pipedream_meta,
qr_code: qr_code_meta,
rainbow: rainbow_meta,
raycast: raycast_meta,
diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts
index 519c8884d0..6f26fcc999 100644
--- a/packages/app-store/apps.server.generated.ts
+++ b/packages/app-store/apps.server.generated.ts
@@ -23,6 +23,7 @@ export const apiHandlers = {
office365calendar: import("./office365calendar/api"),
office365video: import("./office365video/api"),
ping: import("./ping/api"),
+ pipedream: import("./pipedream/api"),
qr_code: import("./qr_code/api"),
rainbow: import("./rainbow/api"),
raycast: import("./raycast/api"),
diff --git a/packages/app-store/pipedream/README.mdx b/packages/app-store/pipedream/README.mdx
new file mode 100644
index 0000000000..f5b4266197
--- /dev/null
+++ b/packages/app-store/pipedream/README.mdx
@@ -0,0 +1,20 @@
+---
+description: Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't
+items:
+ - /api/app-store/pipedream/1.png
+ - /api/app-store/pipedream/2.png
+ - /api/app-store/pipedream/3.png
+ - /api/app-store/pipedream/4.png
+ - /api/app-store/pipedream/5.png
+---
+
+
+
+
+{description}
+
+
+
+
+
+
diff --git a/packages/app-store/pipedream/_metadata.ts b/packages/app-store/pipedream/_metadata.ts
new file mode 100644
index 0000000000..9c7f2aa320
--- /dev/null
+++ b/packages/app-store/pipedream/_metadata.ts
@@ -0,0 +1,10 @@
+import type { AppMeta } from "@calcom/types/App";
+
+import config from "./config.json";
+
+export const metadata = {
+ category: "other",
+ ...config,
+} as AppMeta;
+
+export default metadata;
diff --git a/packages/app-store/pipedream/api/add.ts b/packages/app-store/pipedream/api/add.ts
new file mode 100644
index 0000000000..dfcce1fa5e
--- /dev/null
+++ b/packages/app-store/pipedream/api/add.ts
@@ -0,0 +1,18 @@
+import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+
+import { createDefaultInstallation } from "../../_utils/installation";
+import appConfig from "../config.json";
+
+const handler: AppDeclarativeHandler = {
+ // Instead of passing appType and slug from here, api/integrations/[..args] should be able to derive and pass these directly to createCredential
+ appType: appConfig.type,
+ variant: appConfig.variant,
+ slug: appConfig.slug,
+ supportsMultipleInstalls: false,
+ handlerType: "add",
+ redirectUrl: "https://pipedream.com/apps/cal-com",
+ createCredential: ({ appType, user, slug }) =>
+ createDefaultInstallation({ appType, userId: user.id, slug, key: {} }),
+};
+
+export default handler;
diff --git a/packages/app-store/pipedream/api/index.ts b/packages/app-store/pipedream/api/index.ts
new file mode 100644
index 0000000000..4c0d2ead01
--- /dev/null
+++ b/packages/app-store/pipedream/api/index.ts
@@ -0,0 +1 @@
+export { default as add } from "./add";
diff --git a/packages/app-store/pipedream/components/.gitkeep b/packages/app-store/pipedream/components/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/app-store/pipedream/config.json b/packages/app-store/pipedream/config.json
new file mode 100644
index 0000000000..77205a2951
--- /dev/null
+++ b/packages/app-store/pipedream/config.json
@@ -0,0 +1,16 @@
+{
+ "/*": "Don't modify slug - If required, do it using cli edit command",
+ "name": "Pipedream",
+ "slug": "pipedream",
+ "type": "pipedream_automation",
+ "imageSrc": "/api/app-store/pipedream/icon.svg",
+ "logo": "/api/app-store/pipedream/icon.svg",
+ "url": "https://pipedream.com/apps/cal-com",
+ "variant": "automation",
+ "categories": ["automation"],
+ "publisher": "Pipedream, Inc.",
+ "email": "support@pipedream.com",
+ "description": "Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't",
+ "extendsFeature": "User",
+ "__createdUsingCli": true
+}
diff --git a/packages/app-store/pipedream/index.ts b/packages/app-store/pipedream/index.ts
new file mode 100644
index 0000000000..5d372ceda3
--- /dev/null
+++ b/packages/app-store/pipedream/index.ts
@@ -0,0 +1,2 @@
+export * as api from "./api";
+export { metadata } from "./_metadata";
diff --git a/packages/app-store/pipedream/package.json b/packages/app-store/pipedream/package.json
new file mode 100644
index 0000000000..77db0d05da
--- /dev/null
+++ b/packages/app-store/pipedream/package.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "private": true,
+ "name": "@calcom/pipedream",
+ "version": "0.0.0",
+ "main": "./index.ts",
+ "description": "Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't",
+ "dependencies": {
+ "@calcom/lib": "*"
+ },
+ "devDependencies": {
+ "@calcom/types": "*"
+ }
+}
diff --git a/packages/app-store/pipedream/static/1.png b/packages/app-store/pipedream/static/1.png
new file mode 100644
index 0000000000..2361b23556
Binary files /dev/null and b/packages/app-store/pipedream/static/1.png differ
diff --git a/packages/app-store/pipedream/static/2.png b/packages/app-store/pipedream/static/2.png
new file mode 100644
index 0000000000..dfc596ad97
Binary files /dev/null and b/packages/app-store/pipedream/static/2.png differ
diff --git a/packages/app-store/pipedream/static/3.png b/packages/app-store/pipedream/static/3.png
new file mode 100644
index 0000000000..85b08551ce
Binary files /dev/null and b/packages/app-store/pipedream/static/3.png differ
diff --git a/packages/app-store/pipedream/static/4.png b/packages/app-store/pipedream/static/4.png
new file mode 100644
index 0000000000..5868e0b240
Binary files /dev/null and b/packages/app-store/pipedream/static/4.png differ
diff --git a/packages/app-store/pipedream/static/5.png b/packages/app-store/pipedream/static/5.png
new file mode 100644
index 0000000000..b69d3b008c
Binary files /dev/null and b/packages/app-store/pipedream/static/5.png differ
diff --git a/packages/app-store/pipedream/static/icon.svg b/packages/app-store/pipedream/static/icon.svg
new file mode 100644
index 0000000000..aebdc2cd3d
--- /dev/null
+++ b/packages/app-store/pipedream/static/icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json
index 6a382ac020..f0aae7ec48 100644
--- a/packages/prisma/seed-app-store.config.json
+++ b/packages/prisma/seed-app-store.config.json
@@ -83,5 +83,11 @@
"categories": ["analytics"],
"slug": "fathom",
"type": "fathom_analytics"
+ },
+ {
+ "dirName": "pipedream",
+ "categories": ["automation"],
+ "slug": "pipedream",
+ "type": "pipedream_automation"
}
]