1
Repo README
zemion edited this page 2026-07-07 21:58:57 +02:00

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:

cd /mnt/DATA/git/govoplan-core
./.venv/bin/python -m pip install -r requirements-dev.txt

Run the WebUI from the core host:

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:

[project.entry-points."govoplan.modules"]
calendar = "govoplan_calendar.backend.manifest:get_manifest"

Frontend package:

@govoplan/calendar-webui

The integration concept is maintained in docs/CALENDAR_INTEGRATION_CONCEPT.md.