There you will find the API keys section which allows you to generate a key for use. More information on this can be found on the Cal Authentication page.
+
Use API key in your Cal trigger node credentials in n8n.
+
\ No newline at end of file
diff --git a/packages/app-store/n8n/_metadata.ts b/packages/app-store/n8n/_metadata.ts
new file mode 100644
index 0000000000..9c7f2aa320
--- /dev/null
+++ b/packages/app-store/n8n/_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/n8n/api/add.ts b/packages/app-store/n8n/api/add.ts
new file mode 100644
index 0000000000..deca8fbda3
--- /dev/null
+++ b/packages/app-store/n8n/api/add.ts
@@ -0,0 +1,17 @@
+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,
+ slug: appConfig.slug,
+ supportsMultipleInstalls: false,
+ handlerType: "add",
+ redirectUrl: "https://n8n.io/integrations/817-cal-trigger/",
+ createCredential: ({ appType, user, slug }) =>
+ createDefaultInstallation({ appType, userId: user.id, slug, key: {} }),
+};
+
+export default handler;
diff --git a/packages/app-store/n8n/api/index.ts b/packages/app-store/n8n/api/index.ts
new file mode 100644
index 0000000000..4c0d2ead01
--- /dev/null
+++ b/packages/app-store/n8n/api/index.ts
@@ -0,0 +1 @@
+export { default as add } from "./add";
diff --git a/packages/app-store/n8n/components/.gitkeep b/packages/app-store/n8n/components/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/app-store/n8n/config.json b/packages/app-store/n8n/config.json
new file mode 100644
index 0000000000..5bca3fd84d
--- /dev/null
+++ b/packages/app-store/n8n/config.json
@@ -0,0 +1,15 @@
+{
+ "/*": "Don't modify slug - If required, do it using cli edit command",
+ "name": "n8n",
+ "slug": "n8n",
+ "type": "n8n_other",
+ "imageSrc": "/api/app-store/n8n/icon.svg",
+ "logo": "/api/app-store/n8n/icon.svg",
+ "url": "https://cal.com/apps/n8n",
+ "variant": "other",
+ "categories": ["other"],
+ "publisher": "Cal.com, Inc.",
+ "email": "help@cal.com",
+ "description": "Automate without limits. The workflow automation platform that doesn't box you in, that you never outgrow",
+ "__createdUsingCli": true
+}
diff --git a/packages/app-store/n8n/index.ts b/packages/app-store/n8n/index.ts
new file mode 100644
index 0000000000..5d372ceda3
--- /dev/null
+++ b/packages/app-store/n8n/index.ts
@@ -0,0 +1,2 @@
+export * as api from "./api";
+export { metadata } from "./_metadata";
diff --git a/packages/app-store/n8n/package.json b/packages/app-store/n8n/package.json
new file mode 100644
index 0000000000..325000f1fa
--- /dev/null
+++ b/packages/app-store/n8n/package.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "private": true,
+ "name": "@calcom/n8n",
+ "version": "0.0.0",
+ "main": "./index.ts",
+ "description": "Automate without limits. The workflow automation platform that doesn't box you in, that you never outgrow",
+ "dependencies": {
+ "@calcom/lib": "*"
+ },
+ "devDependencies": {
+ "@calcom/types": "*"
+ }
+}
diff --git a/packages/app-store/n8n/static/1.png b/packages/app-store/n8n/static/1.png
new file mode 100644
index 0000000000..4cc4562e3e
Binary files /dev/null and b/packages/app-store/n8n/static/1.png differ
diff --git a/packages/app-store/n8n/static/2.png b/packages/app-store/n8n/static/2.png
new file mode 100644
index 0000000000..b8b82385e8
Binary files /dev/null and b/packages/app-store/n8n/static/2.png differ
diff --git a/packages/app-store/n8n/static/3.png b/packages/app-store/n8n/static/3.png
new file mode 100644
index 0000000000..e4c3ba6717
Binary files /dev/null and b/packages/app-store/n8n/static/3.png differ
diff --git a/packages/app-store/n8n/static/4.gif b/packages/app-store/n8n/static/4.gif
new file mode 100644
index 0000000000..92c6b65a6e
Binary files /dev/null and b/packages/app-store/n8n/static/4.gif differ
diff --git a/packages/app-store/n8n/static/icon.svg b/packages/app-store/n8n/static/icon.svg
new file mode 100644
index 0000000000..0311686341
--- /dev/null
+++ b/packages/app-store/n8n/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 d3b3431334..3574206843 100644
--- a/packages/prisma/seed-app-store.config.json
+++ b/packages/prisma/seed-app-store.config.json
@@ -53,5 +53,11 @@
"categories": ["other"],
"slug": "raycast",
"type": "raycast_other"
+ },
+ {
+ "dirName": "n8n",
+ "categories": ["other"],
+ "slug": "n8n",
+ "type": "n8n_other"
}
]