From 13c60ba052342526dbea078a49fed4eeb92aeb4e Mon Sep 17 00:00:00 2001 From: Michelle Date: Mon, 2 Mar 2026 10:35:01 +0100 Subject: [PATCH] feat: add calendar component with event management features including create, edit, delete, and share functionalities --- .gitea/workflows/docker.yaml | 2 +- outlook-addin/README.md | 57 +++ outlook-addin/assets/icon-16.svg | 4 + outlook-addin/assets/icon-32.svg | 4 + outlook-addin/assets/icon-80.svg | 4 + outlook-addin/manifest.xml | 117 +++++ outlook-addin/taskpane.html | 565 +++++++++++++++++++++++ server/config/database.js | 76 ++++ server/index.js | 4 + server/routes/calendar.js | 489 ++++++++++++++++++++ src/App.jsx | 2 + src/components/Sidebar.jsx | 3 +- src/i18n/de.json | 54 +++ src/i18n/en.json | 54 +++ src/index.css | 26 ++ src/pages/Calendar.jsx | 744 +++++++++++++++++++++++++++++++ src/themes/index.js | 7 + 17 files changed, 2210 insertions(+), 2 deletions(-) create mode 100644 outlook-addin/README.md create mode 100644 outlook-addin/assets/icon-16.svg create mode 100644 outlook-addin/assets/icon-32.svg create mode 100644 outlook-addin/assets/icon-80.svg create mode 100644 outlook-addin/manifest.xml create mode 100644 outlook-addin/taskpane.html create mode 100644 server/routes/calendar.js create mode 100644 src/pages/Calendar.jsx diff --git a/.gitea/workflows/docker.yaml b/.gitea/workflows/docker.yaml index 5cca9e2..02f99e1 100644 --- a/.gitea/workflows/docker.yaml +++ b/.gitea/workflows/docker.yaml @@ -4,7 +4,7 @@ on: push: branches: - main - - federation-try + - develop-calendar release: types: [published] diff --git a/outlook-addin/README.md b/outlook-addin/README.md new file mode 100644 index 0000000..82b0085 --- /dev/null +++ b/outlook-addin/README.md @@ -0,0 +1,57 @@ +# Redlight Outlook Add-in + +An Outlook Add-in (compatible with **Outlook on the Web** and **Outlook 365 / New Outlook**) that lets you create a Redlight meeting room directly from your Outlook calendar. + +## Setup + +### 1. Configure Environment + +Edit `taskpane.html` and replace the `REDLIGHT_BASE_URL` at the top of the script section with your Redlight instance URL: + +```js +const REDLIGHT_BASE_URL = 'https://your-redlight-instance.com'; +``` + +### 2. Update Manifest + +Edit `manifest.xml` and update: +- All `` entries to point to where you host these files. +- The `` GUID if you want a unique add-in identifier. +- `` / `` as needed. + +### 3. Host the Add-in Files + +The add-in files (`taskpane.html`, `manifest.xml`) must be served over **HTTPS**. Options: + +1. **Host on your Redlight server** — place the files in `public/outlook-addin/` and they'll be served at `https://your-domain/outlook-addin/taskpane.html`. +2. **Host anywhere** — any static HTTPS server works. + +### 4. Sideload or Deploy + +#### Sideload for Testing (Outlook Web) +1. Go to **Outlook on the Web** → [https://outlook.office.com](https://outlook.office.com) +2. Click the **gear icon** → **View all Outlook settings** → **Mail** → **Customize actions** → **Get add-ins** +3. Click **My add-ins** → **Add a custom add-in** → **Add from file...** +4. Upload `manifest.xml` + +#### Sideload for Testing (Outlook 365 Desktop) +1. Open Outlook → **File** → **Manage Add-ins** (or **Get Add-ins**) +2. Click **My Add-ins** → **Add a custom add-in** → **Add from file...** +3. Select `manifest.xml` + +#### Deploy via Microsoft 365 Admin Center +1. Go to admin.microsoft.com → **Settings** → **Integrated apps** +2. Upload the manifest to deploy for your organization + +## Usage + +1. Open your **Outlook Calendar** and create a **new event** +2. In the compose toolbar, click the **Redlight** icon +3. Log in with your Redlight credentials (token is cached for future use) +4. Select an existing room or create a new one +5. Click **Insert Meeting Link** — the room join URL will be inserted into the event body and location + +## Files + +- `manifest.xml` — Office Add-in manifest (defines capabilities, icons, URLs) +- `taskpane.html` — The add-in UI and logic (single-file HTML+CSS+JS) diff --git a/outlook-addin/assets/icon-16.svg b/outlook-addin/assets/icon-16.svg new file mode 100644 index 0000000..6727bc2 --- /dev/null +++ b/outlook-addin/assets/icon-16.svg @@ -0,0 +1,4 @@ + + + + diff --git a/outlook-addin/assets/icon-32.svg b/outlook-addin/assets/icon-32.svg new file mode 100644 index 0000000..3f63c70 --- /dev/null +++ b/outlook-addin/assets/icon-32.svg @@ -0,0 +1,4 @@ + + + + diff --git a/outlook-addin/assets/icon-80.svg b/outlook-addin/assets/icon-80.svg new file mode 100644 index 0000000..f098bf1 --- /dev/null +++ b/outlook-addin/assets/icon-80.svg @@ -0,0 +1,4 @@ + + + + diff --git a/outlook-addin/manifest.xml b/outlook-addin/manifest.xml new file mode 100644 index 0000000..f6bb0be --- /dev/null +++ b/outlook-addin/manifest.xml @@ -0,0 +1,117 @@ + + + + a1b2c3d4-e5f6-7890-abcd-ef1234567890 + 1.0.0 + Redlight + en-US + + + + + + + + + + + + + + + +
+ + + 600 + +
+
+ + ReadWriteItem + + + + + true + + + + + + + + + + + + + + +