Duty rosters · Shift planning

DutyCheck

Duty rosters for shift-driven teams. Periods, conflict rules, and the draft → published → closed lifecycle are enforced server-side. A published roster matches the authoritative state on the server — including audit snapshots.

  • Self-hosted
  • PHP 8.2 – 8.5 · NC 32–34
  • AGPL-3.0-or-later

What it does

DutyCheck splits planning into clear lifecycle steps — open, published, closed — so the right people see the right roster at the right time, and you have a clean record afterwards.

Period workflow

Open, 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 shows conflicts; the backend has the final say.

Role-aware views

Planner and employee views — each sees what they need, with optional per-location planner scope.

Absence requests

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 enlarge. Use or the on-screen arrows to browse the gallery; Esc to close.

DutyCheck Mobile (optional)

The web app stays free (AGPL). The official phone app is for organisations that want staff to view and acknowledge the duty roster on their phone. List price: €5 per user / year, from €25 / year for up to five users (invoice and licence key). Android; not yet publicly listed on the Play Store — the web app covers roster operations. No iOS, no Terminal SKU.

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.5
  • 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.