diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts
index d57470b56b..5045918ebe 100644
--- a/packages/app-store/apps.metadata.generated.ts
+++ b/packages/app-store/apps.metadata.generated.ts
@@ -30,6 +30,7 @@ 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";
import { metadata as riverside_meta } from "./riverside/_metadata";
+import { metadata as sirius_video_meta } from "./sirius_video/_metadata";
import { metadata as slackmessaging_meta } from "./slackmessaging/_metadata";
import { metadata as stripepayment_meta } from "./stripepayment/_metadata";
import { metadata as tandemvideo_meta } from "./tandemvideo/_metadata";
@@ -70,6 +71,7 @@ export const appStoreMetadata = {
rainbow: rainbow_meta,
raycast: raycast_meta,
riverside: riverside_meta,
+ sirius_video: sirius_video_meta,
slackmessaging: slackmessaging_meta,
stripepayment: stripepayment_meta,
tandemvideo: tandemvideo_meta,
diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts
index ea0bac4e2a..88c88c9ad2 100644
--- a/packages/app-store/apps.server.generated.ts
+++ b/packages/app-store/apps.server.generated.ts
@@ -29,6 +29,7 @@ export const apiHandlers = {
rainbow: import("./rainbow/api"),
raycast: import("./raycast/api"),
riverside: import("./riverside/api"),
+ sirius_video: import("./sirius_video/api"),
slackmessaging: import("./slackmessaging/api"),
stripepayment: import("./stripepayment/api"),
tandemvideo: import("./tandemvideo/api"),
diff --git a/packages/app-store/sirius_video/README.mdx b/packages/app-store/sirius_video/README.mdx
new file mode 100644
index 0000000000..3d9b864849
--- /dev/null
+++ b/packages/app-store/sirius_video/README.mdx
@@ -0,0 +1,12 @@
+---
+description: Video meetings made for music. Create your own virtual music classroom, easily.
+items:
+ - /api/app-store/sirius_video/1.jpg
+ - /api/app-store/sirius_video/2.jpg
+ - /api/app-store/sirius_video/3.jpg
+---
+
+
+
+{description}
+
diff --git a/packages/app-store/sirius_video/_metadata.ts b/packages/app-store/sirius_video/_metadata.ts
new file mode 100644
index 0000000000..9c7f2aa320
--- /dev/null
+++ b/packages/app-store/sirius_video/_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/sirius_video/api/add.ts b/packages/app-store/sirius_video/api/add.ts
new file mode 100644
index 0000000000..45c6741f36
--- /dev/null
+++ b/packages/app-store/sirius_video/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,
+ 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/sirius_video/api/index.ts b/packages/app-store/sirius_video/api/index.ts
new file mode 100644
index 0000000000..4c0d2ead01
--- /dev/null
+++ b/packages/app-store/sirius_video/api/index.ts
@@ -0,0 +1 @@
+export { default as add } from "./add";
diff --git a/packages/app-store/sirius_video/components/.gitkeep b/packages/app-store/sirius_video/components/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/app-store/sirius_video/config.json b/packages/app-store/sirius_video/config.json
new file mode 100644
index 0000000000..900fa8c6a2
--- /dev/null
+++ b/packages/app-store/sirius_video/config.json
@@ -0,0 +1,24 @@
+{
+ "/*": "Don't modify slug - If required, do it using cli edit command",
+ "name": "Sirius Video",
+ "slug": "sirius_video",
+ "type": "sirius_video_video",
+ "imageSrc": "/api/app-store/sirius_video/icon.svg",
+ "logo": "/api/app-store/sirius_video/icon.svg",
+ "url": "https://cal.com/apps/sirius_video",
+ "variant": "conferencing",
+ "categories": ["video"],
+ "publisher": "Cal.com, Inc.",
+ "email": "support@cal.com",
+ "description": "Video meetings made for music.\rCreate your own virtual music classroom, easily.",
+ "__createdUsingCli": true,
+ "appData": {
+ "location": {
+ "type": "integrations:sirius_video_video",
+ "label": "Sirius Video",
+ "linkType": "static",
+ "organizerInputPlaceholder": "https://sirius.video/sebastian",
+ "urlRegExp": "^http(s)?:\\/\\/(www\\.)?sirius.video\\/[a-zA-Z0-9]*"
+ }
+ }
+}
diff --git a/packages/app-store/sirius_video/index.ts b/packages/app-store/sirius_video/index.ts
new file mode 100644
index 0000000000..5d372ceda3
--- /dev/null
+++ b/packages/app-store/sirius_video/index.ts
@@ -0,0 +1,2 @@
+export * as api from "./api";
+export { metadata } from "./_metadata";
diff --git a/packages/app-store/sirius_video/package.json b/packages/app-store/sirius_video/package.json
new file mode 100644
index 0000000000..17e803a333
--- /dev/null
+++ b/packages/app-store/sirius_video/package.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "private": true,
+ "name": "@calcom/sirius_video",
+ "version": "0.0.0",
+ "main": "./index.ts",
+ "description": "Video meetings made for music.\rCreate your own virtual music classroom, easily.",
+ "dependencies": {
+ "@calcom/lib": "*"
+ },
+ "devDependencies": {
+ "@calcom/types": "*"
+ }
+}
diff --git a/packages/app-store/sirius_video/static/1.jpg b/packages/app-store/sirius_video/static/1.jpg
new file mode 100644
index 0000000000..0bee10657d
Binary files /dev/null and b/packages/app-store/sirius_video/static/1.jpg differ
diff --git a/packages/app-store/sirius_video/static/2.jpg b/packages/app-store/sirius_video/static/2.jpg
new file mode 100644
index 0000000000..9957119508
Binary files /dev/null and b/packages/app-store/sirius_video/static/2.jpg differ
diff --git a/packages/app-store/sirius_video/static/3.jpg b/packages/app-store/sirius_video/static/3.jpg
new file mode 100644
index 0000000000..184e82a9bf
Binary files /dev/null and b/packages/app-store/sirius_video/static/3.jpg differ
diff --git a/packages/app-store/sirius_video/static/icon.svg b/packages/app-store/sirius_video/static/icon.svg
new file mode 100644
index 0000000000..c96664855b
--- /dev/null
+++ b/packages/app-store/sirius_video/static/icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json
index 4b3878ec3e..4b468c0f02 100644
--- a/packages/prisma/seed-app-store.config.json
+++ b/packages/prisma/seed-app-store.config.json
@@ -95,5 +95,11 @@
"categories": ["automation"],
"slug": "pipedream",
"type": "pipedream_automation"
+ },
+ {
+ "dirName": "sirius_video",
+ "categories": ["video"],
+ "slug": "sirius_video",
+ "type": "sirius_video_video"
}
]