Dienstplan

Beschreibung

Dienstplan ist ein selbst gehosteter Schicht- und Dienstplaner für WordPress. Er ist für Organisationen gemacht, die von Ehrenamtlichen getragen werden — Feuerwehren, Rettungsdienste, First-Responder-Teams, PSNV-/Kriseninterventionsgruppen, Sportvereine und ähnliche Vereinigungen — überall dort, wo der Plan funktionieren muss, ohne dass jemand hauptamtlich den Mitgliedern in Gruppenchats hinterherläuft.

Mitglieder tragen sich auf einer öffentlichen Kalenderseite selbst für Dienste ein. Koordinatoren sehen auf einen Blick, welche Dienste noch offen sind, wer sich bereits gemeldet hat und wer in diesem Zeitraum noch nichts übernommen hat. Jede Änderung wird protokolliert — Fragen wie „Wer hat mich am Samstag ausgetragen?“ haben damit eine klare Antwort.

Das Plugin läuft vollständig auf deiner eigenen WordPress-Installation. Mitgliederdaten, Pläne und Zusagen bleiben in deiner Datenbank — kein SaaS-Konto, keine laufenden Kosten für die kostenlose Version. Die einzige optionale ausgehende Verbindung ist die Feiertagsabfrage über openholidaysapi.org (standardmäßig deaktiviert; siehe External services weiter unten).

Was du damit machen kannst

  • Schichttypen definieren (Früh/Spät/Nacht, Fahrer/Sanitäter — was immer deine Organisation nutzt) und dem Dienstplan zuordnen (mehrere Dienstpläne mit dem Basis- oder Pro-Add-on)
  • Wochen- oder Monatspläne erstellen, die Mitglieder über den Shortcode [dienstplan] auf jeder beliebigen Seite deiner Website öffnen
  • Mitglieder tragen sich selbst für Dienste ein und auch wieder aus — Koordinatoren sehen die Änderung live, ohne E-Mail-Pingpong
  • Termine planen (Übungsabende, Feste, Bereitschaftsdienste) mit Kategorien und Anzeige im Kalender; Anmeldelisten pro Termin gibt es mit dem Basis- oder Pro-Add-on
  • Gruppenbasierte Zugriffsbeschränkungen für Dienste und Termine (Basis- & Pro-Add-on)
  • Jedem Benutzer seine persönlichen anstehenden Dienste in einem Dashboard-Widget anzeigen

Warum auf WordPress

Die meisten ehrenamtlich getragenen Organisationen betreiben bereits eine WordPress-Website für öffentliche Informationen, Neuigkeiten und Mitgliederkommunikation. Den Dienstplan direkt in diese bestehende Website zu integrieren bedeutet:

  • Kein neuer Login für deine Mitglieder — sie nutzen das WordPress-Konto, das sie bereits haben
  • Kein neues Tool, das du Vorstand oder Führung erst vorstellen musst
  • Kein Vendor-Lock-in — deine Daten liegen in deiner eigenen Datenbank und sind jederzeit exportierbar
  • Kein Datenschutz-Papierkram für ein externes SaaS — alles bleibt auf deinem Server

Free, Basis und Pro

Das Plugin, das du über WordPress.org installierst, ist die kostenlose Version — und bleibt dauerhaft kostenlos. Sie enthält einen Dienstplan, unbegrenzt viele Mitglieder, Schichttypen und Termine — ohne künstliche Obergrenzen für deine Planung.

Zwei optionale kommerzielle Add-ons erweitern dasselbe Plugin direkt an Ort und Stelle:

  • Basis — wiederkehrende Termine, Diensttausch zwischen Mitgliedern, gruppenbasierte Dienstbeschränkungen, Wochentags-Beschränkungen für Schichttypen, automatische E-Mail-Benachrichtigungen und ein Community-Feedback-Kanal. Geeignet für eingespielte Teams, die Self-Service-Abläufe brauchen.
  • Pro — alles aus Basis plus Statistiken mit exportierbaren Summen, ein manipulationssicheres Audit-Log, iCal-Feed und druckbarer PDF-Export sowie Termin-Anhänge (Einsatzbesprechungen, Streckenpläne, Karten). Geeignet für Organisationen mit Berichts- oder Nachweispflichten.

Details, Preise und der Upgrade-Pfad sind auf wp-dienstplan.de dokumentiert. Das Add-on wird als separates Plugin neben der kostenlosen Version installiert — deine Daten, Einstellungen und Dienstpläne bleiben automatisch erhalten.

Sprachen

Das Plugin wird mit Übersetzungen für Englisch, Deutsch, Spanisch, Französisch und Italienisch ausgeliefert. Die Quelltexte sind englisch; weitere Sprachen können über Standard-.po-/.mo-Dateien im Verzeichnis languages/ ergänzt werden.

Externe Dienste

Dieses Plugin verbindet sich mit der öffentlichen OpenHolidays-API (https://openholidaysapi.org), um offizielle Feiertagsdaten für das Land und (optional) die Region abzurufen, die unter Dienstplan Einstellungen Feiertage konfiguriert sind. Die Daten werden in deinen eigenen WordPress-Optionen gespeichert und als Hintergrund-Markierung im Kalender angezeigt, damit Mitglieder auf einen Blick sehen, welche Tage Feiertage sind. Die Funktion ist vollständig optional — wird das Feiertagsland in den Einstellungen geleert, findet kein einziger ausgehender Aufruf statt.

In drei Situationen wird eine Anfrage an https://openholidaysapi.org gesendet:

  • GET /Countries — einmalig, wenn der Administrator die Feiertags-Einstellungsseite öffnet und die Länderliste noch nicht zwischengespeichert ist. Keine Nutzdaten, nur eine HTTP-Anfrage.
  • GET /Subdivisions?countryIsoCode=XX — einmal pro Land, wenn der Administrator in den Einstellungen ein Land auswählt, um das Regionen-Dropdown zu befüllen. Der konfigurierte Ländercode wird als Query-Parameter übertragen.
  • GET /PublicHolidays?countryIsoCode=XX&languageIsoCode=YY&validFrom=YYYY-01-01&validTo=YYYY-12-31[&subdivisionCode=ZZZZ] — einmal jährlich per WordPress-Cron sowie bei Bedarf, wenn der Administrator auf der Einstellungsseite eine manuelle Aktualisierung anstößt. Der konfigurierte Ländercode, ggf. der Regionscode, der Sprachcode und das angefragte Jahr werden als Query-Parameter gesendet.

In jedem Fall werden ausschließlich vom Administrator eingegebene Konfigurationswerte übertragen (Land / Region / Sprache / Jahr). Es werden keine Mitgliedernamen, E-Mail-Adressen, Dienstdaten oder Audit-Log-Einträge gesendet.

Dieser Dienst wird von der STÜBER SYSTEMS GmbH als Open-Data-Projekt bereitgestellt: Nutzungsbedingungen, Datenschutzerklärung. Projektdokumentation und Datenquellen-Übersicht findest du auf https://www.openholidaysapi.org.

Datenschutz

Dienstplan ist so gebaut, dass alle mitgliederbezogenen Daten — Namen, E-Mail-Adressen (aus dem WordPress-Benutzerkonto), Dienstzuordnungen, Anmelde-Historie, Audit-Log-Einträge — ausschließlich in deiner eigenen WordPress-Datenbank bleiben. Das kostenlose Plugin stellt keine ausgehenden HTTP-Anfragen außer den oben unter External services dokumentierten OpenHolidays-Aufrufen.

Wenn du das optionale Basis- oder Pro-Add-on nutzt

Das kommerzielle Add-on kontaktiert einen separaten Lizenzserver unter lizenz.wp-dienstplan.de für die Lizenzaktivierung und eine tägliche Lizenzstatus-Prüfung. Die übertragenen Daten beschränken sich auf den Lizenzschlüssel, deine Website-URL und ein Status-Flag — es werden keine Mitgliederdaten, keine Dienstdaten und keine E-Mail-Adressen gesendet. Die Lizenzserver-Aktivität wird mit branchenüblichen Webserver-Logs (IP, Zeitstempel, User-Agent) zur Betrugsprävention protokolliert; die Datenschutzerklärung auf wp-dienstplan.de dokumentiert dies im Detail. Der Lizenzserver ist im kostenlosen, über WordPress.org verbreiteten Plugin nicht aktiv.

Cookies und Tracker

Dienstplan setzt keine eigenen Cookies und nutzt keine Dritt-Tracker. Das Plugin verwendet die Standard-Authentifizierungs-Cookies von WordPress für den Mitglieder-Login sowie localStorage, um auf Seiten mit mehreren Dienstplänen den zuletzt gewählten Plan zu merken.

Screenshots

Installation

Über WordPress.org (empfohlen)

  1. Gehe im WordPress-Admin zu Plugins Installieren.
  2. Suche nach „Dienstplan“.
  3. Klicke auf Jetzt installieren, dann auf Aktivieren.
  4. In der Admin-Seitenleiste erscheint ein neuer Eintrag Dienstplan — öffne ihn, um mit der Konfiguration zu beginnen.

Aus einer ZIP-Datei

  1. Lade die aktuelle ZIP-Datei von dieser Plugin-Seite oder aus deinem Konto auf wp-dienstplan.de herunter.
  2. Gehe im WordPress-Admin zu Plugins Installieren Plugin hochladen.
  3. Lade die ZIP-Datei hoch und klicke auf Jetzt installieren, dann auf Aktivieren.

Erste Schritte

  1. Öffne Dienstplan Übersicht für eine geführte Einrichtung deiner Schichttypen und Terminkategorien.
  2. Füge den Shortcode [dienstplan] auf der Seite ein, auf der deine Mitglieder den Kalender sehen sollen.
  3. Konfiguriere optional Feiertage unter Dienstplan Einstellungen Feiertage, damit freie Tage im Dienstplan sichtbar sind.

FAQ

Was braucht mein Hosting?

Normales Shared Hosting genügt. Voraussetzungen: WordPress 6.3 oder neuer und PHP 8.1 oder neuer. Keine speziellen Server-Module und kein Cron-Daemon nötig (das Plugin nutzt den eingebauten WordPress-Cron). Es sind keine externen Konten erforderlich; die optionale Feiertagsfunktion ruft bei Aktivierung openholidaysapi.org auf (siehe External services).

Wo werden Mitgliederdaten gespeichert?

Ausschließlich in deiner eigenen WordPress-Datenbank, auf deinem eigenen Server, unter deiner vollen Kontrolle. Das Plugin überträgt keine Mitgliederdaten an uns oder an Dritte. Wenn du in den Einstellungen Feiertage aktivierst, ruft das Plugin Feiertagsdaten von openholidaysapi.org ab (nur Konfigurationswerte — siehe External services und Privacy unten); andernfalls finden keine ausgehenden Anfragen statt.

Kann ich den Dienstplan auf einer öffentlichen Seite anzeigen?

Ja. Nutze den Shortcode [dienstplan] auf einer beliebigen Seite oder einem Beitrag. Über optionale Parameter kannst du den Kalender eingrenzen (z. B. [dienstplan year="2026" shift_type_id="5"]) — die vollständige Referenz findest du in der Hilfe im Admin-Bereich.

Wie funktioniert die Dienst-Anmeldung?

Mitglieder melden sich auf deiner WordPress-Website an, öffnen die Kalenderseite und klicken auf einen offenen Dienst, um zuzusagen. Sie können sich auch wieder von einem übernommenen Dienst austragen (die Änderung wird protokolliert). Koordinatoren sehen den Live-Stand auf derselben Seite und in der Admin-Übersicht.

Unterstützt das Plugin mehrere Schichttypen oder Dienstpläne?

Die kostenlose Version enthält einen Dienstplan mit unbegrenzt vielen Schichttypen und Terminen. Die Basis- und Pro-Add-ons ergänzen mehrere Dienstpläne, gruppenbasierte Beschränkungen, wiederkehrende Termine, Statistiken und ein Audit-Log.

Bleiben meine Daten bei einem Upgrade oder Downgrade zwischen Free, Basis und Pro erhalten?

Ja. Das Add-on nutzt dieselben Datenbanktabellen wie das kostenlose Plugin. Die Aktivierung von Basis oder Pro migriert oder verändert nichts — sie schaltet nur Funktionen frei. Beim Deaktivieren des Add-ons werden nur die Premium-Admin-Seiten ausgeblendet; deine Daten bleiben unverändert.

Gibt es eine öffentliche Roadmap oder eine Möglichkeit, Funktionen vorzuschlagen?

Ja — über die Seite Plugin verbessern im Admin-Bereich (verfügbar mit Basis und Pro) kannst du Vorschläge einreichen, Fehler melden, über bestehende Ideen abstimmen und sehen, woran gearbeitet wird. Ohne Lizenz kannst du Anliegen über das WordPress.org-Support-Forum dieses Plugins melden.

Wo bekomme ich Support?

Bei Fragen zur kostenlosen Version nutze bitte das WordPress.org-Support-Forum, das auf dieser Plugin-Seite verlinkt ist. Kunden mit Basis- oder Pro-Lizenz können sich zusätzlich per E-Mail an info@wp-dienstplan.de wenden (Lizenzschlüssel angeben).

Rezensionen

Für dieses Plugin gibt es keine Rezensionen.

Mitwirkende und Entwickler

„Dienstplan“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

„Dienstplan“ wurde in 1 Sprache übersetzt. Danke an die Übersetzer für ihre Mitwirkung.

Übersetze „Dienstplan“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN-Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

3.5.0 — 2026-06-15

Schwerpunkt Schichtplaner-Bedienung und Kalender-Lesbarkeit. Keine Breaking Changes.

  • Schichtplaner als Master-Detail-Ansicht: Pläne links in einer Seitenleiste, Schichten rechts — mit per Drag breitenverstellbarer (und per Doppelklick/Pfeiltasten justierbarer) Seitenleiste, deren Breite lokal gespeichert wird
  • Schichten lassen sich per Drag & Drop sortieren; einheitliches Aktiv/Inaktiv-Umschalten über alle Verwaltungstabellen (Schichten, E-Mails, Gruppen, Kategorien)
  • Schichtfarben werden jetzt direkt in der Monatsansicht angezeigt (farbige Markierung + Beschriftung)
  • Tarif-Vergleich überarbeitet: klar getrennte ICS-Stufen und neue Zeile „Mehrere Schichtpläne“
  • UI-Begriff vereinheitlicht: „Schichttyp“ „Schicht“
  • Aktualisierte und bereinigte Übersetzungen (DE/DE-formal/ES/FR/IT)

3.4.2 — 2026-06-09

  • readme: klargestellt, dass openholidaysapi.org der einzige optionale externe Dienst im kostenlosen Plugin ist (standardmäßig deaktiviert; keine Mitgliederdaten) — Description, FAQ und External services abgestimmt

3.4.1 — 2026-06-09

  • Fix: Dashboard-Widget „Meine Dienste“ (MyShiftsWidget) wiederhergestellt — Registrierung war in 3.4.0 beim Plan-Schema-Refactor versehentlich entfernt worden

3.4.0 — 2026-06-09

wp.org-Compliance (Guideline 5): Das kostenlose Plugin ist ein voll funktionsfähiger Einzel-Dienstplan ohne Trialware-Muster.

  • Mehrplan-Verwaltung vollständig ins Premium-Add-on verschoben (keine dienstplan_plans-Tabelle, kein PlanRepository, kein „More plans – Pro“-Teaser im kostenlosen Plugin)
  • Plan-gebundene Abfragen, Wochentags-Beschränkungen und Premium-Termin-Tabellen (Wiederholungen, Aufgaben, Anmeldungen, Audit-Log) nur in Premium; Free stellt Extension-Hooks mit permissiven Defaults bereit
  • do_action-Payloads beim Speichern von Schichttypen und Terminen übergeben jetzt sanitized POST-Daten (map_deep(…, 'sanitize_text_field'))
  • Sanitization-Härtung in den Feiertags-Einstellungen aus früheren Durchläufen beibehalten

3.3.0 — 2026-06-01

wp.org-Compliance (Guideline 5): Im kostenlosen Plugin ist keine Funktion mehr an Lizenzlimits gebunden.

  • Alle Mengenlimits (Mitglieder, Pläne, Schichttypen, Gruppen, Termine) aus dem kostenlosen Plugin entfernt
  • Gruppen vollständig ins Premium-Add-on verschoben — inklusive Datenbanktabellen und Zugriffslogik; das kostenlose Plugin legt keine Gruppen-Speicherung mehr an und stellt nur Extension-Hooks bereit (dienstplan_filter_accessible_plans, dienstplan_user_can_access_event)
  • Dialog zur Terminerstellung auf Einspalten-Layout vereinfacht
  • Tarifvergleichs-Seite: „Termin-Anmeldungen & Aufgaben“ ergänzt und klarere Funktionsbeschreibungen in der Übersicht
  • SQL- und i18n-Härtung aus früheren Releases beibehalten

3.2.2 — 2026-05-22

Folge-Fix zur 3.2.1: SVG-Icons in Admin-Templates lösen jetzt direkt wp_kses() mit der Plugin-Allow-List aus, statt über einen Klassen-Wrapper. Plugin-Check erkennt Custom-Klassen-Methoden nicht als Escape-Funktionen — der direkte wp_kses()-Aufruf ist Reviewer- und Plugin-Check-konform.

  • \Dienstplan\Security::ksesSvg($svg) durch wp_kses( $svg, \Dienstplan\Security::svgAllowedHtml() ) ersetzt — Allow-List bleibt dieselbe, nur der Wrapper ist weg
  • 20 Stellen in templates/admin/schichtplaner.php, templates/admin/events.php, templates/admin/partials/tab-groups.php, templates/admin/partials/tab-categories.php (plus zwei Stellen in Premium templates/admin/partials/tab-emails.php) entsprechend angepasst

3.2.1 — 2026-05-21

Adressiert die Punkte aus der zweiten Reviewer-Runde des WordPress-Plugin-Review-Teams. Keine Funktionsänderungen, ausschließlich Härtung der Ausgabe-Routinen und Klarstellung der External-Service-Doku.

  • External-Services-Block in readme: Provider, Terms-of-Use-Link und Privacy-Policy-Link der STÜBER SYSTEMS GmbH jetzt im vom Reviewer-Beispiel vorgegebenen Format direkt im selben Absatz wie der Service-Provider
  • Sicherheits-Härtung der Inline-CSS-Ausgabe: wp_add_inline_style() bekommt das dynamische Kalender-Color-CSS jetzt durch wp_strip_all_tags() defensiv vorgefiltert
  • ICS-Export der Dashboard-„Meine Schichten“-Widget-Schaltfläche: Zeitkomponenten via expliziter (int)-Cast + sprintf, finaler Output line-by-line mit wp_strip_all_tags() statt direktem echo
  • Calendar-Shortcode im Admin-Kontext wird jetzt über do_shortcode('[dienstplan]') ausgespielt statt über direktes echo $this->calShortcode->render([])
  • SVG-Icons in Admin-Templates laufen jetzt durch wp_kses() mit einer SVG-Allow-List statt mit phpcs:ignore-Kommentaren
  • Dutzende ternäre echo-Ausdrücke in HTML-Attributen explizit mit esc_attr() umschlossen
  • Inline-Event-Handler in Statistics-Template auf data-…-Attribute + addEventListener umgestellt (war noch ein „echo onchange=…„-Rest)
  • Cron-Schedule-Key 'yearly' 'dienstplan_yearly' (eigene Identifier-Prefix-Disziplin auch für Cron-Hooks)
  • readme: Tested up to: 7.0

3.2.0 — 2026-05-06

Adressiert die Punkte aus der Erstprüfung des WordPress-Plugin-Review-Teams. Die Änderungen unter der Haube sind weitreichend, im Funktionsumfang ändert sich nichts. Greenfield-Release ohne Migration für Bestandsdaten — die Free-Variante erscheint hier zum ersten Mal in der offiziellen Directory.

  • Einheitlicher Plugin-Prefix dienstplan_ für sämtliche AJAX-Actions, Nonces, Options-Keys, Transients, Cron-Hooks, Asset-Handles, JS-Globals, Widget-IDs, sessionStorage-Keys, PHP-Konstanten und CSS-Klassennamen — die alten Kurzformen dp_/dp- und wpd_/wpd- sind ersatzlos entfernt
  • Top-Level-Menü-Position auf 80 abgesenkt, damit der Plugin-Eintrag unterhalb der WordPress-Kernbereiche (Tools/Settings) landet
  • Sämtliche Inline-<style>– und <script>-Blöcke entfernt — die Inhalte werden jetzt über wp_enqueue_* mit wp_add_inline_style/script und ggf. wp_localize_script ausgespielt
  • Frontend-Shortcode [termine] heißt jetzt [dienstplan_termine] (eindeutiger Plugin-Prefix)
  • Externe API openholidaysapi.org ist im neuen Abschnitt External services mit Datenflüssen, Imprint-Link und Privacy-Policy-Link transparent dokumentiert
  • wpd_is_pro() / wpd_is_basis() heißen jetzt dienstplan_is_pro() / dienstplan_is_basis() und werden ohne function_exists()-Wrap deklariert

3.1.0 — 2026-04-30

Vorbereitung für die WordPress.org-Erstpublikation. Wegen des Reviewer-Feedbacks wurde diese Version nicht öffentlich ausgeliefert; siehe 3.2.0.

  • Durchgängig englische Quelltexte; Lokalisierungen für Deutsch, Spanisch, Französisch und Italienisch im Verzeichnis languages/
  • Öffentliche Hook-API (dienstplan_* Filter und Actions) für saubere Erweiterung durch Add-ons oder Custom Code — vollständige Referenz in docs/hooks-reference.md
  • Tarifstruktur (Free / Basis / Pro) in der Readme dokumentiert
  • Optionales kommerzielles Add-on (Basis / Pro) separat auf wp-dienstplan.de — Installation parallel ohne Datenmigration