Duty rosters · Shift planning

DutyCheck

Plan duty rosters for shift-driven teams. Periods, conflicts, and lifecycle rules are enforced by the server so a published roster always reflects reality.

Self-hosted PHP 8.2 – 8.4 AGPL-3.0-or-later

What it does

DutyCheck splits planning into clear lifecycle steps — draft, validate, publish, close — so the right people see the right roster at the right time, and you have a clean record afterwards.

Period workflow

Draft, validate, publish, and close rosters with explicit guardrails. Reopening is controlled and traceable.

Conflict rules

Overlaps, rest periods, and policy checks are enforced server-side. The UI surfaces, the backend decides.

Role-aware views

Planner, location lead, and employee views — each sees what they need and nothing they shouldn't.

Self-service absences

Request and review absences directly in the app, alongside the schedule itself.

Audit snapshots

Evidence snapshots show exactly what was published and when. Useful when a customer or auditor asks later.

Optional time-tracking link

Mirror absences into ArbeitszeitCheck when it is installed (optional, switchable in settings).

Built for security services

Designed against real workflows for security and shift-driven service companies — but applicable wherever rosters need to be auditable.

Accessibility

Targets WCAG 2.1 AA: full keyboard navigation, screen-reader-friendly markup, responsive layout from 320 px.

Screenshots

Click a screenshot to view it full-size. Press Esc to close.

Install & requirements

DutyCheck is published in the official Nextcloud App Store and on GitHub.

From the App Store

  1. Sign in to Nextcloud as administrator.
  2. Open Apps.
  3. Search for DutyCheck.
  4. Download and enable.

Manually from Git

git clone https://github.com/aSoftwareByDesignRepository/\
nextcloud-dutycheck.git \
  /path/to/nextcloud/apps/dutycheck
cd /path/to/nextcloud
php occ app:enable dutycheck

Requirements

  • PHP 8.2 – 8.4
  • MySQL / MariaDB or PostgreSQL
  • Optional: ArbeitszeitCheck for absence mirroring

Back to all apps

Support this app

These apps are maintained in public. If DutyCheck helps your organisation, you can fund ongoing work through GitHub Sponsors. Want a feature shipped sooner or tailored to your setup? Contact us — we are happy to discuss sponsored feature development.