2.2 KiB
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, andcalendar: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 /calendarroute 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/calendaroutput 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.