GovOPlaN Scheduling
Repository type: module (domain).
GovOPlaN Scheduling owns meeting scheduling and Terminfindung: finding
suitable times across people, resources, calendars, constraints, and scheduling
polls.
This repository is initialized as a discoverable module seed. It exposes the module manifest, permission surface, role templates, and documentation metadata before runtime APIs, database models, migrations, and WebUI routes are introduced.
The core boundary decision register is in
/mnt/DATA/git/govoplan-core/docs/MODULE_ARCHITECTURE.md.
Scope
Scheduling owns:
- meeting scheduling polls and proposals built on
govoplan-poll - participant availability collection
- time-window and resource constraints
- candidate-slot ranking and conflict explanation
- scheduling state, reminders, and decision handoff
- optional links to external calendar/groupware systems through capabilities
- organizer permissions and poll administration semantics
Scheduling does not own:
- calendar primitives such as events, recurrence, availability storage, resources, and calendar adapters; those belong in
govoplan-calendar - fixed-slot public or internal appointment booking; that belongs in
govoplan-appointments - tasks, case work, approvals, and generic workflow state; those belong in
govoplan-tasks,govoplan-cases, andgovoplan-workflow - mail delivery or notifications; those belong in
govoplan-mailandgovoplan-notifications
Poll Audience Decision
Scheduling polls should support both internal and external/public participation, but the first implementation may start internal-only.
- Internal polls use Access/IDM identities, groups, permissions, and calendar free/busy capability lookups.
- External/public polls use signed participation links through Portal, minimal participant identity, and explicit retention/privacy settings.
- Mixed polls are allowed only when the organizer has permission to invite external participants and the poll explains which participant data is visible.
Privacy, Retention, And Audit
Participant availability is sensitive operational data. Scheduling must record:
- poll creator, tenant, organizer, invited participants, and access scope
- what each participant can see about other participants
- retention deadline for availability responses and poll links
- audit events for poll creation, invite send, response update, decision, cancellation, and handoff
- trace IDs for mail/notification/portal handoff
Availability responses should be removable or redacted after the poll decision unless a configured process requires longer evidence retention.
Candidate Capabilities
scheduling.pollsscheduling.availabilityCollectorscheduling.candidateSlotsscheduling.decisionHandoffscheduling.portalParticipation
Manifest Dependency Decision
The Scheduling manifest declares poll as a required dependency because
availability collection and option/date poll primitives belong in
govoplan-poll.
The manifest declares access and evaluation as optional dependencies.
Scheduling may use Access for identity, groups, and permissions, and may trigger
post-event or post-appointment feedback through Evaluation. It must not require
either module just to find a meeting time.
Expected Integrations
govoplan-poll: required availability matrix and lightweight poll primitivesgovoplan-evaluation: optional post-event, post-appointment, or process feedbackgovoplan-calendar: availability, calendars, resources, rooms, recurrence, Open-Xchange/calendar adaptersgovoplan-appointments: conversion from a selected meeting time into a booked appointment where appropriategovoplan-accessandgovoplan-idm: optional participants, groups, directory lookup, permissionsgovoplan-mailandgovoplan-notifications: invitations, reminders, confirmationsgovoplan-portal: external participant scheduling flowsgovoplan-workflowandgovoplan-tasks: follow-up work after a time is selected
First Package Scaffold Decision
The first implementation slice should add runtime APIs and WebUI routes around the existing manifest seed:
- backend manifest, permissions, DTOs, and APIs for internal polls
- WebUI route contribution for poll creation and response collection
- capability contracts for calendar free/busy, access/IDM lookup, mail/notification sending, portal participation links, appointment handoff, and workflow/task follow-up
The active backlog lives in Gitea issues.