From e1bccd89756ac86f8201436fd90616c9293b645d Mon Sep 17 00:00:00 2001 From: zemion Date: Tue, 7 Jul 2026 21:58:57 +0200 Subject: [PATCH] Create canonical wiki page Repo README --- Repo-README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Repo-README.md diff --git a/Repo-README.md b/Repo-README.md new file mode 100644 index 0000000..a45143c --- /dev/null +++ b/Repo-README.md @@ -0,0 +1,76 @@ + + +> Mirrored from `/mnt/DATA/git/govoplan-calendar/README.md`. +> Origin: `repository`. +> Active tasks and changing state belong in Gitea issues; this wiki page is durable project context. + +--- +# govoplan-calendar + +GovOPlaN Calendar is the standalone calendar module. It provides tenant calendar collections, iCalendar/VEVENT event storage, a calendar WebUI, and integration boundaries for scheduling, tasks, mail, appointments, workflow, notifications, and external groupware. + +## Ownership + +This repository owns: + +- backend module manifest `calendar` +- calendar permissions such as `calendar:calendar:read`, `calendar:event:read`, `calendar:event:write`, and `calendar:event:export` +- tenant calendar collections +- VEVENT storage with structured query fields plus raw iCalendar property preservation +- iCalendar import/export endpoints +- calendar WebUI package `@govoplan/calendar-webui` +- `/calendar` route and navigation contribution + +Core owns auth, tenants, RBAC evaluation, database/session primitives, CSRF/API helpers, and shell layout. + +## Views + +The WebUI starts with the standard operational views: + +- month +- week +- workweek +- day +- continuous week-row calendar, where scrolling moves line by line through weeks rather than jumping from one month page to the next + +## iCalendar model + +The first backend implementation stores VEVENT data in two layers: + +- normalized fields for API range queries and calendar rendering +- raw iCalendar property records and generated `text/calendar` output so unsupported VEVENT properties and parameters can round-trip + +This is intentionally not yet a network CalDAV server. CalDAV protocol sync, external ETags, REPORT handling, scheduling inbox/outbox behavior, and full recurrence expansion are calendar-owned follow-up work. + +## Development + +Install through the core environment: + +```bash +cd /mnt/DATA/git/govoplan-core +./.venv/bin/python -m pip install -r requirements-dev.txt +``` + +Run the WebUI from the core host: + +```bash +cd /mnt/DATA/git/govoplan-core/webui +PATH=/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run dev +``` + +## Module integration + +Backend entry point: + +```toml +[project.entry-points."govoplan.modules"] +calendar = "govoplan_calendar.backend.manifest:get_manifest" +``` + +Frontend package: + +```text +@govoplan/calendar-webui +``` + +The integration concept is maintained in `docs/CALENDAR_INTEGRATION_CONCEPT.md`.