Initialize GovOPlaN calendar module

This commit is contained in:
2026-07-07 02:49:44 +02:00
commit 3bcb04ff76
36 changed files with 3410 additions and 0 deletions

69
README.md Normal file
View File

@@ -0,0 +1,69 @@
# 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`.