Skip to main content

Zeitwerk - Releases

← App details

Nextcloud 34

Zeitwerk 0.19.0
Release Details
UpdatedSept. 15, 2026, 8:25 p.m.
Changelog

Added

  • Dienstplan (Wochenplan) als abschaltbares Modul: Zeile pro Mitarbeiter mit Haekchen «Im Dienstplan», Spalten Mo–So, Auftragskarten (Uhrzeit, Dauer, Titel mit Vorschlaegen, Notiz, «Auf Abruf»), Drag and Drop, «Woche in naechste Woche kopieren», Druckansicht. Zellen mit genehmigter Abwesenheit oder Feiertag werden gedimmt, beantragte Abwesenheiten gestrichelt markiert (nur Planer). Planen duerfen Admin, HR und Vorgesetzte; alle anderen sehen den Plan lesend. Firmeneinstellung «Dienstplan aktiv», Standard aus. Migration V25 (Tabelle zw_duty_jobs, Spalte in_duty_roster).
  • Auftragsvorlagen fuer den Dienstplan: Wiederkehrende Standard-Auftraege werden in den Einstellungen unter «Dienstplan-Vorlagen» gepflegt (Titel, Uhrzeit, Dauer, Notiz, «Auf Abruf», sichtbar ja/nein) und erscheinen in der Wochenansicht als Seitenleiste. Planer ziehen eine Vorlage beliebig oft in eine Zelle; daraus entsteht sofort eine Auftragskarte, die Vorlage bleibt stehen. Pflegen darf nur die Administration, ist das Modul aus, sind alle Vorlagen-Routen gesperrt. Migration V26 (Tabelle zw_duty_job_templates).
  • Reihenfolge der Zeilen im Dienstplan pro Mitarbeiter einstellbar (Feld «Reihenfolge im Dienstplan» im Profil).
  • Wochenplan als PDF ins Archiv: Button «Als PDF ins Archiv» in der Wochenansicht erzeugt ein A4-Querformat-PDF (Zeile pro Mitarbeiter, Spalte pro Tag, Auftraege mit Uhrzeit, Dauer und «Abruf», Abwesenheiten und Feiertage als Label, Sperrvermerk) und legt es unter <PDF-Archiv>/Dienstplan/KWnn-JJJJ.pdf im Ordner des Archiv-Benutzers ab (vorhandene Datei wird ersetzt). Nur Admin und HR-Manager (die Datei landet im Konto des Archiv-Benutzers). Ohne konfiguriertes Archiv oder bei Ablagefehler gibt es eine klare Meldung. Audit-Eintrag «PDF exportiert».
  • Notiz-Hinweis auf Auftragskarten: Karten mit Notiz zeigen ein kleines Warnschild, der Text bleibt als Tooltip.
  • Wochensperre im Dienstplan («Schluessel»): Planer sperren eine Woche per Schluessel-Button im Kopf der Wochenansicht; gesperrte Wochen lassen keine Aenderungen mehr zu (kein Anlegen, Verschieben, Bearbeiten, Loeschen, auch nicht per API oder als Ziel von «Woche kopieren»), Auftraege sind nur noch ansehbar, ein Hinweisbanner nennt Sperrer und Zeitpunkt. Entsperren duerfen nur Admin und HR-Manager. Sperren und Entsperren stehen im Audit-Log. Migration V28 (Tabelle zw_duty_week_locks).
  • Vorlagen-Leiste im Dienstplan ausblendbar: Firmeneinstellung «Vorlagen-Leiste im Dienstplan anzeigen» in der Sektion «Dienstplan-Vorlagen» (Standard an) als Vorgabe, dazu ein Auge-Schalter im Kopf der Wochenansicht, mit dem jeder Planer die Leiste fuer sich ein- oder ausblendet (persoenliche Einstellung, ueberschreibt die Vorgabe). Die Vorlagen bleiben erhalten.
  • Woche in eine beliebige Woche kopieren: «Woche kopieren nach …» (ersetzt «Woche in naechste Woche kopieren») mit Kalenderwoche und Jahr, vorbelegt mit der Folgewoche, auch ueber den Jahreswechsel (z. B. KW 49/2026 nach KW 13/2027); der Dialog zeigt den Zieldatumsbereich und lehnt nicht existierende Wochen ab.
  • Kalenderwoche gross in der Ecke des Wochenplans (links ueber der Namensspalte, mit Jahr).

Fixed

  • Dauer-Feld im Dienstplan akzeptierte nicht jede Minutenzahl: min="1" step="5" liess im Auftragsformular nur 1, 6, 11, ... 1436 als gueltige Werte zu, der Browser meldete z.B. 30 Minuten als ungueltig. Das Feld erlaubt jetzt jede Minutenzahl, die Schnellwahl-Buttons (30/60/90/120) bleiben unveraendert.
  • Uhrzeit- und Datumsfelder folgten der Browser-Locale statt fest 24 h und DD.MM.YYYY: Native <input type="time">/type="date" zeigten je nach Spracheinstellung z.B. AM/PM oder MM/DD/YYYY. Betroffen waren das Auftragsformular im Dienstplan, die Zeiterfassung (Beginn/Ende) und «Meine Einstellungen» (Standard-Arbeitsbeginn/-ende); Uhrzeiten werden jetzt zusaetzlich clientseitig gegen das Muster HH:MM geprueft, bevor sie gespeichert werden.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signaturee7xyNvQ4CVQJqQl3/cfYoKtX6fVKrzo2MW3ogaq0KbyzYv8ax5v2hdkVVeYV7U3v
sn62KT0RHeSkuMnrEDjIGtISkYjzKDk2hUhI1C6WqXBXijfgPayKtpYZp2D9uVsp
mO+gX7o0ky8Ghm2p67AHidRaKYW+aJCaCjpxyrqQU2MI/+UoMXZufsZVCgoCj+f8
vC6Y1WOkGtYIjyO9VyJue2hirBKO9QNMZfCpUJT1Jf1VLsBWbexDmOxt4pxTAXsB
WRoqexqWd5wfjjiSKw9JkujlN5TmKwmvXRUPja5HhoEX0v9wCMU3Igt0qRW2t5aK
Eqvy8MHvnViFD9nUxErjDSmQfopb1hupfrs95lfsUgrFcrb0GqL8Lkxa4I983fCt
rU/R/+YcAhg7tHhre0jRzzGUltNonaH9c1R99q/diK8pJTESis2KVTcm62xdkRFY
TkyfCrReygs9xpZIxcx8pI92/M2WpIY96OXhyv5+/vvCXBggiBKKsRrwusWxK8W5
uBuLBAuRkNDDCsMdM1n3sTEZtl3VUFCWi4vAvtGbZqcP5GFzQoqdpUMnpPZbNLX4
z3hcKA3Yg60kD3xndp9ug6TyDwWqWyBN4p6YXpWyJtsR0Xx8FEYuPuA5ftAE/8WF
faNzEFHEUc3e8gFV5aY+ZtCTBX6RuFhdPYPIHNoViNs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.2
Release Details
UpdatedSept. 7, 2026, 2:24 p.m.
Changelog

Wartungsrelease mit Fehlerbehebungen aus dem Ursprungsprojekt WorkTime (Paket 3). Keine Datenbankmigration, keine Aenderung an bestehenden Daten.

Fixed

  • Betriebsferien ueberspringen bestehende eigene Abwesenheiten tagesgenau (WorkTime #454): Lag im Zeitraum einer zentralen Betriebsferien-Buchung bereits ein eigener Urlaub oder eine Krankmeldung, entstanden bisher ueberlappende Eintraege und der Tag wurde doppelt gezaehlt. Belegte Tage werden jetzt ausgelassen; Mitarbeitende, deren Zeitraum komplett belegt ist, werden mit Grund uebersprungen, teilweise belegte werden im Ergebnis mit den ausgelassenen Tagen ausgewiesen. Abgelehnte Antraege blockieren keine Tage.
  • Validierungsmeldungen bei Abwesenheiten waren teils Englisch (WorkTime #528): «End date must be after start date», «Not enough vacation days» und vier weitere Meldungen erscheinen jetzt in der Sprache der Oberflaeche.
  • Team-Reiter fuer Admin und HR ohne eigenes Mitarbeiterprofil (WorkTime #604): Geschaeftsfuehrung oder HR ohne eigenen Mitarbeiterdatensatz sahen den Team-Reiter nicht.
  • Korrekturmodus fuer HR ohne eigenes Profil (WorkTime #631): Im Korrekturmodus fehlten die Reiter Zeiterfassung und Abwesenheiten, und «Abwesenheiten» fuehrte auf die Startseite zurueck.
  • Bemerkung des Antragstellers in der Genehmiger-Inbox (WorkTime #461): Die beim Abwesenheitsantrag eingegebene Bemerkung war fuer Genehmigende nicht sichtbar.
  • Mitarbeitende koennen ihr eigenes Arbeitszeitprofil lesen (WorkTime #526): GET /api/employees/{id}/schedules verlangte fuer das eigene Profil Verwaltungsrechte. Schreiben bleibt Admin und HR vorbehalten.
  • Mitarbeiteruebersicht bei zukuenftigem Eintrittsdatum (WorkTime #581): Ein Neuzugang mit erst kuenftig gueltigem Arbeitszeitprofil erschien bis zum Eintritt mit 40 Stunden und 30 Urlaubstagen statt mit seinen Profilwerten. Nur Anzeige, Sollstunden und Urlaubsanspruch waren korrekt.
  • Anlegen mit weniger als fuenf Arbeitstagen (WorkTime #578): Beim Anlegen eines Mitarbeiters mit z. B. vier Tagen und 30 Stunden entstand ein Montag-bis-Freitag-Profil mit sechs Stunden pro Tag. Das Initialprofil belegt jetzt die angegebene Zahl an Wochentagen. Bestehende Profile bleiben unveraendert.
  • Sammelbefunde aus dem WorkTime-Review (WorkTime #537):
  • Datumsangaben aus der API (Abwesenheiten, Zeiteintraege, PDF-Zeitraum) muessen ein echtes Kalenderdatum im Format JJJJ-MM-TT sein; relative Ausdruecke oder Werte wie 30. Februar werden mit klarer Meldung abgewiesen statt still umgerechnet. Die Oberflaeche sendet seit jeher dieses Format.
  • PDF-Archiv: Mitarbeiternamen werden als Ordnername abgesichert (keine Pfadtrenner, Steuerzeichen oder «..»). Bestehende Archivordner behalten ihren Namen, auch mit Punkten, Apostrophen oder Leerzeichen.
  • Benachrichtigungen nennen den Monat in der Sprache des Empfaengers statt immer auf Deutsch. Bereits vorhandene Benachrichtigungen bleiben lesbar.
  • PDF-Endpunkt prueft Monat und Jahr, numerische Routen-Parameter fuer Zeiteintraege und Projekte sind auf Zahlen eingeschraenkt, die Genehmigungsuebersicht meldet ein fehlgeschlagenes Laden sichtbar statt eine leere Liste zu zeigen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureBlhdwDVCNRukG9uKtJXmhUIFC25xUL1w7WVRZU5NjRmfQO2+sCr2bWZ1MGufzegF
3QC3dOpHZtmM5vsfWbbZ/MlWsYiZWqfxdVXYj7sPR940X61H2tdjTVVR1HM27yMY
hZp5YWWhZ+jVDDWEuGdifTUiLh5QXdsz5Gcp+5L6hLQymQAvAc/cPWidBkxVOBMq
5a5+BGULGgXW2vCWNAXWFwZA+TDbjFG2VJc4ZnCFU81NE74yhbT0anC8jxmLvS8c
P18wRypKJ6bwEmlNjkFLI+b4NNbO154ngl+GPC3x0eVdMI3nWOjS6Nz++LzdcZYo
KB2V+rIf59IaSoVfnILzCltVWILj2PtXoyuc9fs3ylXNBr7mXKozd5u3dgiIJ62w
Ym6vYqIm2HVP3PnQNxThnS8zWP0OYJw4gmgnjyGJeLSGAAmDiDBMXJmSyybOiMdM
eFFg6qg0gNYcBumbbrUNlo5ul0Tf6KrNlVqwd115qfHHiayX/oDI4qvE2rdp1iDb
DjoDXpyiArI0yUGiHm/OyhCBNS/1SjNGB4za67VSHlc0S0Y78slBk7rxbbzdLyDr
XlR9VIoioFbdzBeRtH/Zie4dWyw851ymEcD6POVKoFKIORdzo3DZQA42nPdMzKXs
puj2yJ8fM9r39vOnOnqpHlJXgQufacDvGWbX2kEp210=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.1
Release Details
UpdatedSept. 6, 2026, 11:52 a.m.
Changelog

Fixed

  • Neue deutsche Feiertage fehlten in bestehenden Jahren nach dem Update auf 0.18.0: Feiertage, die vor dem Update automatisch erzeugt wurden, bekamen Buss- und Bettag (Sachsen), Frauentag (Berlin, Mecklenburg-Vorpommern) und Weltkindertag (Thueringen) erst nach einem manuellen «Feiertage neu erstellen»; bis dahin wurden an diesen Tagen Sollstunden verlangt und Urlaub verbraucht. Das Update traegt fehlende Feiertage jetzt in allen vorhandenen Jahren und Regionen nach, ohne etwas zu loeschen; manuelle Feiertage bleiben unberuehrt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureMNFyjqsI3Y6icMxkXiTwEZeErEasbZabgC5oRcZ2ZEftOWNovZkP1rSY4mboD8o7
Bqs0IzpV6Qs7aielagM05xcuULJfXVfPcgySdQkaVN5UBn3bn0hwNbH5kGOXD5Kr
OnceCgVeN67wedVW8EF+k9bHYuQF9wCuXK3z2ewQCbSDrix8jyK6Z4CH30wo9tsI
rRQ7pXswv26OZxEVqsgGZB8yvwXWwy+QDbhzwiYbTJV4BjmdZmGcVf4MLCA32jsE
XD28zkZDtxQd4paUszkQ2M9m7j8d77MGsbUa2KrtCbkHgAbLQt0rh4blFu/4OYBH
/MEtCeg7bgQZXyswxPUqCFBo6NZ4qjQ2PIViU/itDbtLD37OCylvY8lIFvVfVUHI
7l+aKhOPnc4mECpwRXPSw5syj0f5LKFqLm9dzfn6OQ1+djklLISHq/25FAsPTb5T
+hMuGm7ZnK5HupPDOKjyG9aVZvON11na2Z2L+67kvVQPBtZgFM3vX5XZkegw9Teg
lPeR5oBp7KVXVl2sPKSI1ItmWbBAbl4U6PRyDro66qQ3bTmQizpaH3Amakk2aB28
3I7VEI4eDPcpUK75SU2c00VYNiEIQfe1bNU7WJWPgaCmrpGmGyvcGAceFy9Fx/Bm
4F++FYyRrY964ElEnjEpDi2axpC6sETzDK13S8nJyuE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.0
Release Details
UpdatedSept. 6, 2026, 11:16 a.m.
Changelog

Added

  • Feiertage fuer die Schweiz: Zeitwerk kennt jetzt die 26 Kantone mit ihren kantonsweit arbeitsfreien Feiertagen (Basis: Verzeichnis des Bundesamts fuer Justiz, Stand 2011, plus kantonsweit faktisch arbeitsfreie Tage). Sonderregeln sind abgebildet: Naefelser Fahrt, Jeune genevois, Bettagsmontag, Neuenburger Montagsregel, entfallender Stephanstag an Dienstag oder Samstag in Uri, Appenzell und Aargau, halber 1. Mai in Solothurn. Mitarbeitende waehlen Land und Region (Bundesland oder Kanton), Firmen koennen deutsche und Schweizer Mitarbeitende gemischt fuehren. Details und Grenzen in FEIERTAGE.md.
  • Endpunkt GET /api/holidays/regions liefert Laender, Regionen und die Standard-Region der Firma.

Changed

  • Regionscodes nach ISO 3166-2: Bundeslaender und Kantone tragen laenderpraefigierte Codes (DE-BY, CH-ZH), weil sich Zweibuchstaben-Codes zwischen den Laendern ueberschneiden (Berlin/Bern, Schleswig-Holstein/Schaffhausen, Nordrhein-Westfalen/Nidwalden). Bestehende Daten werden beim Update automatisch umgeschrieben (Mitarbeitende, Feiertage, Standard-Region). Alte Zweibuchstaben-Codes in Anfragen werden weiterhin als deutsche Bundeslaender gelesen. Kein Downgrade auf 0.17.x nach diesem Update. Das Update laeuft wie gewohnt ueber den App Store oder occ upgrade (Nextcloud sperrt dabei Anfragen und Hintergrundjobs); Eintraege mit unbekannten Regionscodes werden bei der Migration gezaehlt und als Warnung gemeldet.
  • Einstellungen: «Standard-Bundesland» heisst jetzt «Standard-Region» mit vorgeschaltetem Land; die Feiertagsverwaltung filtert nach Land und Region, das Formular fuer manuelle Feiertage gruppiert die Regionen nach Land; «Feiertage neu erstellen» erzeugt alle 42 Regionen. Die Feiertagstabelle gruppiert nach Datum, Name und Umfang, damit ein halber Tag (Solothurn, 1. Mai) nicht zusammen mit den ganzen Tagen der anderen Kantone bearbeitet und dabei ueberschrieben wird.
  • Feiertagsregeln als Provider pro Land (OCA\Zeitwerk\Holiday): weitere Laender lassen sich als reine Daten ergaenzen.

Fixed

  • Fehlende deutsche Feiertage: Buss- und Bettag (Sachsen, Mittwoch vor dem 23.11.), Internationaler Frauentag (Berlin ab 2019, Mecklenburg-Vorpommern ab 2023) und Weltkindertag (Thueringen ab 2019) werden jetzt erzeugt. Bestehende Jahre uebernehmen die Tage nach «Feiertage neu erstellen».
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureGtRsXeD0K09/DkXTzNx63HEpceO2QN8+XkoBac6k/oE0YA0Vwy2yn7ntrsI5e0rS
aXGpPrXfSz4gKwh4L78qVmMukARGqfJcUz/HRZZeZ1i23kF88fXvhcDg9lFDaM2S
jrb2S5GDP7ynEdnPjnMn9Tui67RmVbiGzcPFtK1zM9NbTUZly3Bq6gt8fnql/q/w
wmXfjlCHRnP9YsG4zipA6zlrLkERNYdSdakbxGW+eIKbJF2l6Tx7oKeZQh+eQG5D
SraPlGgk3qMcrw/CbJ5AmzEwQOx0Yr7u3Y2MaPDutBRjF5zFA+KENEmIEt5ubl3s
XN9xJ2GsEhytbVJW1OwuIxhBi21TZdi3eOXWSz7Et7GMQ93JVMCIga/gBDIgDSn4
3TDNlAnvpMkvFGlqAVDXYnHK8rGOwS6ljTom80z/MmKzSV5lCPMSUk0+rWNU8YQG
1q4E8Ux+E+jBzKr5cV3Dk2GqOseqpQkrb5qP6P+wLD14uDNmSpOoWFHV92QfU4cK
1aFDOqiSK2iT/CtAdmNEzABcjkaTyxO23wg4KvQ5jwbX0+TufXe/DMfxLd5JxjuB
WwVOyq3FnwcilxsB4v/w04X4YBHjENXDpYJ7PbqTNP06sQ79rMWhU4G4pTPurcr4
Mb2LhreicV2pULsKvlV5qpwr69DE3MZw6MAWkyHog8Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.17.0
Release Details
UpdatedSept. 3, 2026, 7:45 a.m.
Changelog

Fixed

  • Monat nur aus Abwesenheiten liess sich nicht einreichen: Ein Monat, der komplett aus Urlaub, unbezahltem Urlaub oder anderen Abwesenheiten besteht, hatte keinen Zeiteintrag, an dem der Status „eingereicht"/„genehmigt" hängen konnte – der Button „Monat einreichen" fehlte, der Monat blieb in der Team-Übersicht und beim Jahresübertrag („Alle Monate genehmigt") für immer offen. Der Monatsstatus ist jetzt ein eigener Datensatz je Mitarbeiter und Monat (zw_month_status, Migration mit Übernahme der bisherigen Stände). Einreichen ist möglich, sobald offene Zeiteinträge oder mindestens eine genehmigte Abwesenheit im Monat liegen; Genehmigung, Zurückweisung, Wiedereröffnung, PDF-Archiv, km-Sperre und Profil-Schutz folgen dem Monatsstatus.

Changed

  • Status „Zurückgewiesen" am Monat: Die Zeiterfassung zeigt einen zurückgewiesenen Monat als solchen an (bisher „Entwurf") und die Erfolgsmeldungen sprechen bei Monaten ohne Zeiteinträge vom Monat statt von „0 Einträgen".
  • Audit-Log: Einreichen, Genehmigen, Zurückweisen und Wiedereröffnen eines Monats werden zusätzlich als Eintrag vom Typ „Monatsabschluss" protokolliert.
  • Hinweis zur Migration: Bestehende Monate übernehmen beim Update ihren bisherigen Status (eingereicht, zurückgewiesen, genehmigt). Ein Monat, in dem neben eingereichten noch offene oder zurückgewiesene Zeiteinträge liegen, gilt danach als Entwurf und erscheint erst wieder in der Genehmigungs-Inbox, wenn der Mitarbeiter ihn erneut einreicht.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureQXI4StmMhfd/oMzF/KNRCEg0ArtSiQ8BXz/seUj//XzX2Li2Oo6wtKBRll6SBck47/MD9A6PBlzgMZorE+TABHaRvEWF2fHjhkIwwDjhzRHxwQXbc+4TqaJcudlpUhqqMpJYkGjxj/b0xgCwxfO3YlcB72pzVmL9wYnYuvKDVliFZIUhzSiICBK7x4/j/XcXASJPCVNN/Jx3hpJShYkTzuLm7JUAbu/jmSnJyEC41XPcIqKAUNdiEV7CIEH064nIgT4xGTpmIZzWPrcnLZnNLELzQr9Qq4ttxOwmDjq3/0Pf7yiW3jE/3x5BdTMi/ZkxirS0cCpbeDP8aRF683l3QquijVDmEmNmgh7lnxZa7nAmIjssxn7PtU6btR+lL4RTvQZuSAI2pH/4hLCat03JRjVPnrN+WgcHtP4IW6q/4P45O4r49N9PUwHOGZ/usyTZx7TGyTBuGR0x8TaSIbfREkaH3fMn6eHgtfVVyKxH6hYXdD+TR5wUEW+LwKM4tf4LzlsXlgs6LC1rv/70RkDP2FFCz3MWoKYM1grAq+X+S6XqKFkfsWGaGZ1sa6+NcdGfiWtLFPxUYsBsQKY7fiM9FKUecWVx84m2yrMLNH+QcSTPy2mPnsVp78bhGr26ffgOa2gXkRxk/gbpXcUFs0YBsxntYB/va58NUrtv6QG0q2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.16.0
Release Details
UpdatedSept. 2, 2026, 7:43 p.m.
Changelog

Added

  • Jahresübertrag: Ist-Werte per Klick eintragen: Neben „Durchführen" gibt es pro Mitarbeiter den Button „Eintragen", der Überstunden-Ist und Resturlaub-Ist des Vorjahres exakt in die Übertrags-Felder übernimmt (minutengenau, halbe Tage, auch Minusstunden) und sofort speichert. HR passt bei Bedarf an und klickt „Durchführen". Der Button erscheint nur, solange die Felder von den Ist-Werten abweichen und der Übertrag noch nicht durchgeführt ist.

Changed

  • Jahresübertrag: konsistente Anzeige und kompakteres Layout: Überstunden-Ist und gesperrte Werte zeigen zwei Nachkommastellen wie das Eingabefeld (vorher „-315.7" neben „-315.67"), das Feld erlaubt Hundertstel, der Button heisst „Durchführen" mit eigener Spaltenüberschrift „Übertrag", und die Bemerkungsspalte ist schmaler, damit die Tabelle in den Rahmen passt.
  • Lesbare Farben im Jahresübertrag: Minus- und Plusstunden sowie der Hinweis zu offenen bzw. genehmigten Monaten nutzen die Text-Farbvarianten des Nextcloud-Themes statt der hellen Flächenfarben, die auf weissem Grund kaum lesbar waren.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signatureg5J/aEmg2p2V9NUgu+PnFSqGUXAUXjk/touyLlJcDNTKkLCkei8HveGA3X+sndG1dTtUUmM6m1Mh+r0tGxPOqieHjtNwgD6kOT1S9wplXW3mMbD+9jmiKwCbtNUmGMZ+kkKIUXxg+dbIyfeuq0wXaNEUuShrGjbxm860qoVsI8/lXlG6pDuSgkWfXRqX6LPNnMjHiCgYKrYCAO8UsP0X3y6HHdee5bBxBgVI5kCAh74pNBPNzWu83MLTM+nQREo2xM4JMrnyQOimk4Pz6hG8mLkgKey1P6wV/rNdQ7DuhrzXtzq05DUbWftZcgALRfReaJlS8Ap0hJpMDi4GhjQWiFHiKNFtirtJ298eSzPmHxlQYcDUH8S2hWStMdCde2y3ydY9O44W08FYibwrYBjnY0gJJXIqhuufFjr0A7aYb3t0QsmwXpKWAY/YhtXF0sa8w81f/Eskd7J9oYOmNiDbJb0fB4JbqD1HyjLhRLVPkmmq3+mQzcH1GdXNkXD0E96htRpBx3EBCe54BGwRcUdFf4s+vVebdrmMtDNfDRgNZUDZRz8p05WtydU8mzrG1AwV715gDoKz0+F4YDJ6QENA4hnSQG9D4hj64N1w6R7sSYUKDozpcAqrxQt9d1NwRi81CjbLXY06HaOtdiUxEdeGIlzTezef0Sbt9CrlANBQGbM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.2
Release Details
UpdatedSept. 2, 2026, 6:11 p.m.
Changelog

Zehn Fehlerbehebungen rund um Urlaub, Feiertage und Überstunden aus der Original-App WorkTime (cpcMomentum/worktime) übernommen, dazu ein Nachbefund zu 0.15.1.

Fixed

  • Fehlende Feiertage werden bei der Berechnung erzeugt (WorkTime #438): In Jahren oder Bundesländern, für die noch keine Feiertage generiert waren, wurde ein Feiertag als Arbeits- bzw. Urlaubstag gewertet. Fehlende Feiertage werden jetzt bei Bedarf automatisch angelegt (idempotent, manuell gepflegte Feiertage bleiben unangetastet).
  • Abgelehnter Urlaub verbrauchte weiterhin Urlaubstage und blockierte neue Anträge (WorkTime #443): Nur genehmigte und offene Abwesenheiten zählen aufs Kontingent und stehen einem neuen Antrag für dieselben Tage im Weg.
  • Halber Feiertag bei bezahlter Abwesenheit falsch verrechnet (WorkTime #443): Ein genehmigter Urlaub auf einem halben Feiertag erzeugte rund vier Minusstunden.
  • Doppelzählung bei Genehmigung mit vorhandenen Zeiteinträgen (WorkTime #443): Die Genehmigung einer ganztägigen Abwesenheit prüft erneut, ob am Tag bereits Zeiteinträge liegen.
  • Team-Jahresübersicht zählte Feiertage und halbe Tage als volle Urlaubstage (WorkTime #443): Die Monatsspalten berücksichtigen jetzt die echten Feiertage des Zeitraums und den Umfang (halber Tag = 0,5).
  • Pausenwarnung bei geteiltem Arbeitstag mit Lücke (WorkTime #443): Die §4-Prüfung rechnet mit der reinen Arbeitszeit statt mit einem auf Bruttozeit geeichten Schwellwert.
  • Halbtags-Abwesenheiten in Zukunftsmonaten und Freizeitausgleich-Hinweis (WorkTime #443 G/H): Ein halber Tag in einem noch nicht begonnenen Monat zählt als 0,5, und der Hinweis „Freizeitausgleich ≈ Stunden" rechnet mit den Arbeitstagen pro Woche des Mitarbeiters statt fest mit fünf.
  • Urlaubsantrag trotz ausreichendem Guthaben abgelehnt (WorkTime #500): Der Jahresübertrag aus dem Vorjahr fliesst jetzt auch in die Prüfung beim Beantragen ein, nicht nur in die Anzeige.
  • Falscher Urlaubsanspruch bei geändertem Arbeitszeitprofil (WorkTime #501): Die Antrags- und Betriebsferien-Prüfung nutzt den jahresgenauen Anspruch aus dem Profil des betreffenden Jahres statt des heute gültigen Werts.
  • Halbe Urlaubstage aus dem Jahresübertrag wurden als ganze verrechnet (WorkTime #525): Ein Übertrag von 12,5 Tagen wurde in Guthaben, Antragsprüfung, Team-Jahresübersicht und Anzeige auf 13 gerundet. Der Übertrag zählt jetzt überall exakt.

Security

  • HR-Korrektur bei deaktivierten Mitarbeitern verlangt eine Begründung: Der in 0.15.1 eingeführte Schutz liess sich von HR/Admin im Korrekturmodus ohne Begründung umgehen, solange der Monat noch offen war (die Begründungspflicht griff nur über die Monatssperre). Jetzt gilt bei deaktivierten Mitarbeitern für Anlegen, Bearbeiten und Löschen von Zeiteinträgen und Abwesenheiten immer die Begründungspflicht (mindestens 10 Zeichen), und die Begründung wird im Audit-Log festgehalten. Die Weboberfläche fragte die Begründung im Korrekturmodus bereits ab; betroffen war nur der direkte API-Zugriff.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureD5dof80phMxxlrhW1Z9besJffetJO1Ye0Tn26Zn2RFXZnQAIYo3ZHiRwSQVwaHlkRNgcPUduOdGvZgN2LV4Os/FfVW48EI2iHdWPx5p30578YTmCQdeg1K2NEJK/0i04VURGhUiHocsDJ3nz8rW4zgxfbjI3trwBHLTh4W+86OjiZ7ZF5uiGPlZRn7Auavsv1st2pNzUjnbskkX23cWOgsTLjr98tQCFwQS3yl5j3erNZiV/8eTzOEi4vhVbO4jhmQgaQj5c2jRStmL0oyOhngOTFWJDLkPl4AGaauMOeWo4MNewu8E6Rx2BvgtsZi70i61s3+vCpDv6lyX/ew+KEKo4TgzcCb5d+3eq130VTwaEDFrCbPyPCBKA+EFy8SQIka7J8oyHCfZ0B1DEelSN7UKkxu2a3lTsJHrizP55kbO/XQK7szmfMkrEMrcYRVqF+qq3NqfB3E9rgN8SGa9FDB5zNxdki75UtSk4IKcrDVFBM+85Jm1C5/NSaDAC2HgiWtnbD87EeCyqRTbTWxj8ZxsXr0UYLedrNnS4/I8S73RIReOkfWfqnlO2aZD4evzGDoFbUFaA1fBl86uCt0d5NWG13/BFaXZhej97ObhZjdjiFJRW8ZZ9rpwNUzTBjOgodWDif3+RNNWu6uWFKjSI6mgYYraHroD+VDjyAx2xgwY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.1
Release Details
UpdatedSept. 2, 2026, 5:09 p.m.
Changelog

Drei Fehlerbehebungen aus der Original-App WorkTime übernommen (cpcMomentum/worktime).

Security

  • Deaktivierte Mitarbeiter konnten weiter erfassen (WorkTime #486): Die Mitarbeiterverwaltung stellte in Aussicht, dass inaktive Mitarbeiter keine Zeiten mehr erfassen können; tatsächlich wurden sie nur aus Auswahllisten ausgeblendet. Zeiteinträge und Abwesenheiten deaktivierter Mitarbeiter werden jetzt serverseitig abgelehnt (Anlegen, Bearbeiten, Löschen, Einreichen). Genehmigen, Ablehnen und Stornieren bleiben möglich, damit ein laufender Monat abgeschlossen werden kann; HR-Korrekturen mit Begründung bleiben ebenfalls möglich. Der Ruhend-Status des Originals wurde nicht übernommen.

Fixed

  • Benachrichtigungen auf Nextcloud 34 ohne Symbol und Link, Log-Spam (WorkTime #551): Nextcloud 34 akzeptiert als Benachrichtigungs-Symbol nur absolute URLs; der relative Pfad liess setIcon() fehlschlagen, wodurch Symbol und Link fehlten und der Fehler bei jedem Cron-Lauf im Log landete. Das Symbol wird jetzt als absolute URL gesetzt; sollte ein Setter künftig einen Wert ablehnen, wird die Benachrichtigung sauber verworfen statt das Log zu füllen.
  • „PDF über Zeitraum" schlug mit „CSRF check failed" fehl (WorkTime #620): Dem Zeitraum-Export fehlte die CSRF-Ausnahme, die die anderen Download-Endpunkte haben (Downloads öffnen sich per window.open() ohne Nextcloud-Requesttoken). Ein Test stellt jetzt sicher, dass alle Download-Endpunkte die Ausnahme tragen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureXwb0Iwn+wfICzPqWPq4XqoO7yg39HJRQXkKV+/5oUbycfbnGScef0a5wMGM8AqIPIR5wyNh+0jR3u352MKd7AExfPJnxnbb0PFFcVQ2VUPYhaG4oYzKX2J4vVGT1ljth1oB2YojrCnM0Hi1jo6NR1zF46K3eXFWqgVrq37nPeTQynHAbntx6+xmT1hdZR+yf+jJABDZ+RqF13gqhp5QclQxqwKBGTggr+JkAnNh0sI+hv/9Y3N4U6lmu/gCA0JrT+phU0iRLPV1XpVti8kkBH+/gGSbyTeCrfTt3NA5oxo/fTVdIOIN2Q6ZVP0tnM3PGlj1pmwMHawR60ys3IqZZceEDYNw2t4zDfBx2skNpwG/EmXVkbEX6C/fMaLpkxKIASNjHNhJ0Lf15hYjG7HKlLSqN7BwEc+39g0T3Q1vDO0PZYw/qaLdHzYIAtjsp3I+FhHByHcjiJjRlS9JHHlMGHpjCRkm8eetL2r27UzE+FFQBAhyROSJLxBTzduJ+DnSystGK04Evq0N/Tj8HnTBV7ebTJMhIUx1WzGxkksmBmTG5q8Wk7Ynb3Knh1aHrufshI+rdA7Qa7hAcezFiY0z8o9kVFPmUOYP3xOlBnFV6UlqlLuMoIYxeScT8uvOAjRSzdzNIJsesm7gNK5r3NbE2OVGDAXqene+KFGM/LQFEtDg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.0
Release Details
UpdatedSept. 2, 2026, 4:04 p.m.
Changelog

Changed

  • Arbeitszeitprofile rückwirkend anlegen und verschieben: „Gültig ab" darf jetzt in der Vergangenheit liegen, und das Datum lässt sich auch bei bestehenden Profilen ändern. HR kann ein Profil damit nachträglich auf das Eintrittsdatum setzen, statt dass für die Tage davor stillschweigend das automatisch angelegte Erstprofil bzw. das Standardprofil (40 Stunden) gilt. Die bisherige Regel „frühestens der 1. des aktuellen Monats" entfällt.
  • Schutz genehmigter Monate bei Profil-Änderungen: Anlegen, Bearbeiten und Löschen eines Profils werden abgelehnt, wenn der betroffene Zeitraum (vom früheren Gültig-ab-Datum bis zum nächsten späteren Profil bzw. bis heute) einen vollständig genehmigten Monat enthält; die Meldung nennt die Monate. HR öffnet den Monat wie gewohnt zuerst wieder, korrigiert das Profil, danach wird der Monat erneut eingereicht und genehmigt (das Archiv-PDF wird dabei neu erzeugt).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignaturedowyBIEW5iCPF0x5QiPZLmlxH2slVZVj1ADt0D8B4atRU8FdKRJziynbfYHhDZ5l1riNeRGJRcI//bUAEFL7i4dFVEGGxdXTtjNjRD5n2xnqW7vTsBzMOQo3h6dMGZGfvizHxVOVE4xRRDvF3FngS8jgEWiwcSvc8NTlzkGCQqJRMgbNzBr/GXFypF4nsZh+WNvQTHuG+4vgZkgaCbfvOoUZVmScp5lwy6+E8IsQBscIheLIgGch43IAM8ytFvxrOQpwfC2e6YMQQDxaO+kXo9hSrSWNB+2zL1thQjgFM/0P/Yhydfk84c0fwk2+z2FKl5FgO6374F6xl4wHDS0hBodlOzRf7vJl47llpuDQ6D9QwUA3W2APSmkMD5f+7oZWwjPkma1sQz+2MiHi8Bp5/1Qkn2fU8oU3x0uzFZhiik2rCmxLnkxs0VyLLFgn2Bln4SsseWLDRCMMaNFMmog6zHdWsXVyA76+czzQv0YpONdejPhBneAnBGTi9y1tPFhzAIrp4oGYAuUuzYoahFslt37nlMirAb2I8RfuVTGgyc+aUEJqWmkgPfzffViki+BNfZczfT4vIHDNO5SfFro+KUhceO0cQ3vu3oKUrHz5nOeVSTAX3l233PENWTWVxhndrOEnt9+8vpENt2e7gESXa18HmgX7r3T6N6trRC0DsOk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.3
Release Details
UpdatedAug. 13, 2026, 3:02 p.m.
Changelog

Removed

  • Autoren-Eintrag des Original-Autors entfernt: Axel Deffner ist auf eigenen Wunsch nicht mehr als Autor in info.xml und im App-Store-Eintrag gelistet, da er Zeitwerk nicht mitbetreut und nicht als Kontaktperson erscheinen möchte. Der Herkunfts-Hinweis in der App-Beschreibung („Fork der App WorkTime, Original von Axel Deffner") sowie die Copyright-Vermerke in den Quelldateien bleiben unverändert erhalten.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureOoyXP/iysJNGOY7//S7w4BSW8Y5kl3CgNyx5Qv7IL+S1Z9oRjGDrkjSVj9XySgf95YBMa8/QWcvzj3ZLvy+WSf1PitrPvPUdDTyCG6QYbOz1iDrJWSSAPRhkOMMS7GcOi/l2JzzfnVBujnCDIJx2kKwH7UL1VX8Ss7Vke3WpLnLhs2WqrFNMls+EEcE3MDj4U53ASO+IYdOcVqy3K9uoTND+Co+6zGKo8MTkBtgFEPmMkFXg+F5evqqaW21MzySQoL7ogT6ZRd/Nc5iUM8o29kC15+Anv9dGJ/00rpZv/wqLWVlZRQyy5b9gxYWJLdOw1sRPJ6mCscsUgHFdxa1mgab2OGRUBqkR0w2EZsWGOmMQv6g9IH1qK6ErDyIW9N0gbSdlQ89ZC9C2oVGonWMn/K1511NNzFNU/1L+boGg49V+hOXxAcXJxxRXsMAxlOuu4orh8+6PDuC/++N1g3Qgj65tnNwIN12+ymvjl95mHqm1ovaDKz2ifYU6V+/XrHXHWmnEfOSZWxgA0plKkitS7/aeXBP3SaxhdXYmY2WXAc0h/X/dNSu/RPg85+hiBAhOvJRoIUzQWOSJW4AiOCMvUyBTIUYtADMauDIm2RRhbsyY0+8CKNCp81DSBjtR19gQjpZOHjo3aPfmUV4JfN+yIxABY41csrMgjhlkRNn2868=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.2
Release Details
UpdatedJuly 17, 2026, 12:42 p.m.
Changelog

Changed

  • App-Paket file-signiert: Das Release-Paket enthält jetzt appinfo/signature.json mit SHA512-Hashes aller Dateien, signiert mit dem Zeitwerk-Zertifikat der Nextcloud Code Signing Authority. Administratoren können die Integrität der installierten App damit jederzeit prüfen (occ integrity:check-app zeitwerk), und nachträgliche Änderungen an Dateien der Instanz werden erkannt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureI5nCyDmIhw0+n3EHGUG0EycAj6CnpYF3/VM6fZcweY7ZAOKnMr4Zk/d1Eo6ogFf1
pVXwy2B3skaHmr3aynXQlCWjiHhRW+faqDebZ97lnMDk167lmTwuUqAOQQ7Mb3D3
Aq0DH+88O3UiikTuYOSz5AJjOg/ny8KcZlvqivtA1rfv2W0wWbIw+UTkR8OgO9kk
UQGMBLIasDUq1gdqhW9EC4ZQ3+U6KJPOhFXB2pYZSHeGwYU950E4Ev0kfyi81I7P
8qEFz7fhc+F78mfXis84a7+YnFGMzfhFoW4egQB87ZHYjxy+Hfwhz3lf/tvCYfNp
3zNGCccYqIn1h+0eNJ0k4+bBBzoJud2SScsPawu72dcEhYhEhZHEMMZkgp9PmFOk
5lL14A3OYlI1EEw/E2NU1NSOo8/PF/pwtOBL0HkjMGOJH0+HRYZ8Nss46sH68wdL
feIxR1mO5p5I1bJq1fkWeuNNmXdoPbHB2oUD6KW60T/vc9R8WPUMKwwRi/OnAQeC
TVymcGD/1rVKDMwtmoJtDS2ABJv9/XVYxEMNc9TOLk/AjQjjAaMwSHcnAQzodlL1
L75H/dCP/a5rWUUGs5PWrPK1TVC7uM462R9kw2A8eVgXf3HS0hxElZpAVpJVWdQK
DnviVX3b/Ne6canCutqYhIY6s3RbX23ZosGfZaFhMDE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.1
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Changed

  • Erstes Release im Nextcloud App Store: Zeitwerk ist ab dieser Version über den offiziellen App Store installierbar. Das Release-Paket wird aus git archive erzeugt und enthält nur noch Laufzeit-Dateien — Entwicklungs- und Repo-Interna (Quell-Rohdateien, Tests, CI-Konfiguration, Source-Maps) sowie eine .htaccess aus der PDF-Bibliothek, die die Signaturprüfung von Nextcloud gebrochen hätte, sind ausgeschlossen.

Removed

  • Veraltetes Upstream-Zertifikat entfernt: appinfo/worktime.crt (das Store-Zertifikat der Original-App WorkTime) war noch im Paket enthalten und ist für Zeitwerk ohne Funktion.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureEeH4y7T95X9kd/cVCGWfLuZxkhtajDyCCh60R9dv+eGzibr/Lt0VqXTgJQ9X0M2x
fpCkYruOSgmoNgTXVH3BpuPHIIYD1boJMg5/NLsjqk7eXCPFV4oNwYlhF5Y1b1uX
LRgbWkAQZL6TP8yknCtEIyH2w3Gn1TtckvCLLbMHTk1mDN0otBFZqLu0+w0AcNfR
yYMnDduNT5zW8/TfNIdzhWRamkwVldBGmgL3RALxhCtZnSPZCZAd924RAdouRCzL
ECBqv/r0f038r9+aAMxD/L9OkBGQhvRfF3GT7a3OBo6bv1cPvT2ffCFpjJsVZZAC
NkVuhQOCWGAheQJgfMAYl7km/ybNVW4NufnWqmyHTlLRtiSmom3mGR8YH90EC0PR
RgwmuiNpeTq7AXjCDsjc710jcvTXsKQHYidfwQzovjxKT0FUHK9n1zgWtWxSQ3KX
2+3pmPTN9qnPN9EMHX3gWelcCvVD8HArHKucJMyOk39GZziA6grlVLbkRX1Y9E65
8JgUXwnazU1QlH38ULY2MIJbM2Cs2S3riTjZS8znWc8yt0xbDeTRVfuqYSvMTqyE
VUijl2hLqJyvwoegAXiAsD5SRb0dDGrvEy4oqyPlV0MiM06MCjNyh7micMQ6SqGu
Q1KJKSEMNEGOlrhoy6LAprlPuJMtkK7KjL94IZG1+/Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 33

Zeitwerk 0.19.0
Release Details
UpdatedSept. 15, 2026, 8:25 p.m.
Changelog

Added

  • Dienstplan (Wochenplan) als abschaltbares Modul: Zeile pro Mitarbeiter mit Haekchen «Im Dienstplan», Spalten Mo–So, Auftragskarten (Uhrzeit, Dauer, Titel mit Vorschlaegen, Notiz, «Auf Abruf»), Drag and Drop, «Woche in naechste Woche kopieren», Druckansicht. Zellen mit genehmigter Abwesenheit oder Feiertag werden gedimmt, beantragte Abwesenheiten gestrichelt markiert (nur Planer). Planen duerfen Admin, HR und Vorgesetzte; alle anderen sehen den Plan lesend. Firmeneinstellung «Dienstplan aktiv», Standard aus. Migration V25 (Tabelle zw_duty_jobs, Spalte in_duty_roster).
  • Auftragsvorlagen fuer den Dienstplan: Wiederkehrende Standard-Auftraege werden in den Einstellungen unter «Dienstplan-Vorlagen» gepflegt (Titel, Uhrzeit, Dauer, Notiz, «Auf Abruf», sichtbar ja/nein) und erscheinen in der Wochenansicht als Seitenleiste. Planer ziehen eine Vorlage beliebig oft in eine Zelle; daraus entsteht sofort eine Auftragskarte, die Vorlage bleibt stehen. Pflegen darf nur die Administration, ist das Modul aus, sind alle Vorlagen-Routen gesperrt. Migration V26 (Tabelle zw_duty_job_templates).
  • Reihenfolge der Zeilen im Dienstplan pro Mitarbeiter einstellbar (Feld «Reihenfolge im Dienstplan» im Profil).
  • Wochenplan als PDF ins Archiv: Button «Als PDF ins Archiv» in der Wochenansicht erzeugt ein A4-Querformat-PDF (Zeile pro Mitarbeiter, Spalte pro Tag, Auftraege mit Uhrzeit, Dauer und «Abruf», Abwesenheiten und Feiertage als Label, Sperrvermerk) und legt es unter <PDF-Archiv>/Dienstplan/KWnn-JJJJ.pdf im Ordner des Archiv-Benutzers ab (vorhandene Datei wird ersetzt). Nur Admin und HR-Manager (die Datei landet im Konto des Archiv-Benutzers). Ohne konfiguriertes Archiv oder bei Ablagefehler gibt es eine klare Meldung. Audit-Eintrag «PDF exportiert».
  • Notiz-Hinweis auf Auftragskarten: Karten mit Notiz zeigen ein kleines Warnschild, der Text bleibt als Tooltip.
  • Wochensperre im Dienstplan («Schluessel»): Planer sperren eine Woche per Schluessel-Button im Kopf der Wochenansicht; gesperrte Wochen lassen keine Aenderungen mehr zu (kein Anlegen, Verschieben, Bearbeiten, Loeschen, auch nicht per API oder als Ziel von «Woche kopieren»), Auftraege sind nur noch ansehbar, ein Hinweisbanner nennt Sperrer und Zeitpunkt. Entsperren duerfen nur Admin und HR-Manager. Sperren und Entsperren stehen im Audit-Log. Migration V28 (Tabelle zw_duty_week_locks).
  • Vorlagen-Leiste im Dienstplan ausblendbar: Firmeneinstellung «Vorlagen-Leiste im Dienstplan anzeigen» in der Sektion «Dienstplan-Vorlagen» (Standard an) als Vorgabe, dazu ein Auge-Schalter im Kopf der Wochenansicht, mit dem jeder Planer die Leiste fuer sich ein- oder ausblendet (persoenliche Einstellung, ueberschreibt die Vorgabe). Die Vorlagen bleiben erhalten.
  • Woche in eine beliebige Woche kopieren: «Woche kopieren nach …» (ersetzt «Woche in naechste Woche kopieren») mit Kalenderwoche und Jahr, vorbelegt mit der Folgewoche, auch ueber den Jahreswechsel (z. B. KW 49/2026 nach KW 13/2027); der Dialog zeigt den Zieldatumsbereich und lehnt nicht existierende Wochen ab.
  • Kalenderwoche gross in der Ecke des Wochenplans (links ueber der Namensspalte, mit Jahr).

Fixed

  • Dauer-Feld im Dienstplan akzeptierte nicht jede Minutenzahl: min="1" step="5" liess im Auftragsformular nur 1, 6, 11, ... 1436 als gueltige Werte zu, der Browser meldete z.B. 30 Minuten als ungueltig. Das Feld erlaubt jetzt jede Minutenzahl, die Schnellwahl-Buttons (30/60/90/120) bleiben unveraendert.
  • Uhrzeit- und Datumsfelder folgten der Browser-Locale statt fest 24 h und DD.MM.YYYY: Native <input type="time">/type="date" zeigten je nach Spracheinstellung z.B. AM/PM oder MM/DD/YYYY. Betroffen waren das Auftragsformular im Dienstplan, die Zeiterfassung (Beginn/Ende) und «Meine Einstellungen» (Standard-Arbeitsbeginn/-ende); Uhrzeiten werden jetzt zusaetzlich clientseitig gegen das Muster HH:MM geprueft, bevor sie gespeichert werden.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signaturee7xyNvQ4CVQJqQl3/cfYoKtX6fVKrzo2MW3ogaq0KbyzYv8ax5v2hdkVVeYV7U3v
sn62KT0RHeSkuMnrEDjIGtISkYjzKDk2hUhI1C6WqXBXijfgPayKtpYZp2D9uVsp
mO+gX7o0ky8Ghm2p67AHidRaKYW+aJCaCjpxyrqQU2MI/+UoMXZufsZVCgoCj+f8
vC6Y1WOkGtYIjyO9VyJue2hirBKO9QNMZfCpUJT1Jf1VLsBWbexDmOxt4pxTAXsB
WRoqexqWd5wfjjiSKw9JkujlN5TmKwmvXRUPja5HhoEX0v9wCMU3Igt0qRW2t5aK
Eqvy8MHvnViFD9nUxErjDSmQfopb1hupfrs95lfsUgrFcrb0GqL8Lkxa4I983fCt
rU/R/+YcAhg7tHhre0jRzzGUltNonaH9c1R99q/diK8pJTESis2KVTcm62xdkRFY
TkyfCrReygs9xpZIxcx8pI92/M2WpIY96OXhyv5+/vvCXBggiBKKsRrwusWxK8W5
uBuLBAuRkNDDCsMdM1n3sTEZtl3VUFCWi4vAvtGbZqcP5GFzQoqdpUMnpPZbNLX4
z3hcKA3Yg60kD3xndp9ug6TyDwWqWyBN4p6YXpWyJtsR0Xx8FEYuPuA5ftAE/8WF
faNzEFHEUc3e8gFV5aY+ZtCTBX6RuFhdPYPIHNoViNs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.2
Release Details
UpdatedSept. 7, 2026, 2:24 p.m.
Changelog

Wartungsrelease mit Fehlerbehebungen aus dem Ursprungsprojekt WorkTime (Paket 3). Keine Datenbankmigration, keine Aenderung an bestehenden Daten.

Fixed

  • Betriebsferien ueberspringen bestehende eigene Abwesenheiten tagesgenau (WorkTime #454): Lag im Zeitraum einer zentralen Betriebsferien-Buchung bereits ein eigener Urlaub oder eine Krankmeldung, entstanden bisher ueberlappende Eintraege und der Tag wurde doppelt gezaehlt. Belegte Tage werden jetzt ausgelassen; Mitarbeitende, deren Zeitraum komplett belegt ist, werden mit Grund uebersprungen, teilweise belegte werden im Ergebnis mit den ausgelassenen Tagen ausgewiesen. Abgelehnte Antraege blockieren keine Tage.
  • Validierungsmeldungen bei Abwesenheiten waren teils Englisch (WorkTime #528): «End date must be after start date», «Not enough vacation days» und vier weitere Meldungen erscheinen jetzt in der Sprache der Oberflaeche.
  • Team-Reiter fuer Admin und HR ohne eigenes Mitarbeiterprofil (WorkTime #604): Geschaeftsfuehrung oder HR ohne eigenen Mitarbeiterdatensatz sahen den Team-Reiter nicht.
  • Korrekturmodus fuer HR ohne eigenes Profil (WorkTime #631): Im Korrekturmodus fehlten die Reiter Zeiterfassung und Abwesenheiten, und «Abwesenheiten» fuehrte auf die Startseite zurueck.
  • Bemerkung des Antragstellers in der Genehmiger-Inbox (WorkTime #461): Die beim Abwesenheitsantrag eingegebene Bemerkung war fuer Genehmigende nicht sichtbar.
  • Mitarbeitende koennen ihr eigenes Arbeitszeitprofil lesen (WorkTime #526): GET /api/employees/{id}/schedules verlangte fuer das eigene Profil Verwaltungsrechte. Schreiben bleibt Admin und HR vorbehalten.
  • Mitarbeiteruebersicht bei zukuenftigem Eintrittsdatum (WorkTime #581): Ein Neuzugang mit erst kuenftig gueltigem Arbeitszeitprofil erschien bis zum Eintritt mit 40 Stunden und 30 Urlaubstagen statt mit seinen Profilwerten. Nur Anzeige, Sollstunden und Urlaubsanspruch waren korrekt.
  • Anlegen mit weniger als fuenf Arbeitstagen (WorkTime #578): Beim Anlegen eines Mitarbeiters mit z. B. vier Tagen und 30 Stunden entstand ein Montag-bis-Freitag-Profil mit sechs Stunden pro Tag. Das Initialprofil belegt jetzt die angegebene Zahl an Wochentagen. Bestehende Profile bleiben unveraendert.
  • Sammelbefunde aus dem WorkTime-Review (WorkTime #537):
  • Datumsangaben aus der API (Abwesenheiten, Zeiteintraege, PDF-Zeitraum) muessen ein echtes Kalenderdatum im Format JJJJ-MM-TT sein; relative Ausdruecke oder Werte wie 30. Februar werden mit klarer Meldung abgewiesen statt still umgerechnet. Die Oberflaeche sendet seit jeher dieses Format.
  • PDF-Archiv: Mitarbeiternamen werden als Ordnername abgesichert (keine Pfadtrenner, Steuerzeichen oder «..»). Bestehende Archivordner behalten ihren Namen, auch mit Punkten, Apostrophen oder Leerzeichen.
  • Benachrichtigungen nennen den Monat in der Sprache des Empfaengers statt immer auf Deutsch. Bereits vorhandene Benachrichtigungen bleiben lesbar.
  • PDF-Endpunkt prueft Monat und Jahr, numerische Routen-Parameter fuer Zeiteintraege und Projekte sind auf Zahlen eingeschraenkt, die Genehmigungsuebersicht meldet ein fehlgeschlagenes Laden sichtbar statt eine leere Liste zu zeigen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureBlhdwDVCNRukG9uKtJXmhUIFC25xUL1w7WVRZU5NjRmfQO2+sCr2bWZ1MGufzegF
3QC3dOpHZtmM5vsfWbbZ/MlWsYiZWqfxdVXYj7sPR940X61H2tdjTVVR1HM27yMY
hZp5YWWhZ+jVDDWEuGdifTUiLh5QXdsz5Gcp+5L6hLQymQAvAc/cPWidBkxVOBMq
5a5+BGULGgXW2vCWNAXWFwZA+TDbjFG2VJc4ZnCFU81NE74yhbT0anC8jxmLvS8c
P18wRypKJ6bwEmlNjkFLI+b4NNbO154ngl+GPC3x0eVdMI3nWOjS6Nz++LzdcZYo
KB2V+rIf59IaSoVfnILzCltVWILj2PtXoyuc9fs3ylXNBr7mXKozd5u3dgiIJ62w
Ym6vYqIm2HVP3PnQNxThnS8zWP0OYJw4gmgnjyGJeLSGAAmDiDBMXJmSyybOiMdM
eFFg6qg0gNYcBumbbrUNlo5ul0Tf6KrNlVqwd115qfHHiayX/oDI4qvE2rdp1iDb
DjoDXpyiArI0yUGiHm/OyhCBNS/1SjNGB4za67VSHlc0S0Y78slBk7rxbbzdLyDr
XlR9VIoioFbdzBeRtH/Zie4dWyw851ymEcD6POVKoFKIORdzo3DZQA42nPdMzKXs
puj2yJ8fM9r39vOnOnqpHlJXgQufacDvGWbX2kEp210=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.1
Release Details
UpdatedSept. 6, 2026, 11:52 a.m.
Changelog

Fixed

  • Neue deutsche Feiertage fehlten in bestehenden Jahren nach dem Update auf 0.18.0: Feiertage, die vor dem Update automatisch erzeugt wurden, bekamen Buss- und Bettag (Sachsen), Frauentag (Berlin, Mecklenburg-Vorpommern) und Weltkindertag (Thueringen) erst nach einem manuellen «Feiertage neu erstellen»; bis dahin wurden an diesen Tagen Sollstunden verlangt und Urlaub verbraucht. Das Update traegt fehlende Feiertage jetzt in allen vorhandenen Jahren und Regionen nach, ohne etwas zu loeschen; manuelle Feiertage bleiben unberuehrt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureMNFyjqsI3Y6icMxkXiTwEZeErEasbZabgC5oRcZ2ZEftOWNovZkP1rSY4mboD8o7
Bqs0IzpV6Qs7aielagM05xcuULJfXVfPcgySdQkaVN5UBn3bn0hwNbH5kGOXD5Kr
OnceCgVeN67wedVW8EF+k9bHYuQF9wCuXK3z2ewQCbSDrix8jyK6Z4CH30wo9tsI
rRQ7pXswv26OZxEVqsgGZB8yvwXWwy+QDbhzwiYbTJV4BjmdZmGcVf4MLCA32jsE
XD28zkZDtxQd4paUszkQ2M9m7j8d77MGsbUa2KrtCbkHgAbLQt0rh4blFu/4OYBH
/MEtCeg7bgQZXyswxPUqCFBo6NZ4qjQ2PIViU/itDbtLD37OCylvY8lIFvVfVUHI
7l+aKhOPnc4mECpwRXPSw5syj0f5LKFqLm9dzfn6OQ1+djklLISHq/25FAsPTb5T
+hMuGm7ZnK5HupPDOKjyG9aVZvON11na2Z2L+67kvVQPBtZgFM3vX5XZkegw9Teg
lPeR5oBp7KVXVl2sPKSI1ItmWbBAbl4U6PRyDro66qQ3bTmQizpaH3Amakk2aB28
3I7VEI4eDPcpUK75SU2c00VYNiEIQfe1bNU7WJWPgaCmrpGmGyvcGAceFy9Fx/Bm
4F++FYyRrY964ElEnjEpDi2axpC6sETzDK13S8nJyuE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.0
Release Details
UpdatedSept. 6, 2026, 11:16 a.m.
Changelog

Added

  • Feiertage fuer die Schweiz: Zeitwerk kennt jetzt die 26 Kantone mit ihren kantonsweit arbeitsfreien Feiertagen (Basis: Verzeichnis des Bundesamts fuer Justiz, Stand 2011, plus kantonsweit faktisch arbeitsfreie Tage). Sonderregeln sind abgebildet: Naefelser Fahrt, Jeune genevois, Bettagsmontag, Neuenburger Montagsregel, entfallender Stephanstag an Dienstag oder Samstag in Uri, Appenzell und Aargau, halber 1. Mai in Solothurn. Mitarbeitende waehlen Land und Region (Bundesland oder Kanton), Firmen koennen deutsche und Schweizer Mitarbeitende gemischt fuehren. Details und Grenzen in FEIERTAGE.md.
  • Endpunkt GET /api/holidays/regions liefert Laender, Regionen und die Standard-Region der Firma.

Changed

  • Regionscodes nach ISO 3166-2: Bundeslaender und Kantone tragen laenderpraefigierte Codes (DE-BY, CH-ZH), weil sich Zweibuchstaben-Codes zwischen den Laendern ueberschneiden (Berlin/Bern, Schleswig-Holstein/Schaffhausen, Nordrhein-Westfalen/Nidwalden). Bestehende Daten werden beim Update automatisch umgeschrieben (Mitarbeitende, Feiertage, Standard-Region). Alte Zweibuchstaben-Codes in Anfragen werden weiterhin als deutsche Bundeslaender gelesen. Kein Downgrade auf 0.17.x nach diesem Update. Das Update laeuft wie gewohnt ueber den App Store oder occ upgrade (Nextcloud sperrt dabei Anfragen und Hintergrundjobs); Eintraege mit unbekannten Regionscodes werden bei der Migration gezaehlt und als Warnung gemeldet.
  • Einstellungen: «Standard-Bundesland» heisst jetzt «Standard-Region» mit vorgeschaltetem Land; die Feiertagsverwaltung filtert nach Land und Region, das Formular fuer manuelle Feiertage gruppiert die Regionen nach Land; «Feiertage neu erstellen» erzeugt alle 42 Regionen. Die Feiertagstabelle gruppiert nach Datum, Name und Umfang, damit ein halber Tag (Solothurn, 1. Mai) nicht zusammen mit den ganzen Tagen der anderen Kantone bearbeitet und dabei ueberschrieben wird.
  • Feiertagsregeln als Provider pro Land (OCA\Zeitwerk\Holiday): weitere Laender lassen sich als reine Daten ergaenzen.

Fixed

  • Fehlende deutsche Feiertage: Buss- und Bettag (Sachsen, Mittwoch vor dem 23.11.), Internationaler Frauentag (Berlin ab 2019, Mecklenburg-Vorpommern ab 2023) und Weltkindertag (Thueringen ab 2019) werden jetzt erzeugt. Bestehende Jahre uebernehmen die Tage nach «Feiertage neu erstellen».
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureGtRsXeD0K09/DkXTzNx63HEpceO2QN8+XkoBac6k/oE0YA0Vwy2yn7ntrsI5e0rS
aXGpPrXfSz4gKwh4L78qVmMukARGqfJcUz/HRZZeZ1i23kF88fXvhcDg9lFDaM2S
jrb2S5GDP7ynEdnPjnMn9Tui67RmVbiGzcPFtK1zM9NbTUZly3Bq6gt8fnql/q/w
wmXfjlCHRnP9YsG4zipA6zlrLkERNYdSdakbxGW+eIKbJF2l6Tx7oKeZQh+eQG5D
SraPlGgk3qMcrw/CbJ5AmzEwQOx0Yr7u3Y2MaPDutBRjF5zFA+KENEmIEt5ubl3s
XN9xJ2GsEhytbVJW1OwuIxhBi21TZdi3eOXWSz7Et7GMQ93JVMCIga/gBDIgDSn4
3TDNlAnvpMkvFGlqAVDXYnHK8rGOwS6ljTom80z/MmKzSV5lCPMSUk0+rWNU8YQG
1q4E8Ux+E+jBzKr5cV3Dk2GqOseqpQkrb5qP6P+wLD14uDNmSpOoWFHV92QfU4cK
1aFDOqiSK2iT/CtAdmNEzABcjkaTyxO23wg4KvQ5jwbX0+TufXe/DMfxLd5JxjuB
WwVOyq3FnwcilxsB4v/w04X4YBHjENXDpYJ7PbqTNP06sQ79rMWhU4G4pTPurcr4
Mb2LhreicV2pULsKvlV5qpwr69DE3MZw6MAWkyHog8Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.17.0
Release Details
UpdatedSept. 3, 2026, 7:45 a.m.
Changelog

Fixed

  • Monat nur aus Abwesenheiten liess sich nicht einreichen: Ein Monat, der komplett aus Urlaub, unbezahltem Urlaub oder anderen Abwesenheiten besteht, hatte keinen Zeiteintrag, an dem der Status „eingereicht"/„genehmigt" hängen konnte – der Button „Monat einreichen" fehlte, der Monat blieb in der Team-Übersicht und beim Jahresübertrag („Alle Monate genehmigt") für immer offen. Der Monatsstatus ist jetzt ein eigener Datensatz je Mitarbeiter und Monat (zw_month_status, Migration mit Übernahme der bisherigen Stände). Einreichen ist möglich, sobald offene Zeiteinträge oder mindestens eine genehmigte Abwesenheit im Monat liegen; Genehmigung, Zurückweisung, Wiedereröffnung, PDF-Archiv, km-Sperre und Profil-Schutz folgen dem Monatsstatus.

Changed

  • Status „Zurückgewiesen" am Monat: Die Zeiterfassung zeigt einen zurückgewiesenen Monat als solchen an (bisher „Entwurf") und die Erfolgsmeldungen sprechen bei Monaten ohne Zeiteinträge vom Monat statt von „0 Einträgen".
  • Audit-Log: Einreichen, Genehmigen, Zurückweisen und Wiedereröffnen eines Monats werden zusätzlich als Eintrag vom Typ „Monatsabschluss" protokolliert.
  • Hinweis zur Migration: Bestehende Monate übernehmen beim Update ihren bisherigen Status (eingereicht, zurückgewiesen, genehmigt). Ein Monat, in dem neben eingereichten noch offene oder zurückgewiesene Zeiteinträge liegen, gilt danach als Entwurf und erscheint erst wieder in der Genehmigungs-Inbox, wenn der Mitarbeiter ihn erneut einreicht.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureQXI4StmMhfd/oMzF/KNRCEg0ArtSiQ8BXz/seUj//XzX2Li2Oo6wtKBRll6SBck47/MD9A6PBlzgMZorE+TABHaRvEWF2fHjhkIwwDjhzRHxwQXbc+4TqaJcudlpUhqqMpJYkGjxj/b0xgCwxfO3YlcB72pzVmL9wYnYuvKDVliFZIUhzSiICBK7x4/j/XcXASJPCVNN/Jx3hpJShYkTzuLm7JUAbu/jmSnJyEC41XPcIqKAUNdiEV7CIEH064nIgT4xGTpmIZzWPrcnLZnNLELzQr9Qq4ttxOwmDjq3/0Pf7yiW3jE/3x5BdTMi/ZkxirS0cCpbeDP8aRF683l3QquijVDmEmNmgh7lnxZa7nAmIjssxn7PtU6btR+lL4RTvQZuSAI2pH/4hLCat03JRjVPnrN+WgcHtP4IW6q/4P45O4r49N9PUwHOGZ/usyTZx7TGyTBuGR0x8TaSIbfREkaH3fMn6eHgtfVVyKxH6hYXdD+TR5wUEW+LwKM4tf4LzlsXlgs6LC1rv/70RkDP2FFCz3MWoKYM1grAq+X+S6XqKFkfsWGaGZ1sa6+NcdGfiWtLFPxUYsBsQKY7fiM9FKUecWVx84m2yrMLNH+QcSTPy2mPnsVp78bhGr26ffgOa2gXkRxk/gbpXcUFs0YBsxntYB/va58NUrtv6QG0q2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.16.0
Release Details
UpdatedSept. 2, 2026, 7:43 p.m.
Changelog

Added

  • Jahresübertrag: Ist-Werte per Klick eintragen: Neben „Durchführen" gibt es pro Mitarbeiter den Button „Eintragen", der Überstunden-Ist und Resturlaub-Ist des Vorjahres exakt in die Übertrags-Felder übernimmt (minutengenau, halbe Tage, auch Minusstunden) und sofort speichert. HR passt bei Bedarf an und klickt „Durchführen". Der Button erscheint nur, solange die Felder von den Ist-Werten abweichen und der Übertrag noch nicht durchgeführt ist.

Changed

  • Jahresübertrag: konsistente Anzeige und kompakteres Layout: Überstunden-Ist und gesperrte Werte zeigen zwei Nachkommastellen wie das Eingabefeld (vorher „-315.7" neben „-315.67"), das Feld erlaubt Hundertstel, der Button heisst „Durchführen" mit eigener Spaltenüberschrift „Übertrag", und die Bemerkungsspalte ist schmaler, damit die Tabelle in den Rahmen passt.
  • Lesbare Farben im Jahresübertrag: Minus- und Plusstunden sowie der Hinweis zu offenen bzw. genehmigten Monaten nutzen die Text-Farbvarianten des Nextcloud-Themes statt der hellen Flächenfarben, die auf weissem Grund kaum lesbar waren.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signatureg5J/aEmg2p2V9NUgu+PnFSqGUXAUXjk/touyLlJcDNTKkLCkei8HveGA3X+sndG1dTtUUmM6m1Mh+r0tGxPOqieHjtNwgD6kOT1S9wplXW3mMbD+9jmiKwCbtNUmGMZ+kkKIUXxg+dbIyfeuq0wXaNEUuShrGjbxm860qoVsI8/lXlG6pDuSgkWfXRqX6LPNnMjHiCgYKrYCAO8UsP0X3y6HHdee5bBxBgVI5kCAh74pNBPNzWu83MLTM+nQREo2xM4JMrnyQOimk4Pz6hG8mLkgKey1P6wV/rNdQ7DuhrzXtzq05DUbWftZcgALRfReaJlS8Ap0hJpMDi4GhjQWiFHiKNFtirtJ298eSzPmHxlQYcDUH8S2hWStMdCde2y3ydY9O44W08FYibwrYBjnY0gJJXIqhuufFjr0A7aYb3t0QsmwXpKWAY/YhtXF0sa8w81f/Eskd7J9oYOmNiDbJb0fB4JbqD1HyjLhRLVPkmmq3+mQzcH1GdXNkXD0E96htRpBx3EBCe54BGwRcUdFf4s+vVebdrmMtDNfDRgNZUDZRz8p05WtydU8mzrG1AwV715gDoKz0+F4YDJ6QENA4hnSQG9D4hj64N1w6R7sSYUKDozpcAqrxQt9d1NwRi81CjbLXY06HaOtdiUxEdeGIlzTezef0Sbt9CrlANBQGbM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.2
Release Details
UpdatedSept. 2, 2026, 6:11 p.m.
Changelog

Zehn Fehlerbehebungen rund um Urlaub, Feiertage und Überstunden aus der Original-App WorkTime (cpcMomentum/worktime) übernommen, dazu ein Nachbefund zu 0.15.1.

Fixed

  • Fehlende Feiertage werden bei der Berechnung erzeugt (WorkTime #438): In Jahren oder Bundesländern, für die noch keine Feiertage generiert waren, wurde ein Feiertag als Arbeits- bzw. Urlaubstag gewertet. Fehlende Feiertage werden jetzt bei Bedarf automatisch angelegt (idempotent, manuell gepflegte Feiertage bleiben unangetastet).
  • Abgelehnter Urlaub verbrauchte weiterhin Urlaubstage und blockierte neue Anträge (WorkTime #443): Nur genehmigte und offene Abwesenheiten zählen aufs Kontingent und stehen einem neuen Antrag für dieselben Tage im Weg.
  • Halber Feiertag bei bezahlter Abwesenheit falsch verrechnet (WorkTime #443): Ein genehmigter Urlaub auf einem halben Feiertag erzeugte rund vier Minusstunden.
  • Doppelzählung bei Genehmigung mit vorhandenen Zeiteinträgen (WorkTime #443): Die Genehmigung einer ganztägigen Abwesenheit prüft erneut, ob am Tag bereits Zeiteinträge liegen.
  • Team-Jahresübersicht zählte Feiertage und halbe Tage als volle Urlaubstage (WorkTime #443): Die Monatsspalten berücksichtigen jetzt die echten Feiertage des Zeitraums und den Umfang (halber Tag = 0,5).
  • Pausenwarnung bei geteiltem Arbeitstag mit Lücke (WorkTime #443): Die §4-Prüfung rechnet mit der reinen Arbeitszeit statt mit einem auf Bruttozeit geeichten Schwellwert.
  • Halbtags-Abwesenheiten in Zukunftsmonaten und Freizeitausgleich-Hinweis (WorkTime #443 G/H): Ein halber Tag in einem noch nicht begonnenen Monat zählt als 0,5, und der Hinweis „Freizeitausgleich ≈ Stunden" rechnet mit den Arbeitstagen pro Woche des Mitarbeiters statt fest mit fünf.
  • Urlaubsantrag trotz ausreichendem Guthaben abgelehnt (WorkTime #500): Der Jahresübertrag aus dem Vorjahr fliesst jetzt auch in die Prüfung beim Beantragen ein, nicht nur in die Anzeige.
  • Falscher Urlaubsanspruch bei geändertem Arbeitszeitprofil (WorkTime #501): Die Antrags- und Betriebsferien-Prüfung nutzt den jahresgenauen Anspruch aus dem Profil des betreffenden Jahres statt des heute gültigen Werts.
  • Halbe Urlaubstage aus dem Jahresübertrag wurden als ganze verrechnet (WorkTime #525): Ein Übertrag von 12,5 Tagen wurde in Guthaben, Antragsprüfung, Team-Jahresübersicht und Anzeige auf 13 gerundet. Der Übertrag zählt jetzt überall exakt.

Security

  • HR-Korrektur bei deaktivierten Mitarbeitern verlangt eine Begründung: Der in 0.15.1 eingeführte Schutz liess sich von HR/Admin im Korrekturmodus ohne Begründung umgehen, solange der Monat noch offen war (die Begründungspflicht griff nur über die Monatssperre). Jetzt gilt bei deaktivierten Mitarbeitern für Anlegen, Bearbeiten und Löschen von Zeiteinträgen und Abwesenheiten immer die Begründungspflicht (mindestens 10 Zeichen), und die Begründung wird im Audit-Log festgehalten. Die Weboberfläche fragte die Begründung im Korrekturmodus bereits ab; betroffen war nur der direkte API-Zugriff.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureD5dof80phMxxlrhW1Z9besJffetJO1Ye0Tn26Zn2RFXZnQAIYo3ZHiRwSQVwaHlkRNgcPUduOdGvZgN2LV4Os/FfVW48EI2iHdWPx5p30578YTmCQdeg1K2NEJK/0i04VURGhUiHocsDJ3nz8rW4zgxfbjI3trwBHLTh4W+86OjiZ7ZF5uiGPlZRn7Auavsv1st2pNzUjnbskkX23cWOgsTLjr98tQCFwQS3yl5j3erNZiV/8eTzOEi4vhVbO4jhmQgaQj5c2jRStmL0oyOhngOTFWJDLkPl4AGaauMOeWo4MNewu8E6Rx2BvgtsZi70i61s3+vCpDv6lyX/ew+KEKo4TgzcCb5d+3eq130VTwaEDFrCbPyPCBKA+EFy8SQIka7J8oyHCfZ0B1DEelSN7UKkxu2a3lTsJHrizP55kbO/XQK7szmfMkrEMrcYRVqF+qq3NqfB3E9rgN8SGa9FDB5zNxdki75UtSk4IKcrDVFBM+85Jm1C5/NSaDAC2HgiWtnbD87EeCyqRTbTWxj8ZxsXr0UYLedrNnS4/I8S73RIReOkfWfqnlO2aZD4evzGDoFbUFaA1fBl86uCt0d5NWG13/BFaXZhej97ObhZjdjiFJRW8ZZ9rpwNUzTBjOgodWDif3+RNNWu6uWFKjSI6mgYYraHroD+VDjyAx2xgwY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.1
Release Details
UpdatedSept. 2, 2026, 5:09 p.m.
Changelog

Drei Fehlerbehebungen aus der Original-App WorkTime übernommen (cpcMomentum/worktime).

Security

  • Deaktivierte Mitarbeiter konnten weiter erfassen (WorkTime #486): Die Mitarbeiterverwaltung stellte in Aussicht, dass inaktive Mitarbeiter keine Zeiten mehr erfassen können; tatsächlich wurden sie nur aus Auswahllisten ausgeblendet. Zeiteinträge und Abwesenheiten deaktivierter Mitarbeiter werden jetzt serverseitig abgelehnt (Anlegen, Bearbeiten, Löschen, Einreichen). Genehmigen, Ablehnen und Stornieren bleiben möglich, damit ein laufender Monat abgeschlossen werden kann; HR-Korrekturen mit Begründung bleiben ebenfalls möglich. Der Ruhend-Status des Originals wurde nicht übernommen.

Fixed

  • Benachrichtigungen auf Nextcloud 34 ohne Symbol und Link, Log-Spam (WorkTime #551): Nextcloud 34 akzeptiert als Benachrichtigungs-Symbol nur absolute URLs; der relative Pfad liess setIcon() fehlschlagen, wodurch Symbol und Link fehlten und der Fehler bei jedem Cron-Lauf im Log landete. Das Symbol wird jetzt als absolute URL gesetzt; sollte ein Setter künftig einen Wert ablehnen, wird die Benachrichtigung sauber verworfen statt das Log zu füllen.
  • „PDF über Zeitraum" schlug mit „CSRF check failed" fehl (WorkTime #620): Dem Zeitraum-Export fehlte die CSRF-Ausnahme, die die anderen Download-Endpunkte haben (Downloads öffnen sich per window.open() ohne Nextcloud-Requesttoken). Ein Test stellt jetzt sicher, dass alle Download-Endpunkte die Ausnahme tragen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureXwb0Iwn+wfICzPqWPq4XqoO7yg39HJRQXkKV+/5oUbycfbnGScef0a5wMGM8AqIPIR5wyNh+0jR3u352MKd7AExfPJnxnbb0PFFcVQ2VUPYhaG4oYzKX2J4vVGT1ljth1oB2YojrCnM0Hi1jo6NR1zF46K3eXFWqgVrq37nPeTQynHAbntx6+xmT1hdZR+yf+jJABDZ+RqF13gqhp5QclQxqwKBGTggr+JkAnNh0sI+hv/9Y3N4U6lmu/gCA0JrT+phU0iRLPV1XpVti8kkBH+/gGSbyTeCrfTt3NA5oxo/fTVdIOIN2Q6ZVP0tnM3PGlj1pmwMHawR60ys3IqZZceEDYNw2t4zDfBx2skNpwG/EmXVkbEX6C/fMaLpkxKIASNjHNhJ0Lf15hYjG7HKlLSqN7BwEc+39g0T3Q1vDO0PZYw/qaLdHzYIAtjsp3I+FhHByHcjiJjRlS9JHHlMGHpjCRkm8eetL2r27UzE+FFQBAhyROSJLxBTzduJ+DnSystGK04Evq0N/Tj8HnTBV7ebTJMhIUx1WzGxkksmBmTG5q8Wk7Ynb3Knh1aHrufshI+rdA7Qa7hAcezFiY0z8o9kVFPmUOYP3xOlBnFV6UlqlLuMoIYxeScT8uvOAjRSzdzNIJsesm7gNK5r3NbE2OVGDAXqene+KFGM/LQFEtDg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.0
Release Details
UpdatedSept. 2, 2026, 4:04 p.m.
Changelog

Changed

  • Arbeitszeitprofile rückwirkend anlegen und verschieben: „Gültig ab" darf jetzt in der Vergangenheit liegen, und das Datum lässt sich auch bei bestehenden Profilen ändern. HR kann ein Profil damit nachträglich auf das Eintrittsdatum setzen, statt dass für die Tage davor stillschweigend das automatisch angelegte Erstprofil bzw. das Standardprofil (40 Stunden) gilt. Die bisherige Regel „frühestens der 1. des aktuellen Monats" entfällt.
  • Schutz genehmigter Monate bei Profil-Änderungen: Anlegen, Bearbeiten und Löschen eines Profils werden abgelehnt, wenn der betroffene Zeitraum (vom früheren Gültig-ab-Datum bis zum nächsten späteren Profil bzw. bis heute) einen vollständig genehmigten Monat enthält; die Meldung nennt die Monate. HR öffnet den Monat wie gewohnt zuerst wieder, korrigiert das Profil, danach wird der Monat erneut eingereicht und genehmigt (das Archiv-PDF wird dabei neu erzeugt).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignaturedowyBIEW5iCPF0x5QiPZLmlxH2slVZVj1ADt0D8B4atRU8FdKRJziynbfYHhDZ5l1riNeRGJRcI//bUAEFL7i4dFVEGGxdXTtjNjRD5n2xnqW7vTsBzMOQo3h6dMGZGfvizHxVOVE4xRRDvF3FngS8jgEWiwcSvc8NTlzkGCQqJRMgbNzBr/GXFypF4nsZh+WNvQTHuG+4vgZkgaCbfvOoUZVmScp5lwy6+E8IsQBscIheLIgGch43IAM8ytFvxrOQpwfC2e6YMQQDxaO+kXo9hSrSWNB+2zL1thQjgFM/0P/Yhydfk84c0fwk2+z2FKl5FgO6374F6xl4wHDS0hBodlOzRf7vJl47llpuDQ6D9QwUA3W2APSmkMD5f+7oZWwjPkma1sQz+2MiHi8Bp5/1Qkn2fU8oU3x0uzFZhiik2rCmxLnkxs0VyLLFgn2Bln4SsseWLDRCMMaNFMmog6zHdWsXVyA76+czzQv0YpONdejPhBneAnBGTi9y1tPFhzAIrp4oGYAuUuzYoahFslt37nlMirAb2I8RfuVTGgyc+aUEJqWmkgPfzffViki+BNfZczfT4vIHDNO5SfFro+KUhceO0cQ3vu3oKUrHz5nOeVSTAX3l233PENWTWVxhndrOEnt9+8vpENt2e7gESXa18HmgX7r3T6N6trRC0DsOk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.3
Release Details
UpdatedAug. 13, 2026, 3:02 p.m.
Changelog

Removed

  • Autoren-Eintrag des Original-Autors entfernt: Axel Deffner ist auf eigenen Wunsch nicht mehr als Autor in info.xml und im App-Store-Eintrag gelistet, da er Zeitwerk nicht mitbetreut und nicht als Kontaktperson erscheinen möchte. Der Herkunfts-Hinweis in der App-Beschreibung („Fork der App WorkTime, Original von Axel Deffner") sowie die Copyright-Vermerke in den Quelldateien bleiben unverändert erhalten.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureOoyXP/iysJNGOY7//S7w4BSW8Y5kl3CgNyx5Qv7IL+S1Z9oRjGDrkjSVj9XySgf95YBMa8/QWcvzj3ZLvy+WSf1PitrPvPUdDTyCG6QYbOz1iDrJWSSAPRhkOMMS7GcOi/l2JzzfnVBujnCDIJx2kKwH7UL1VX8Ss7Vke3WpLnLhs2WqrFNMls+EEcE3MDj4U53ASO+IYdOcVqy3K9uoTND+Co+6zGKo8MTkBtgFEPmMkFXg+F5evqqaW21MzySQoL7ogT6ZRd/Nc5iUM8o29kC15+Anv9dGJ/00rpZv/wqLWVlZRQyy5b9gxYWJLdOw1sRPJ6mCscsUgHFdxa1mgab2OGRUBqkR0w2EZsWGOmMQv6g9IH1qK6ErDyIW9N0gbSdlQ89ZC9C2oVGonWMn/K1511NNzFNU/1L+boGg49V+hOXxAcXJxxRXsMAxlOuu4orh8+6PDuC/++N1g3Qgj65tnNwIN12+ymvjl95mHqm1ovaDKz2ifYU6V+/XrHXHWmnEfOSZWxgA0plKkitS7/aeXBP3SaxhdXYmY2WXAc0h/X/dNSu/RPg85+hiBAhOvJRoIUzQWOSJW4AiOCMvUyBTIUYtADMauDIm2RRhbsyY0+8CKNCp81DSBjtR19gQjpZOHjo3aPfmUV4JfN+yIxABY41csrMgjhlkRNn2868=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.2
Release Details
UpdatedJuly 17, 2026, 12:42 p.m.
Changelog

Changed

  • App-Paket file-signiert: Das Release-Paket enthält jetzt appinfo/signature.json mit SHA512-Hashes aller Dateien, signiert mit dem Zeitwerk-Zertifikat der Nextcloud Code Signing Authority. Administratoren können die Integrität der installierten App damit jederzeit prüfen (occ integrity:check-app zeitwerk), und nachträgliche Änderungen an Dateien der Instanz werden erkannt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureI5nCyDmIhw0+n3EHGUG0EycAj6CnpYF3/VM6fZcweY7ZAOKnMr4Zk/d1Eo6ogFf1
pVXwy2B3skaHmr3aynXQlCWjiHhRW+faqDebZ97lnMDk167lmTwuUqAOQQ7Mb3D3
Aq0DH+88O3UiikTuYOSz5AJjOg/ny8KcZlvqivtA1rfv2W0wWbIw+UTkR8OgO9kk
UQGMBLIasDUq1gdqhW9EC4ZQ3+U6KJPOhFXB2pYZSHeGwYU950E4Ev0kfyi81I7P
8qEFz7fhc+F78mfXis84a7+YnFGMzfhFoW4egQB87ZHYjxy+Hfwhz3lf/tvCYfNp
3zNGCccYqIn1h+0eNJ0k4+bBBzoJud2SScsPawu72dcEhYhEhZHEMMZkgp9PmFOk
5lL14A3OYlI1EEw/E2NU1NSOo8/PF/pwtOBL0HkjMGOJH0+HRYZ8Nss46sH68wdL
feIxR1mO5p5I1bJq1fkWeuNNmXdoPbHB2oUD6KW60T/vc9R8WPUMKwwRi/OnAQeC
TVymcGD/1rVKDMwtmoJtDS2ABJv9/XVYxEMNc9TOLk/AjQjjAaMwSHcnAQzodlL1
L75H/dCP/a5rWUUGs5PWrPK1TVC7uM462R9kw2A8eVgXf3HS0hxElZpAVpJVWdQK
DnviVX3b/Ne6canCutqYhIY6s3RbX23ZosGfZaFhMDE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.1
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Changed

  • Erstes Release im Nextcloud App Store: Zeitwerk ist ab dieser Version über den offiziellen App Store installierbar. Das Release-Paket wird aus git archive erzeugt und enthält nur noch Laufzeit-Dateien — Entwicklungs- und Repo-Interna (Quell-Rohdateien, Tests, CI-Konfiguration, Source-Maps) sowie eine .htaccess aus der PDF-Bibliothek, die die Signaturprüfung von Nextcloud gebrochen hätte, sind ausgeschlossen.

Removed

  • Veraltetes Upstream-Zertifikat entfernt: appinfo/worktime.crt (das Store-Zertifikat der Original-App WorkTime) war noch im Paket enthalten und ist für Zeitwerk ohne Funktion.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureEeH4y7T95X9kd/cVCGWfLuZxkhtajDyCCh60R9dv+eGzibr/Lt0VqXTgJQ9X0M2x
fpCkYruOSgmoNgTXVH3BpuPHIIYD1boJMg5/NLsjqk7eXCPFV4oNwYlhF5Y1b1uX
LRgbWkAQZL6TP8yknCtEIyH2w3Gn1TtckvCLLbMHTk1mDN0otBFZqLu0+w0AcNfR
yYMnDduNT5zW8/TfNIdzhWRamkwVldBGmgL3RALxhCtZnSPZCZAd924RAdouRCzL
ECBqv/r0f038r9+aAMxD/L9OkBGQhvRfF3GT7a3OBo6bv1cPvT2ffCFpjJsVZZAC
NkVuhQOCWGAheQJgfMAYl7km/ybNVW4NufnWqmyHTlLRtiSmom3mGR8YH90EC0PR
RgwmuiNpeTq7AXjCDsjc710jcvTXsKQHYidfwQzovjxKT0FUHK9n1zgWtWxSQ3KX
2+3pmPTN9qnPN9EMHX3gWelcCvVD8HArHKucJMyOk39GZziA6grlVLbkRX1Y9E65
8JgUXwnazU1QlH38ULY2MIJbM2Cs2S3riTjZS8znWc8yt0xbDeTRVfuqYSvMTqyE
VUijl2hLqJyvwoegAXiAsD5SRb0dDGrvEy4oqyPlV0MiM06MCjNyh7micMQ6SqGu
Q1KJKSEMNEGOlrhoy6LAprlPuJMtkK7KjL94IZG1+/Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 32

Zeitwerk 0.19.0
Release Details
UpdatedSept. 15, 2026, 8:25 p.m.
Changelog

Added

  • Dienstplan (Wochenplan) als abschaltbares Modul: Zeile pro Mitarbeiter mit Haekchen «Im Dienstplan», Spalten Mo–So, Auftragskarten (Uhrzeit, Dauer, Titel mit Vorschlaegen, Notiz, «Auf Abruf»), Drag and Drop, «Woche in naechste Woche kopieren», Druckansicht. Zellen mit genehmigter Abwesenheit oder Feiertag werden gedimmt, beantragte Abwesenheiten gestrichelt markiert (nur Planer). Planen duerfen Admin, HR und Vorgesetzte; alle anderen sehen den Plan lesend. Firmeneinstellung «Dienstplan aktiv», Standard aus. Migration V25 (Tabelle zw_duty_jobs, Spalte in_duty_roster).
  • Auftragsvorlagen fuer den Dienstplan: Wiederkehrende Standard-Auftraege werden in den Einstellungen unter «Dienstplan-Vorlagen» gepflegt (Titel, Uhrzeit, Dauer, Notiz, «Auf Abruf», sichtbar ja/nein) und erscheinen in der Wochenansicht als Seitenleiste. Planer ziehen eine Vorlage beliebig oft in eine Zelle; daraus entsteht sofort eine Auftragskarte, die Vorlage bleibt stehen. Pflegen darf nur die Administration, ist das Modul aus, sind alle Vorlagen-Routen gesperrt. Migration V26 (Tabelle zw_duty_job_templates).
  • Reihenfolge der Zeilen im Dienstplan pro Mitarbeiter einstellbar (Feld «Reihenfolge im Dienstplan» im Profil).
  • Wochenplan als PDF ins Archiv: Button «Als PDF ins Archiv» in der Wochenansicht erzeugt ein A4-Querformat-PDF (Zeile pro Mitarbeiter, Spalte pro Tag, Auftraege mit Uhrzeit, Dauer und «Abruf», Abwesenheiten und Feiertage als Label, Sperrvermerk) und legt es unter <PDF-Archiv>/Dienstplan/KWnn-JJJJ.pdf im Ordner des Archiv-Benutzers ab (vorhandene Datei wird ersetzt). Nur Admin und HR-Manager (die Datei landet im Konto des Archiv-Benutzers). Ohne konfiguriertes Archiv oder bei Ablagefehler gibt es eine klare Meldung. Audit-Eintrag «PDF exportiert».
  • Notiz-Hinweis auf Auftragskarten: Karten mit Notiz zeigen ein kleines Warnschild, der Text bleibt als Tooltip.
  • Wochensperre im Dienstplan («Schluessel»): Planer sperren eine Woche per Schluessel-Button im Kopf der Wochenansicht; gesperrte Wochen lassen keine Aenderungen mehr zu (kein Anlegen, Verschieben, Bearbeiten, Loeschen, auch nicht per API oder als Ziel von «Woche kopieren»), Auftraege sind nur noch ansehbar, ein Hinweisbanner nennt Sperrer und Zeitpunkt. Entsperren duerfen nur Admin und HR-Manager. Sperren und Entsperren stehen im Audit-Log. Migration V28 (Tabelle zw_duty_week_locks).
  • Vorlagen-Leiste im Dienstplan ausblendbar: Firmeneinstellung «Vorlagen-Leiste im Dienstplan anzeigen» in der Sektion «Dienstplan-Vorlagen» (Standard an) als Vorgabe, dazu ein Auge-Schalter im Kopf der Wochenansicht, mit dem jeder Planer die Leiste fuer sich ein- oder ausblendet (persoenliche Einstellung, ueberschreibt die Vorgabe). Die Vorlagen bleiben erhalten.
  • Woche in eine beliebige Woche kopieren: «Woche kopieren nach …» (ersetzt «Woche in naechste Woche kopieren») mit Kalenderwoche und Jahr, vorbelegt mit der Folgewoche, auch ueber den Jahreswechsel (z. B. KW 49/2026 nach KW 13/2027); der Dialog zeigt den Zieldatumsbereich und lehnt nicht existierende Wochen ab.
  • Kalenderwoche gross in der Ecke des Wochenplans (links ueber der Namensspalte, mit Jahr).

Fixed

  • Dauer-Feld im Dienstplan akzeptierte nicht jede Minutenzahl: min="1" step="5" liess im Auftragsformular nur 1, 6, 11, ... 1436 als gueltige Werte zu, der Browser meldete z.B. 30 Minuten als ungueltig. Das Feld erlaubt jetzt jede Minutenzahl, die Schnellwahl-Buttons (30/60/90/120) bleiben unveraendert.
  • Uhrzeit- und Datumsfelder folgten der Browser-Locale statt fest 24 h und DD.MM.YYYY: Native <input type="time">/type="date" zeigten je nach Spracheinstellung z.B. AM/PM oder MM/DD/YYYY. Betroffen waren das Auftragsformular im Dienstplan, die Zeiterfassung (Beginn/Ende) und «Meine Einstellungen» (Standard-Arbeitsbeginn/-ende); Uhrzeiten werden jetzt zusaetzlich clientseitig gegen das Muster HH:MM geprueft, bevor sie gespeichert werden.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signaturee7xyNvQ4CVQJqQl3/cfYoKtX6fVKrzo2MW3ogaq0KbyzYv8ax5v2hdkVVeYV7U3v
sn62KT0RHeSkuMnrEDjIGtISkYjzKDk2hUhI1C6WqXBXijfgPayKtpYZp2D9uVsp
mO+gX7o0ky8Ghm2p67AHidRaKYW+aJCaCjpxyrqQU2MI/+UoMXZufsZVCgoCj+f8
vC6Y1WOkGtYIjyO9VyJue2hirBKO9QNMZfCpUJT1Jf1VLsBWbexDmOxt4pxTAXsB
WRoqexqWd5wfjjiSKw9JkujlN5TmKwmvXRUPja5HhoEX0v9wCMU3Igt0qRW2t5aK
Eqvy8MHvnViFD9nUxErjDSmQfopb1hupfrs95lfsUgrFcrb0GqL8Lkxa4I983fCt
rU/R/+YcAhg7tHhre0jRzzGUltNonaH9c1R99q/diK8pJTESis2KVTcm62xdkRFY
TkyfCrReygs9xpZIxcx8pI92/M2WpIY96OXhyv5+/vvCXBggiBKKsRrwusWxK8W5
uBuLBAuRkNDDCsMdM1n3sTEZtl3VUFCWi4vAvtGbZqcP5GFzQoqdpUMnpPZbNLX4
z3hcKA3Yg60kD3xndp9ug6TyDwWqWyBN4p6YXpWyJtsR0Xx8FEYuPuA5ftAE/8WF
faNzEFHEUc3e8gFV5aY+ZtCTBX6RuFhdPYPIHNoViNs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.2
Release Details
UpdatedSept. 7, 2026, 2:24 p.m.
Changelog

Wartungsrelease mit Fehlerbehebungen aus dem Ursprungsprojekt WorkTime (Paket 3). Keine Datenbankmigration, keine Aenderung an bestehenden Daten.

Fixed

  • Betriebsferien ueberspringen bestehende eigene Abwesenheiten tagesgenau (WorkTime #454): Lag im Zeitraum einer zentralen Betriebsferien-Buchung bereits ein eigener Urlaub oder eine Krankmeldung, entstanden bisher ueberlappende Eintraege und der Tag wurde doppelt gezaehlt. Belegte Tage werden jetzt ausgelassen; Mitarbeitende, deren Zeitraum komplett belegt ist, werden mit Grund uebersprungen, teilweise belegte werden im Ergebnis mit den ausgelassenen Tagen ausgewiesen. Abgelehnte Antraege blockieren keine Tage.
  • Validierungsmeldungen bei Abwesenheiten waren teils Englisch (WorkTime #528): «End date must be after start date», «Not enough vacation days» und vier weitere Meldungen erscheinen jetzt in der Sprache der Oberflaeche.
  • Team-Reiter fuer Admin und HR ohne eigenes Mitarbeiterprofil (WorkTime #604): Geschaeftsfuehrung oder HR ohne eigenen Mitarbeiterdatensatz sahen den Team-Reiter nicht.
  • Korrekturmodus fuer HR ohne eigenes Profil (WorkTime #631): Im Korrekturmodus fehlten die Reiter Zeiterfassung und Abwesenheiten, und «Abwesenheiten» fuehrte auf die Startseite zurueck.
  • Bemerkung des Antragstellers in der Genehmiger-Inbox (WorkTime #461): Die beim Abwesenheitsantrag eingegebene Bemerkung war fuer Genehmigende nicht sichtbar.
  • Mitarbeitende koennen ihr eigenes Arbeitszeitprofil lesen (WorkTime #526): GET /api/employees/{id}/schedules verlangte fuer das eigene Profil Verwaltungsrechte. Schreiben bleibt Admin und HR vorbehalten.
  • Mitarbeiteruebersicht bei zukuenftigem Eintrittsdatum (WorkTime #581): Ein Neuzugang mit erst kuenftig gueltigem Arbeitszeitprofil erschien bis zum Eintritt mit 40 Stunden und 30 Urlaubstagen statt mit seinen Profilwerten. Nur Anzeige, Sollstunden und Urlaubsanspruch waren korrekt.
  • Anlegen mit weniger als fuenf Arbeitstagen (WorkTime #578): Beim Anlegen eines Mitarbeiters mit z. B. vier Tagen und 30 Stunden entstand ein Montag-bis-Freitag-Profil mit sechs Stunden pro Tag. Das Initialprofil belegt jetzt die angegebene Zahl an Wochentagen. Bestehende Profile bleiben unveraendert.
  • Sammelbefunde aus dem WorkTime-Review (WorkTime #537):
  • Datumsangaben aus der API (Abwesenheiten, Zeiteintraege, PDF-Zeitraum) muessen ein echtes Kalenderdatum im Format JJJJ-MM-TT sein; relative Ausdruecke oder Werte wie 30. Februar werden mit klarer Meldung abgewiesen statt still umgerechnet. Die Oberflaeche sendet seit jeher dieses Format.
  • PDF-Archiv: Mitarbeiternamen werden als Ordnername abgesichert (keine Pfadtrenner, Steuerzeichen oder «..»). Bestehende Archivordner behalten ihren Namen, auch mit Punkten, Apostrophen oder Leerzeichen.
  • Benachrichtigungen nennen den Monat in der Sprache des Empfaengers statt immer auf Deutsch. Bereits vorhandene Benachrichtigungen bleiben lesbar.
  • PDF-Endpunkt prueft Monat und Jahr, numerische Routen-Parameter fuer Zeiteintraege und Projekte sind auf Zahlen eingeschraenkt, die Genehmigungsuebersicht meldet ein fehlgeschlagenes Laden sichtbar statt eine leere Liste zu zeigen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureBlhdwDVCNRukG9uKtJXmhUIFC25xUL1w7WVRZU5NjRmfQO2+sCr2bWZ1MGufzegF
3QC3dOpHZtmM5vsfWbbZ/MlWsYiZWqfxdVXYj7sPR940X61H2tdjTVVR1HM27yMY
hZp5YWWhZ+jVDDWEuGdifTUiLh5QXdsz5Gcp+5L6hLQymQAvAc/cPWidBkxVOBMq
5a5+BGULGgXW2vCWNAXWFwZA+TDbjFG2VJc4ZnCFU81NE74yhbT0anC8jxmLvS8c
P18wRypKJ6bwEmlNjkFLI+b4NNbO154ngl+GPC3x0eVdMI3nWOjS6Nz++LzdcZYo
KB2V+rIf59IaSoVfnILzCltVWILj2PtXoyuc9fs3ylXNBr7mXKozd5u3dgiIJ62w
Ym6vYqIm2HVP3PnQNxThnS8zWP0OYJw4gmgnjyGJeLSGAAmDiDBMXJmSyybOiMdM
eFFg6qg0gNYcBumbbrUNlo5ul0Tf6KrNlVqwd115qfHHiayX/oDI4qvE2rdp1iDb
DjoDXpyiArI0yUGiHm/OyhCBNS/1SjNGB4za67VSHlc0S0Y78slBk7rxbbzdLyDr
XlR9VIoioFbdzBeRtH/Zie4dWyw851ymEcD6POVKoFKIORdzo3DZQA42nPdMzKXs
puj2yJ8fM9r39vOnOnqpHlJXgQufacDvGWbX2kEp210=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.1
Release Details
UpdatedSept. 6, 2026, 11:52 a.m.
Changelog

Fixed

  • Neue deutsche Feiertage fehlten in bestehenden Jahren nach dem Update auf 0.18.0: Feiertage, die vor dem Update automatisch erzeugt wurden, bekamen Buss- und Bettag (Sachsen), Frauentag (Berlin, Mecklenburg-Vorpommern) und Weltkindertag (Thueringen) erst nach einem manuellen «Feiertage neu erstellen»; bis dahin wurden an diesen Tagen Sollstunden verlangt und Urlaub verbraucht. Das Update traegt fehlende Feiertage jetzt in allen vorhandenen Jahren und Regionen nach, ohne etwas zu loeschen; manuelle Feiertage bleiben unberuehrt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureMNFyjqsI3Y6icMxkXiTwEZeErEasbZabgC5oRcZ2ZEftOWNovZkP1rSY4mboD8o7
Bqs0IzpV6Qs7aielagM05xcuULJfXVfPcgySdQkaVN5UBn3bn0hwNbH5kGOXD5Kr
OnceCgVeN67wedVW8EF+k9bHYuQF9wCuXK3z2ewQCbSDrix8jyK6Z4CH30wo9tsI
rRQ7pXswv26OZxEVqsgGZB8yvwXWwy+QDbhzwiYbTJV4BjmdZmGcVf4MLCA32jsE
XD28zkZDtxQd4paUszkQ2M9m7j8d77MGsbUa2KrtCbkHgAbLQt0rh4blFu/4OYBH
/MEtCeg7bgQZXyswxPUqCFBo6NZ4qjQ2PIViU/itDbtLD37OCylvY8lIFvVfVUHI
7l+aKhOPnc4mECpwRXPSw5syj0f5LKFqLm9dzfn6OQ1+djklLISHq/25FAsPTb5T
+hMuGm7ZnK5HupPDOKjyG9aVZvON11na2Z2L+67kvVQPBtZgFM3vX5XZkegw9Teg
lPeR5oBp7KVXVl2sPKSI1ItmWbBAbl4U6PRyDro66qQ3bTmQizpaH3Amakk2aB28
3I7VEI4eDPcpUK75SU2c00VYNiEIQfe1bNU7WJWPgaCmrpGmGyvcGAceFy9Fx/Bm
4F++FYyRrY964ElEnjEpDi2axpC6sETzDK13S8nJyuE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.18.0
Release Details
UpdatedSept. 6, 2026, 11:16 a.m.
Changelog

Added

  • Feiertage fuer die Schweiz: Zeitwerk kennt jetzt die 26 Kantone mit ihren kantonsweit arbeitsfreien Feiertagen (Basis: Verzeichnis des Bundesamts fuer Justiz, Stand 2011, plus kantonsweit faktisch arbeitsfreie Tage). Sonderregeln sind abgebildet: Naefelser Fahrt, Jeune genevois, Bettagsmontag, Neuenburger Montagsregel, entfallender Stephanstag an Dienstag oder Samstag in Uri, Appenzell und Aargau, halber 1. Mai in Solothurn. Mitarbeitende waehlen Land und Region (Bundesland oder Kanton), Firmen koennen deutsche und Schweizer Mitarbeitende gemischt fuehren. Details und Grenzen in FEIERTAGE.md.
  • Endpunkt GET /api/holidays/regions liefert Laender, Regionen und die Standard-Region der Firma.

Changed

  • Regionscodes nach ISO 3166-2: Bundeslaender und Kantone tragen laenderpraefigierte Codes (DE-BY, CH-ZH), weil sich Zweibuchstaben-Codes zwischen den Laendern ueberschneiden (Berlin/Bern, Schleswig-Holstein/Schaffhausen, Nordrhein-Westfalen/Nidwalden). Bestehende Daten werden beim Update automatisch umgeschrieben (Mitarbeitende, Feiertage, Standard-Region). Alte Zweibuchstaben-Codes in Anfragen werden weiterhin als deutsche Bundeslaender gelesen. Kein Downgrade auf 0.17.x nach diesem Update. Das Update laeuft wie gewohnt ueber den App Store oder occ upgrade (Nextcloud sperrt dabei Anfragen und Hintergrundjobs); Eintraege mit unbekannten Regionscodes werden bei der Migration gezaehlt und als Warnung gemeldet.
  • Einstellungen: «Standard-Bundesland» heisst jetzt «Standard-Region» mit vorgeschaltetem Land; die Feiertagsverwaltung filtert nach Land und Region, das Formular fuer manuelle Feiertage gruppiert die Regionen nach Land; «Feiertage neu erstellen» erzeugt alle 42 Regionen. Die Feiertagstabelle gruppiert nach Datum, Name und Umfang, damit ein halber Tag (Solothurn, 1. Mai) nicht zusammen mit den ganzen Tagen der anderen Kantone bearbeitet und dabei ueberschrieben wird.
  • Feiertagsregeln als Provider pro Land (OCA\Zeitwerk\Holiday): weitere Laender lassen sich als reine Daten ergaenzen.

Fixed

  • Fehlende deutsche Feiertage: Buss- und Bettag (Sachsen, Mittwoch vor dem 23.11.), Internationaler Frauentag (Berlin ab 2019, Mecklenburg-Vorpommern ab 2023) und Weltkindertag (Thueringen ab 2019) werden jetzt erzeugt. Bestehende Jahre uebernehmen die Tage nach «Feiertage neu erstellen».
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureGtRsXeD0K09/DkXTzNx63HEpceO2QN8+XkoBac6k/oE0YA0Vwy2yn7ntrsI5e0rS
aXGpPrXfSz4gKwh4L78qVmMukARGqfJcUz/HRZZeZ1i23kF88fXvhcDg9lFDaM2S
jrb2S5GDP7ynEdnPjnMn9Tui67RmVbiGzcPFtK1zM9NbTUZly3Bq6gt8fnql/q/w
wmXfjlCHRnP9YsG4zipA6zlrLkERNYdSdakbxGW+eIKbJF2l6Tx7oKeZQh+eQG5D
SraPlGgk3qMcrw/CbJ5AmzEwQOx0Yr7u3Y2MaPDutBRjF5zFA+KENEmIEt5ubl3s
XN9xJ2GsEhytbVJW1OwuIxhBi21TZdi3eOXWSz7Et7GMQ93JVMCIga/gBDIgDSn4
3TDNlAnvpMkvFGlqAVDXYnHK8rGOwS6ljTom80z/MmKzSV5lCPMSUk0+rWNU8YQG
1q4E8Ux+E+jBzKr5cV3Dk2GqOseqpQkrb5qP6P+wLD14uDNmSpOoWFHV92QfU4cK
1aFDOqiSK2iT/CtAdmNEzABcjkaTyxO23wg4KvQ5jwbX0+TufXe/DMfxLd5JxjuB
WwVOyq3FnwcilxsB4v/w04X4YBHjENXDpYJ7PbqTNP06sQ79rMWhU4G4pTPurcr4
Mb2LhreicV2pULsKvlV5qpwr69DE3MZw6MAWkyHog8Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.17.0
Release Details
UpdatedSept. 3, 2026, 7:45 a.m.
Changelog

Fixed

  • Monat nur aus Abwesenheiten liess sich nicht einreichen: Ein Monat, der komplett aus Urlaub, unbezahltem Urlaub oder anderen Abwesenheiten besteht, hatte keinen Zeiteintrag, an dem der Status „eingereicht"/„genehmigt" hängen konnte – der Button „Monat einreichen" fehlte, der Monat blieb in der Team-Übersicht und beim Jahresübertrag („Alle Monate genehmigt") für immer offen. Der Monatsstatus ist jetzt ein eigener Datensatz je Mitarbeiter und Monat (zw_month_status, Migration mit Übernahme der bisherigen Stände). Einreichen ist möglich, sobald offene Zeiteinträge oder mindestens eine genehmigte Abwesenheit im Monat liegen; Genehmigung, Zurückweisung, Wiedereröffnung, PDF-Archiv, km-Sperre und Profil-Schutz folgen dem Monatsstatus.

Changed

  • Status „Zurückgewiesen" am Monat: Die Zeiterfassung zeigt einen zurückgewiesenen Monat als solchen an (bisher „Entwurf") und die Erfolgsmeldungen sprechen bei Monaten ohne Zeiteinträge vom Monat statt von „0 Einträgen".
  • Audit-Log: Einreichen, Genehmigen, Zurückweisen und Wiedereröffnen eines Monats werden zusätzlich als Eintrag vom Typ „Monatsabschluss" protokolliert.
  • Hinweis zur Migration: Bestehende Monate übernehmen beim Update ihren bisherigen Status (eingereicht, zurückgewiesen, genehmigt). Ein Monat, in dem neben eingereichten noch offene oder zurückgewiesene Zeiteinträge liegen, gilt danach als Entwurf und erscheint erst wieder in der Genehmigungs-Inbox, wenn der Mitarbeiter ihn erneut einreicht.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureQXI4StmMhfd/oMzF/KNRCEg0ArtSiQ8BXz/seUj//XzX2Li2Oo6wtKBRll6SBck47/MD9A6PBlzgMZorE+TABHaRvEWF2fHjhkIwwDjhzRHxwQXbc+4TqaJcudlpUhqqMpJYkGjxj/b0xgCwxfO3YlcB72pzVmL9wYnYuvKDVliFZIUhzSiICBK7x4/j/XcXASJPCVNN/Jx3hpJShYkTzuLm7JUAbu/jmSnJyEC41XPcIqKAUNdiEV7CIEH064nIgT4xGTpmIZzWPrcnLZnNLELzQr9Qq4ttxOwmDjq3/0Pf7yiW3jE/3x5BdTMi/ZkxirS0cCpbeDP8aRF683l3QquijVDmEmNmgh7lnxZa7nAmIjssxn7PtU6btR+lL4RTvQZuSAI2pH/4hLCat03JRjVPnrN+WgcHtP4IW6q/4P45O4r49N9PUwHOGZ/usyTZx7TGyTBuGR0x8TaSIbfREkaH3fMn6eHgtfVVyKxH6hYXdD+TR5wUEW+LwKM4tf4LzlsXlgs6LC1rv/70RkDP2FFCz3MWoKYM1grAq+X+S6XqKFkfsWGaGZ1sa6+NcdGfiWtLFPxUYsBsQKY7fiM9FKUecWVx84m2yrMLNH+QcSTPy2mPnsVp78bhGr26ffgOa2gXkRxk/gbpXcUFs0YBsxntYB/va58NUrtv6QG0q2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.16.0
Release Details
UpdatedSept. 2, 2026, 7:43 p.m.
Changelog

Added

  • Jahresübertrag: Ist-Werte per Klick eintragen: Neben „Durchführen" gibt es pro Mitarbeiter den Button „Eintragen", der Überstunden-Ist und Resturlaub-Ist des Vorjahres exakt in die Übertrags-Felder übernimmt (minutengenau, halbe Tage, auch Minusstunden) und sofort speichert. HR passt bei Bedarf an und klickt „Durchführen". Der Button erscheint nur, solange die Felder von den Ist-Werten abweichen und der Übertrag noch nicht durchgeführt ist.

Changed

  • Jahresübertrag: konsistente Anzeige und kompakteres Layout: Überstunden-Ist und gesperrte Werte zeigen zwei Nachkommastellen wie das Eingabefeld (vorher „-315.7" neben „-315.67"), das Feld erlaubt Hundertstel, der Button heisst „Durchführen" mit eigener Spaltenüberschrift „Übertrag", und die Bemerkungsspalte ist schmaler, damit die Tabelle in den Rahmen passt.
  • Lesbare Farben im Jahresübertrag: Minus- und Plusstunden sowie der Hinweis zu offenen bzw. genehmigten Monaten nutzen die Text-Farbvarianten des Nextcloud-Themes statt der hellen Flächenfarben, die auf weissem Grund kaum lesbar waren.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
Signatureg5J/aEmg2p2V9NUgu+PnFSqGUXAUXjk/touyLlJcDNTKkLCkei8HveGA3X+sndG1dTtUUmM6m1Mh+r0tGxPOqieHjtNwgD6kOT1S9wplXW3mMbD+9jmiKwCbtNUmGMZ+kkKIUXxg+dbIyfeuq0wXaNEUuShrGjbxm860qoVsI8/lXlG6pDuSgkWfXRqX6LPNnMjHiCgYKrYCAO8UsP0X3y6HHdee5bBxBgVI5kCAh74pNBPNzWu83MLTM+nQREo2xM4JMrnyQOimk4Pz6hG8mLkgKey1P6wV/rNdQ7DuhrzXtzq05DUbWftZcgALRfReaJlS8Ap0hJpMDi4GhjQWiFHiKNFtirtJ298eSzPmHxlQYcDUH8S2hWStMdCde2y3ydY9O44W08FYibwrYBjnY0gJJXIqhuufFjr0A7aYb3t0QsmwXpKWAY/YhtXF0sa8w81f/Eskd7J9oYOmNiDbJb0fB4JbqD1HyjLhRLVPkmmq3+mQzcH1GdXNkXD0E96htRpBx3EBCe54BGwRcUdFf4s+vVebdrmMtDNfDRgNZUDZRz8p05WtydU8mzrG1AwV715gDoKz0+F4YDJ6QENA4hnSQG9D4hj64N1w6R7sSYUKDozpcAqrxQt9d1NwRi81CjbLXY06HaOtdiUxEdeGIlzTezef0Sbt9CrlANBQGbM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.2
Release Details
UpdatedSept. 2, 2026, 6:11 p.m.
Changelog

Zehn Fehlerbehebungen rund um Urlaub, Feiertage und Überstunden aus der Original-App WorkTime (cpcMomentum/worktime) übernommen, dazu ein Nachbefund zu 0.15.1.

Fixed

  • Fehlende Feiertage werden bei der Berechnung erzeugt (WorkTime #438): In Jahren oder Bundesländern, für die noch keine Feiertage generiert waren, wurde ein Feiertag als Arbeits- bzw. Urlaubstag gewertet. Fehlende Feiertage werden jetzt bei Bedarf automatisch angelegt (idempotent, manuell gepflegte Feiertage bleiben unangetastet).
  • Abgelehnter Urlaub verbrauchte weiterhin Urlaubstage und blockierte neue Anträge (WorkTime #443): Nur genehmigte und offene Abwesenheiten zählen aufs Kontingent und stehen einem neuen Antrag für dieselben Tage im Weg.
  • Halber Feiertag bei bezahlter Abwesenheit falsch verrechnet (WorkTime #443): Ein genehmigter Urlaub auf einem halben Feiertag erzeugte rund vier Minusstunden.
  • Doppelzählung bei Genehmigung mit vorhandenen Zeiteinträgen (WorkTime #443): Die Genehmigung einer ganztägigen Abwesenheit prüft erneut, ob am Tag bereits Zeiteinträge liegen.
  • Team-Jahresübersicht zählte Feiertage und halbe Tage als volle Urlaubstage (WorkTime #443): Die Monatsspalten berücksichtigen jetzt die echten Feiertage des Zeitraums und den Umfang (halber Tag = 0,5).
  • Pausenwarnung bei geteiltem Arbeitstag mit Lücke (WorkTime #443): Die §4-Prüfung rechnet mit der reinen Arbeitszeit statt mit einem auf Bruttozeit geeichten Schwellwert.
  • Halbtags-Abwesenheiten in Zukunftsmonaten und Freizeitausgleich-Hinweis (WorkTime #443 G/H): Ein halber Tag in einem noch nicht begonnenen Monat zählt als 0,5, und der Hinweis „Freizeitausgleich ≈ Stunden" rechnet mit den Arbeitstagen pro Woche des Mitarbeiters statt fest mit fünf.
  • Urlaubsantrag trotz ausreichendem Guthaben abgelehnt (WorkTime #500): Der Jahresübertrag aus dem Vorjahr fliesst jetzt auch in die Prüfung beim Beantragen ein, nicht nur in die Anzeige.
  • Falscher Urlaubsanspruch bei geändertem Arbeitszeitprofil (WorkTime #501): Die Antrags- und Betriebsferien-Prüfung nutzt den jahresgenauen Anspruch aus dem Profil des betreffenden Jahres statt des heute gültigen Werts.
  • Halbe Urlaubstage aus dem Jahresübertrag wurden als ganze verrechnet (WorkTime #525): Ein Übertrag von 12,5 Tagen wurde in Guthaben, Antragsprüfung, Team-Jahresübersicht und Anzeige auf 13 gerundet. Der Übertrag zählt jetzt überall exakt.

Security

  • HR-Korrektur bei deaktivierten Mitarbeitern verlangt eine Begründung: Der in 0.15.1 eingeführte Schutz liess sich von HR/Admin im Korrekturmodus ohne Begründung umgehen, solange der Monat noch offen war (die Begründungspflicht griff nur über die Monatssperre). Jetzt gilt bei deaktivierten Mitarbeitern für Anlegen, Bearbeiten und Löschen von Zeiteinträgen und Abwesenheiten immer die Begründungspflicht (mindestens 10 Zeichen), und die Begründung wird im Audit-Log festgehalten. Die Weboberfläche fragte die Begründung im Korrekturmodus bereits ab; betroffen war nur der direkte API-Zugriff.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureD5dof80phMxxlrhW1Z9besJffetJO1Ye0Tn26Zn2RFXZnQAIYo3ZHiRwSQVwaHlkRNgcPUduOdGvZgN2LV4Os/FfVW48EI2iHdWPx5p30578YTmCQdeg1K2NEJK/0i04VURGhUiHocsDJ3nz8rW4zgxfbjI3trwBHLTh4W+86OjiZ7ZF5uiGPlZRn7Auavsv1st2pNzUjnbskkX23cWOgsTLjr98tQCFwQS3yl5j3erNZiV/8eTzOEi4vhVbO4jhmQgaQj5c2jRStmL0oyOhngOTFWJDLkPl4AGaauMOeWo4MNewu8E6Rx2BvgtsZi70i61s3+vCpDv6lyX/ew+KEKo4TgzcCb5d+3eq130VTwaEDFrCbPyPCBKA+EFy8SQIka7J8oyHCfZ0B1DEelSN7UKkxu2a3lTsJHrizP55kbO/XQK7szmfMkrEMrcYRVqF+qq3NqfB3E9rgN8SGa9FDB5zNxdki75UtSk4IKcrDVFBM+85Jm1C5/NSaDAC2HgiWtnbD87EeCyqRTbTWxj8ZxsXr0UYLedrNnS4/I8S73RIReOkfWfqnlO2aZD4evzGDoFbUFaA1fBl86uCt0d5NWG13/BFaXZhej97ObhZjdjiFJRW8ZZ9rpwNUzTBjOgodWDif3+RNNWu6uWFKjSI6mgYYraHroD+VDjyAx2xgwY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.1
Release Details
UpdatedSept. 2, 2026, 5:09 p.m.
Changelog

Drei Fehlerbehebungen aus der Original-App WorkTime übernommen (cpcMomentum/worktime).

Security

  • Deaktivierte Mitarbeiter konnten weiter erfassen (WorkTime #486): Die Mitarbeiterverwaltung stellte in Aussicht, dass inaktive Mitarbeiter keine Zeiten mehr erfassen können; tatsächlich wurden sie nur aus Auswahllisten ausgeblendet. Zeiteinträge und Abwesenheiten deaktivierter Mitarbeiter werden jetzt serverseitig abgelehnt (Anlegen, Bearbeiten, Löschen, Einreichen). Genehmigen, Ablehnen und Stornieren bleiben möglich, damit ein laufender Monat abgeschlossen werden kann; HR-Korrekturen mit Begründung bleiben ebenfalls möglich. Der Ruhend-Status des Originals wurde nicht übernommen.

Fixed

  • Benachrichtigungen auf Nextcloud 34 ohne Symbol und Link, Log-Spam (WorkTime #551): Nextcloud 34 akzeptiert als Benachrichtigungs-Symbol nur absolute URLs; der relative Pfad liess setIcon() fehlschlagen, wodurch Symbol und Link fehlten und der Fehler bei jedem Cron-Lauf im Log landete. Das Symbol wird jetzt als absolute URL gesetzt; sollte ein Setter künftig einen Wert ablehnen, wird die Benachrichtigung sauber verworfen statt das Log zu füllen.
  • „PDF über Zeitraum" schlug mit „CSRF check failed" fehl (WorkTime #620): Dem Zeitraum-Export fehlte die CSRF-Ausnahme, die die anderen Download-Endpunkte haben (Downloads öffnen sich per window.open() ohne Nextcloud-Requesttoken). Ein Test stellt jetzt sicher, dass alle Download-Endpunkte die Ausnahme tragen.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureXwb0Iwn+wfICzPqWPq4XqoO7yg39HJRQXkKV+/5oUbycfbnGScef0a5wMGM8AqIPIR5wyNh+0jR3u352MKd7AExfPJnxnbb0PFFcVQ2VUPYhaG4oYzKX2J4vVGT1ljth1oB2YojrCnM0Hi1jo6NR1zF46K3eXFWqgVrq37nPeTQynHAbntx6+xmT1hdZR+yf+jJABDZ+RqF13gqhp5QclQxqwKBGTggr+JkAnNh0sI+hv/9Y3N4U6lmu/gCA0JrT+phU0iRLPV1XpVti8kkBH+/gGSbyTeCrfTt3NA5oxo/fTVdIOIN2Q6ZVP0tnM3PGlj1pmwMHawR60ys3IqZZceEDYNw2t4zDfBx2skNpwG/EmXVkbEX6C/fMaLpkxKIASNjHNhJ0Lf15hYjG7HKlLSqN7BwEc+39g0T3Q1vDO0PZYw/qaLdHzYIAtjsp3I+FhHByHcjiJjRlS9JHHlMGHpjCRkm8eetL2r27UzE+FFQBAhyROSJLxBTzduJ+DnSystGK04Evq0N/Tj8HnTBV7ebTJMhIUx1WzGxkksmBmTG5q8Wk7Ynb3Knh1aHrufshI+rdA7Qa7hAcezFiY0z8o9kVFPmUOYP3xOlBnFV6UlqlLuMoIYxeScT8uvOAjRSzdzNIJsesm7gNK5r3NbE2OVGDAXqene+KFGM/LQFEtDg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.15.0
Release Details
UpdatedSept. 2, 2026, 4:04 p.m.
Changelog

Changed

  • Arbeitszeitprofile rückwirkend anlegen und verschieben: „Gültig ab" darf jetzt in der Vergangenheit liegen, und das Datum lässt sich auch bei bestehenden Profilen ändern. HR kann ein Profil damit nachträglich auf das Eintrittsdatum setzen, statt dass für die Tage davor stillschweigend das automatisch angelegte Erstprofil bzw. das Standardprofil (40 Stunden) gilt. Die bisherige Regel „frühestens der 1. des aktuellen Monats" entfällt.
  • Schutz genehmigter Monate bei Profil-Änderungen: Anlegen, Bearbeiten und Löschen eines Profils werden abgelehnt, wenn der betroffene Zeitraum (vom früheren Gültig-ab-Datum bis zum nächsten späteren Profil bzw. bis heute) einen vollständig genehmigten Monat enthält; die Meldung nennt die Monate. HR öffnet den Monat wie gewohnt zuerst wieder, korrigiert das Profil, danach wird der Monat erneut eingereicht und genehmigt (das Archiv-PDF wird dabei neu erzeugt).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignaturedowyBIEW5iCPF0x5QiPZLmlxH2slVZVj1ADt0D8B4atRU8FdKRJziynbfYHhDZ5l1riNeRGJRcI//bUAEFL7i4dFVEGGxdXTtjNjRD5n2xnqW7vTsBzMOQo3h6dMGZGfvizHxVOVE4xRRDvF3FngS8jgEWiwcSvc8NTlzkGCQqJRMgbNzBr/GXFypF4nsZh+WNvQTHuG+4vgZkgaCbfvOoUZVmScp5lwy6+E8IsQBscIheLIgGch43IAM8ytFvxrOQpwfC2e6YMQQDxaO+kXo9hSrSWNB+2zL1thQjgFM/0P/Yhydfk84c0fwk2+z2FKl5FgO6374F6xl4wHDS0hBodlOzRf7vJl47llpuDQ6D9QwUA3W2APSmkMD5f+7oZWwjPkma1sQz+2MiHi8Bp5/1Qkn2fU8oU3x0uzFZhiik2rCmxLnkxs0VyLLFgn2Bln4SsseWLDRCMMaNFMmog6zHdWsXVyA76+czzQv0YpONdejPhBneAnBGTi9y1tPFhzAIrp4oGYAuUuzYoahFslt37nlMirAb2I8RfuVTGgyc+aUEJqWmkgPfzffViki+BNfZczfT4vIHDNO5SfFro+KUhceO0cQ3vu3oKUrHz5nOeVSTAX3l233PENWTWVxhndrOEnt9+8vpENt2e7gESXa18HmgX7r3T6N6trRC0DsOk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.3
Release Details
UpdatedAug. 13, 2026, 3:02 p.m.
Changelog

Removed

  • Autoren-Eintrag des Original-Autors entfernt: Axel Deffner ist auf eigenen Wunsch nicht mehr als Autor in info.xml und im App-Store-Eintrag gelistet, da er Zeitwerk nicht mitbetreut und nicht als Kontaktperson erscheinen möchte. Der Herkunfts-Hinweis in der App-Beschreibung („Fork der App WorkTime, Original von Axel Deffner") sowie die Copyright-Vermerke in den Quelldateien bleiben unverändert erhalten.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureOoyXP/iysJNGOY7//S7w4BSW8Y5kl3CgNyx5Qv7IL+S1Z9oRjGDrkjSVj9XySgf95YBMa8/QWcvzj3ZLvy+WSf1PitrPvPUdDTyCG6QYbOz1iDrJWSSAPRhkOMMS7GcOi/l2JzzfnVBujnCDIJx2kKwH7UL1VX8Ss7Vke3WpLnLhs2WqrFNMls+EEcE3MDj4U53ASO+IYdOcVqy3K9uoTND+Co+6zGKo8MTkBtgFEPmMkFXg+F5evqqaW21MzySQoL7ogT6ZRd/Nc5iUM8o29kC15+Anv9dGJ/00rpZv/wqLWVlZRQyy5b9gxYWJLdOw1sRPJ6mCscsUgHFdxa1mgab2OGRUBqkR0w2EZsWGOmMQv6g9IH1qK6ErDyIW9N0gbSdlQ89ZC9C2oVGonWMn/K1511NNzFNU/1L+boGg49V+hOXxAcXJxxRXsMAxlOuu4orh8+6PDuC/++N1g3Qgj65tnNwIN12+ymvjl95mHqm1ovaDKz2ifYU6V+/XrHXHWmnEfOSZWxgA0plKkitS7/aeXBP3SaxhdXYmY2WXAc0h/X/dNSu/RPg85+hiBAhOvJRoIUzQWOSJW4AiOCMvUyBTIUYtADMauDIm2RRhbsyY0+8CKNCp81DSBjtR19gQjpZOHjo3aPfmUV4JfN+yIxABY41csrMgjhlkRNn2868=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.2
Release Details
UpdatedJuly 17, 2026, 12:42 p.m.
Changelog

Changed

  • App-Paket file-signiert: Das Release-Paket enthält jetzt appinfo/signature.json mit SHA512-Hashes aller Dateien, signiert mit dem Zeitwerk-Zertifikat der Nextcloud Code Signing Authority. Administratoren können die Integrität der installierten App damit jederzeit prüfen (occ integrity:check-app zeitwerk), und nachträgliche Änderungen an Dateien der Instanz werden erkannt.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureI5nCyDmIhw0+n3EHGUG0EycAj6CnpYF3/VM6fZcweY7ZAOKnMr4Zk/d1Eo6ogFf1
pVXwy2B3skaHmr3aynXQlCWjiHhRW+faqDebZ97lnMDk167lmTwuUqAOQQ7Mb3D3
Aq0DH+88O3UiikTuYOSz5AJjOg/ny8KcZlvqivtA1rfv2W0wWbIw+UTkR8OgO9kk
UQGMBLIasDUq1gdqhW9EC4ZQ3+U6KJPOhFXB2pYZSHeGwYU950E4Ev0kfyi81I7P
8qEFz7fhc+F78mfXis84a7+YnFGMzfhFoW4egQB87ZHYjxy+Hfwhz3lf/tvCYfNp
3zNGCccYqIn1h+0eNJ0k4+bBBzoJud2SScsPawu72dcEhYhEhZHEMMZkgp9PmFOk
5lL14A3OYlI1EEw/E2NU1NSOo8/PF/pwtOBL0HkjMGOJH0+HRYZ8Nss46sH68wdL
feIxR1mO5p5I1bJq1fkWeuNNmXdoPbHB2oUD6KW60T/vc9R8WPUMKwwRi/OnAQeC
TVymcGD/1rVKDMwtmoJtDS2ABJv9/XVYxEMNc9TOLk/AjQjjAaMwSHcnAQzodlL1
L75H/dCP/a5rWUUGs5PWrPK1TVC7uM462R9kw2A8eVgXf3HS0hxElZpAVpJVWdQK
DnviVX3b/Ne6canCutqYhIY6s3RbX23ZosGfZaFhMDE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
Zeitwerk 0.14.1
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Changed

  • Erstes Release im Nextcloud App Store: Zeitwerk ist ab dieser Version über den offiziellen App Store installierbar. Das Release-Paket wird aus git archive erzeugt und enthält nur noch Laufzeit-Dateien — Entwicklungs- und Repo-Interna (Quell-Rohdateien, Tests, CI-Konfiguration, Source-Maps) sowie eine .htaccess aus der PDF-Bibliothek, die die Signaturprüfung von Nextcloud gebrochen hätte, sind ausgeschlossen.

Removed

  • Veraltetes Upstream-Zertifikat entfernt: appinfo/worktime.crt (das Store-Zertifikat der Original-App WorkTime) war noch im Paket enthalten und ist für Zeitwerk ohne Funktion.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhOfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzE3MDg0NTI3WhcNMzYxMDIyMDg0NTI3WjATMREwDwYD
VQQDDAh6ZWl0d2VyazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDI
YfklZ/A6m0CDup79cjNMb19JwT3d0KdSpEXXB8a8rOsnn4vH0Yu11rKqd2vgljh7
i/Qsezp+ojdLi0+Ws/8mlVBVjRoQNWWeY0FS2yRa4Z/LdBIJCFyieLgx1oMi58wa
N3WJ4xJTggPDyhBNhSj/KSD+CLskr2VyZpKc8yMtvJbnnj1fcpdbH7C+HIr6XiCl
arrthFN8dBuZgQBLG7svC0h1kdkGk5YilQ6UDqBx9NRrtPv1L8S3i9wZ7RXaLXjc
iMM780NDkJ2Noh5ZZdpwHBQF9LHR9hdkDX40oXuBA0yw/Ij37E/f/fxhcVvM7+SZ
DHWkdOZkw+h5YLu2eDnC3A+Kr/UR7gGhw+XzsPIgn8Ws2qQsXwyKPnaosP4kulS2
IZePPaZ4kq4TQmWDn3NyDIhTgs3YRxBbD+E0uFs+Ujz0OaXOuU2faWpODu3QqALp
H3UZCEWRkbLOb8z5aUxbcvsz9R6o6kShqwkPQeuuvQUTE9q5JI5SJzeUT5IAFwQk
zMdUHvIojVwy/GGSzEizUvrGjGvwca8m1KcnkOQVyknM9/9+mMPKj8ck8Z8hTXlL
tPVQTrXf/T8UKJwNLlZROQWh2dC5D8byqGXpjvlil+lMHpELLg3k4Q4WPhwCxBwW
gU6qG9amS0IqJysp2QnJjep+5b1P8hT2v340Uw0JAgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAHi2f0pfKMybmDwBJDAtm4cMZDDSbro4WKO4YPtP1EH6GDqe8Kqyz6bR
kdW74HNaQVa/1SU+4cKDtytCvXw4MvPRl4mzNuAsqL/JCzLi+XHjCSPV+Qa00tfh
EyXLAsNFAr/Y2uOqE+krloekNmmP1vVbWROBZN80eoYMfsN2PJgZeZT16Z8LVyUJ
MrdrZdKvQ1fjw1h44zYfex9WA4QzxGjPnqOGGzGg96zA95Ely/zv3veW+3rtYP7M
/1HbzQGqHwzueQFtxk0RTuZxzppr610yvxQ7rRuGpuh2k0URxE0/Mvg7M8VeRoCF
0o2p44r7GveWBI9F9HX6iHQilyDolx0=
-----END CERTIFICATE-----
SignatureEeH4y7T95X9kd/cVCGWfLuZxkhtajDyCCh60R9dv+eGzibr/Lt0VqXTgJQ9X0M2x
fpCkYruOSgmoNgTXVH3BpuPHIIYD1boJMg5/NLsjqk7eXCPFV4oNwYlhF5Y1b1uX
LRgbWkAQZL6TP8yknCtEIyH2w3Gn1TtckvCLLbMHTk1mDN0otBFZqLu0+w0AcNfR
yYMnDduNT5zW8/TfNIdzhWRamkwVldBGmgL3RALxhCtZnSPZCZAd924RAdouRCzL
ECBqv/r0f038r9+aAMxD/L9OkBGQhvRfF3GT7a3OBo6bv1cPvT2ffCFpjJsVZZAC
NkVuhQOCWGAheQJgfMAYl7km/ybNVW4NufnWqmyHTlLRtiSmom3mGR8YH90EC0PR
RgwmuiNpeTq7AXjCDsjc710jcvTXsKQHYidfwQzovjxKT0FUHK9n1zgWtWxSQ3KX
2+3pmPTN9qnPN9EMHX3gWelcCvVD8HArHKucJMyOk39GZziA6grlVLbkRX1Y9E65
8JgUXwnazU1QlH38ULY2MIJbM2Cs2S3riTjZS8znWc8yt0xbDeTRVfuqYSvMTqyE
VUijl2hLqJyvwoegAXiAsD5SRb0dDGrvEy4oqyPlV0MiM06MCjNyh7micMQ6SqGu
Q1KJKSEMNEGOlrhoy6LAprlPuJMtkK7KjL94IZG1+/Q=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0