Feiertage nach Bundesland sind so ein Thema, über das man erst nachdenkt, wenn es schon zu spät ist. Bei mir sitzen die externen Filialen in mehreren Bundesländern, und genau dort habe ich die Feiertage immer wieder vergessen oder zu spät daran gedacht. Das Ergebnis waren Fehlbuchungen: Termine und Planungen für Tage, an denen in der Filiale niemand arbeitet.
Kalender haben das Problem nicht gelöst. Also habe ich mir eine kleine Docker-App gebaut, die genau eine Sache macht: Sie erinnert mich rechtzeitig an die gesetzlichen Feiertage der Bundesländer, die ich ausgewählt habe. Per Pushover aufs Handy oder per E-Mail, sechs Wochen im Voraus. Einmal einrichten, dann nie wieder daran denken.

tl;dr Der Feiertag-Melder ist eine kostenlose Docker-App, die dich an die gesetzlichen Feiertage deiner Bundesländer erinnert, standardmäßig sechs Wochen vorher. Du wählst die Länder per Häkchen in einer Weboberfläche aus, Benachrichtigungen kommen per Pushover oder E-Mail. Jeder Feiertag wird genau einmal gemeldet, und gilt er in mehreren deiner Länder, steht er nur einmal mit Länderliste in der Nachricht. Die passende YAML erstellst du mit dem YAML-Generator und installierst sie per App-Import in ZimaOS oder CasaOS oder als Portainer-Stack bzw. mit Docker. Kalenderimporte und
.env-Dateien brauchst du nicht. Der Quellcode liegt offen auf GitHub.
Warum mir Kalenderimporte nicht gereicht haben
Bevor ich den Feiertag-Melder gebaut habe, habe ich es mit Kalendern versucht. Ob Outlook oder Google Kalender: Einen Feiertagskalender, der sauber nach Bundesland getrennt ist und den ich einfach hätte einbinden können, habe ich nicht gefunden. Wer für Hamburg, Bayern und Nordrhein-Westfalen gleichzeitig planen muss, steht damit ziemlich allein da.
Also blieb nur, die Feiertage mühselig von Hand zu importieren. Und das nicht einmal, sondern Jahr für Jahr wieder.
Der größere Haken kam erst danach. Selbst ein gut gepflegter Feiertagskalender zeigt den Feiertag nur an dem Tag selbst an. Eine Erinnerung Wochen vorher gab es nicht, und genau dann hätte ich sie gebraucht: wenn die Termine für die Filialen vergeben werden. Aus diesem Frust ist ein simpler Workflow geworden. Set it and forget it.
Feiertage nach Bundesland: Was überhaupt unterschiedlich ist
Bundesweit gibt es in Deutschland neun gesetzliche Feiertage: Neujahr, Karfreitag, Ostermontag, den 1. Mai, Christi Himmelfahrt, Pfingstmontag, den Tag der Deutschen Einheit und die beiden Weihnachtsfeiertage. Alles andere regeln die Länder selbst, und da gehen die Kalender ordentlich auseinander.
Diese Feiertage gelten 2027 nur in einzelnen Bundesländern:
| Datum 2027 | Feiertag | Bundesländer |
|---|---|---|
| Mi, 06.01. | Heilige Drei Könige | Baden-Württemberg, Bayern, Sachsen-Anhalt |
| Mo, 08.03. | Internationaler Frauentag | Berlin, Mecklenburg-Vorpommern |
| So, 28.03. | Ostersonntag | Brandenburg |
| So, 16.05. | Pfingstsonntag | Brandenburg |
| Do, 27.05. | Fronleichnam | Baden-Württemberg, Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland |
| So, 15.08. | Mariä Himmelfahrt | Saarland |
| Mo, 20.09. | Weltkindertag | Thüringen |
| So, 31.10. | Reformationstag | Brandenburg, Bremen, Hamburg, Mecklenburg-Vorpommern, Niedersachsen, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thüringen |
| Mo, 01.11. | Allerheiligen | Baden-Württemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland |
| Mi, 17.11. | Buß- und Bettag | Sachsen |
Spannend wird es bei Reformationstag und Allerheiligen. Die liegen direkt hintereinander, gelten aber fast genau in entgegengesetzten Hälften der Republik. Hamburg hat am 31. Oktober frei, Bayern am 1. November. Mit Filialen in beiden Ländern hast du also zwei Tage hintereinander jeweils eine geschlossene Filiale. Genau so eine Kombination hat mir der Feiertag-Melder beim ersten Test direkt gemeldet.
Ein paar Sonderfälle gibt es zusätzlich: Fronleichnam ist auch in einzelnen Gemeinden in Sachsen und Thüringen frei, Mariä Himmelfahrt in Bayern in Gemeinden mit überwiegend katholischer Bevölkerung, und Augsburg feiert am 8. August sein Friedensfest. Diese Feiertage gelten nur in einzelnen Gemeinden, und der Feiertag-Melder meldet sie nicht. Er kennt nur Feiertage, die im ganzen Bundesland gelten.
Was der Feiertag-Melder macht
Der Feiertag-Melder läuft als einzelner Docker-Container mit einer Weboberfläche. Dort setzt du Häkchen bei deinen Bundesländern, stellst den Vorlauf ein und hinterlegst Pushover oder dein E-Mail-Postfach. Gespeichert wird alles in einem Ordner auf deinem Server. Den kompletten Quellcode findest du im GitHub-Repository vdite/feiertag-melder.

Danach prüft die App jeden Morgen um 8 Uhr, ob ein Feiertag in das Vorlauf-Fenster gerutscht ist. Standard sind 42 Tage, also sechs Wochen. Ich habe bei mir 49 Tage eingestellt, also sieben Wochen. So sieht die Nachricht auf dem iPhone aus:

Ein paar Details, die mir im Alltag wichtig waren:
- Jeder Feiertag kommt genau einmal. Die App merkt sich, was sie schon gemeldet hat. Du bekommst also nicht sechs Wochen lang jeden Tag dieselbe Nachricht.
- Gemeinsame Feiertage werden zusammengefasst. Allerheiligen steht bei mir einmal in der Nachricht, dahinter Baden-Württemberg, Bayern und Nordrhein-Westfalen.
- War der Server aus, holt sie die Meldung nach. Läuft der Container ein paar Tage nicht, meldet die App beim nächsten Start alles, was inzwischen fällig geworden ist.
- Keine Abhängigkeit von fremden Diensten. Die Feiertage berechnet die App selbst mit der Python-Bibliothek
holidays. Es gibt keine Feiertags-API, die irgendwann abgeschaltet wird oder Geld kostet.
In der Weboberfläche siehst du unten außerdem alle Feiertage im eingestellten Zeitraum und welche davon schon gemeldet sind. Über „Testnachricht senden“ prüfst du den Versand, „Jetzt prüfen & melden“ stößt die Prüfung sofort an.
Was du brauchst
- Einen Server mit Docker, zum Beispiel ZimaOS, CasaOS, Unraid, Synology oder einen Linux-Rechner
- Einen Pushover-Account oder ein E-Mail-Postfach mit SMTP-Zugang
- Kaum Ressourcen: Die App braucht rund 30 MB Arbeitsspeicher
Das Image gibt es fertig für normale PCs und Server (amd64) und für ARM-Geräte wie den Raspberry Pi (arm64). Selbst bauen musst du nichts.
Die YAML mit dem Generator erstellen
Am schnellsten kommst du mit meinem Generator zu deiner YAML. Wähle den Installationsweg und passe bei Bedarf Port und Datenordner an. Zugangsdaten gehören nicht in die YAML, die trägst du nach dem Start in der Weboberfläche ein.
YAML-Generator für den Feiertag-Melder
Trag deine Werte ein, die fertige YAML erscheint darunter. Alles passiert in deinem Browser, nichts wird übertragen oder gespeichert. Zugangsdaten für Pushover und E-Mail gehören nicht in die YAML, die trägst du später in der Weboberfläche ein.
Unter diesem Port öffnest du die Weboberfläche später im Browser. Er darf auf dem Server noch nicht belegt sein.
Darin landen Einstellungen und die Liste der gemeldeten Feiertage. Unter ZimaOS am besten so lassen: Apps unter /DATA/AppData/<App-Name> bekommen saubere Rechte.
Den Ordner musst du nicht anlegen, Docker erstellt ihn beim ersten Start. Das Image gibt es für amd64 und arm64.
Kopiere das Ergebnis und mach direkt mit ZimaOS oder Portainer bzw. Docker weiter.
Installation auf ZimaOS
Du hast noch kein ZimaOS? Wie die Installation abläuft, zeige ich in ZimaOS auf dem ZimaBlade installieren. Kommst du von CasaOS, hilft dir CasaOS zu ZimaOS umziehen.
Auf ZimaOS oder CasaOS installierst du den Feiertag-Melder über den App-Import. Öffne den App Store, klicke auf Benutzerdefinierte App installieren und dann auf Import. Dort fügst du die YAML aus dem Generator ein (Installationsweg „ZimaOS / CasaOS Custom App“). Ohne Generator nimmst du diese Standard-YAML mit Port 8642:
name: feiertag-melder
services:
feiertag-melder:
image: ghcr.io/vdite/feiertag-melder:latest
container_name: feiertag-melder
restart: unless-stopped
ports:
- target: 8080
published: "8642"
protocol: tcp
volumes:
- type: bind
source: /DATA/AppData/feiertag-melder
target: /data
x-casaos:
ports:
- container: "8080"
description:
en_us: Web UI
de_de: Weboberfläche
volumes:
- container: /data
description:
en_us: Settings and state
de_de: Einstellungen und Status
x-casaos:
architectures:
- amd64
- arm64
main: feiertag-melder
author: self
developer: self
category: Utilities
title:
en_us: Feiertag-Melder
tagline:
en_us: Public holiday reminders for German states
de_de: Erinnerung an gesetzliche Feiertage
description:
en_us: Notifies about German public holidays of selected states weeks in advance via Pushover or SMTP.
de_de: Meldet gesetzliche Feiertage der gewählten Bundesländer Wochen im Voraus per Pushover oder E-Mail.
scheme: http
hostname: ""
port_map: "8642"
index: /
icon: https://raw.githubusercontent.com/vdite/feiertag-melder/main/assets/icon.png
Nach der Installation erscheint der Feiertag-Melder mit dem Kalender-Icon auf deinem Dashboard. Ein Klick öffnet die Weboberfläche auf Port 8642. Einstellungen und Status landen in /DATA/AppData/feiertag-melder, den Ordner legt ZimaOS selbst an. Ist Port 8642 bei dir schon belegt, änderst du published und port_map auf denselben freien Port.
Stolperfalle: App-Import zieht immer aus einer Registry
Bei meinem ersten Versuch hatte ich das Image nur lokal auf dem Server gebaut. ZimaOS hat das ignoriert und beim Import trotzdem versucht, das Image herunterzuladen, in meinem Fall über einen voreingestellten Docker-Hub-Spiegel, der nur Anfragen aus China bedient. Die Installation brach mit „pull access denied“ ab. Deshalb liegt das Image jetzt fertig in der GitHub Container Registry (ghcr.io), und der Import funktioniert ohne Umwege.
Installation mit Docker
Auf jedem anderen Server reicht ein Befehl:
docker run -d --name feiertag-melder --restart unless-stopped \
-p 8642:8080 -v ./feiertag-melder:/data \
ghcr.io/vdite/feiertag-melder:latest
Oder als docker-compose.yml, zum Beispiel für einen Stack in Portainer. Mit eigenem Port oder Datenordner erzeugst du sie im Generator unter „Portainer-Stack / Docker Compose“, sonst passt diese hier:
services:
feiertag-melder:
image: ghcr.io/vdite/feiertag-melder:latest
container_name: feiertag-melder
restart: unless-stopped
ports:
- "8642:8080"
volumes:
- ./data:/data
Danach öffnest du http://<IP-deines-Servers>:8642 im Browser.
Feiertag-Melder einrichten
Die Einrichtung dauert keine zwei Minuten:
- Setze die Häkchen bei den Bundesländern, die dich interessieren.
- Stelle unter Zeitplan den Vorlauf in Tagen ein und die Uhrzeit für die tägliche Prüfung.
- Aktiviere Pushover, E-Mail oder beides und trag die Zugangsdaten ein.
- Klicke auf Speichern und danach auf Testnachricht senden.
Kommt die Testnachricht an, bist du fertig. Beim ersten Durchlauf meldet die App sofort alle Feiertage, die schon im Vorlauf-Fenster liegen. Danach meldet sie sich nur noch, wenn ein neuer Feiertag dazukommt.
Passwort und Pushover-Token zeigt die Weboberfläche nach dem Speichern nicht mehr an. Lässt du das Feld beim nächsten Speichern leer, bleibt der gespeicherte Wert erhalten.
Pushover einrichten
Pushover ist ein Dienst für Push-Nachrichten aufs Handy, den viele Homeserver-Apps unterstützen. Nach einer Testphase von 30 Tagen kostet die App einmalig rund 5 US-Dollar pro Plattform, ein Abo gibt es nicht.
Für den Feiertag-Melder brauchst du zwei Werte:
- User-Key: steht nach dem Login auf pushover.net direkt auf der Startseite.
- API-Token: Unter „Create an Application/API Token“ legst du eine neue Anwendung an, zum Beispiel mit dem Namen „Feiertag-Melder“. Pushover zeigt dir danach den Token.
Beim Anlegen der Anwendung kannst du gleich ein Icon hochladen. Ohne Icon zeigt Pushover nur einen blauen Kreis mit dem Anfangsbuchstaben. Das Kalender-Icon aus dem Screenshot oben kannst du hier herunterladen. Lädst du es bei deiner Pushover-Anwendung hoch, erscheint es ab sofort bei jeder Nachricht.
E-Mail per SMTP
Statt Pushover oder zusätzlich dazu kann der Feiertag-Melder E-Mails verschicken. Du brauchst dafür die SMTP-Daten deines Postfachs: Server, Port, Benutzer und Passwort. Bei den meisten Anbietern funktioniert Port 587 mit STARTTLS, manche wollen Port 465 mit SSL/TLS. Mehrere Empfänger trennst du mit Komma, praktisch zum Beispiel für die Leitung der einzelnen Filialen.
Bei Gmail, iCloud und Co. brauchst du statt deines normalen Passworts meist ein App-Passwort, das du in den Kontoeinstellungen erzeugst.
Grenzen der App
- Keine Feiertage einzelner Gemeinden. Augsburger Friedensfest, Mariä Himmelfahrt in katholischen Gemeinden Bayerns und Fronleichnam in Teilen von Sachsen und Thüringen fehlen.
- Kein Login. Die Weboberfläche ist für das Heimnetz oder Firmennetz gedacht. Gib sie nicht ins Internet frei, denn dort stehen deine Zugangsdaten für Pushover und E-Mail.
- Kein Kalender-Export. Der Feiertag-Melder erinnert, er ersetzt keinen Kalender. Das war aber auch nie das Ziel.
Fazit
Der Feiertag-Melder ist ein winziges Werkzeug, aber eins mit einem richtig guten Verhältnis aus Aufwand und Nutzen. Seit er läuft, muss ich nicht mehr im Kopf behalten, welches Bundesland wann frei hat. Die Nachricht kommt sechs Wochen vorher aufs Handy, und dann ist noch genug Zeit, Termine umzulegen. Fehlbuchungen wegen vergessener Feiertage in den Filialen sollten damit Geschichte sein.
Wenn du ZimaOS nutzt, ist die Installation in einer Minute erledigt. Den Quellcode, das Icon und die YAML-Dateien findest du auf GitHub. Fehler oder Wünsche kannst du dort gerne als Issue melden.
26. Oktober 2026






