Einrichtung einer leeren Datenbank

- Administrator: Anmeldename und eigenes Passwort. Der Administrator taucht nirgends im Plan auf und kann alles.
- Leitung: Nachname, Vorname, Bundesland, Wochenstunden und Urlaubsanspruch. Die Leitung verwaltet danach Personen, Kategorien und Regeln und genehmigt Urlaub.
- Mitarbeiterinnen und Mitarbeiter: beliebig viele, „Weitere Person“ legt die nächste an.
- Fertig: eine Übersicht aller Anmeldenamen zum Weitergeben. Alle außer dem Administrator starten mit dem Startkennwort und ändern es beim ersten Anmelden.


Urlaubsplan.sqlite in den Planordner legen. Im Onlinebetrieb ist alles sofort auf dem Server.Anmelden

Der Anmeldename ist immer vorname.nachname, klein geschrieben und ohne Umlaute – aus „Michael Kuhn“ wird michael.kuhn, aus „Schäfer“ ohne Vornamen schaefer. Der Name steht unter Personen in der Spalte „Anmeldename“.
Beim ersten Anmelden gilt das Startkennwort, das die Leitung mitteilt. Direkt danach verlangt der Planer ein eigenes Passwort: mindestens 8 Zeichen, nicht das Startkennwort. Wer sein Passwort vergisst, wendet sich an die Leitung – dort lässt es sich auf das Startkennwort zurücksetzen.

Ohne Anmeldung lässt sich der Plan mit „Nur ansehen“ lesen, aber nichts ändern. Der Balken oben zeigt dann „Nicht angemeldet“.
Auf einem Netzlaufwerk arbeiten
Liegen Urlaubsplaner_IT-Team.html und Urlaubsplan.sqlite auf einem gemeinsamen Netzlaufwerk, funktioniert der Planer für das ganze Team – am besten mit Microsoft Edge oder Google Chrome:
- HTML vom Netzlaufwerk öffnen.
- Beim ersten Speichern die
Urlaubsplan.sqliteim selben Ordner auswählen. Fragt Edge/Chrome „Änderungen zulassen?“, hier „Bei jedem Besuch zulassen“ wählen – dann entfällt die Nachfrage künftig ganz. - Ab dann wird jede Änderung ohne weiteren Dialog direkt auf dem Laufwerk gespeichert.
Der Planer prüft die Datei alle 15 Sekunden und beim Zurückwechseln zum Fenster: Hat jemand anderes gespeichert, wird der neue Stand automatisch geladen. Solange jeweils nur eine Person Eintragungen macht und die andere zusieht, arbeitet das zuverlässig. Beim Speichern warnt der Planer, falls die Datei zwischenzeitlich von jemandem geändert wurde.
Firefox und Safari können nicht direkt auf das Laufwerk schreiben; dort wird beim Speichern eine Datei heruntergeladen, die die alte ersetzen muss. Für den Netzlaufwerk-Betrieb daher Edge oder Chrome verwenden.
Datenschutz-Einwilligung

Jede Person muss beim ersten Anmelden den Datenschutzhinweis lesen, das Kästchen anhaken und zustimmen; die Einwilligung wird mit Datum gespeichert. Über „Zum Unterschreiben drucken“ lässt sich das Blatt für die Personalakte ausdrucken und der Leitung unterschrieben übergeben. Ohne Zustimmung geht es nicht weiter.
Die Leitung sieht unter „Personen“ je Person, ob und wann zugestimmt wurde, kann eine Einwilligung zurücksetzen und über „Datenschutztext bearbeiten“ einen eigenen Text hinterlegen – etwa den offiziellen Hinweis eurer Dienststelle. Nach einer Textänderung müssen auf Wunsch alle erneut zustimmen.
Benutzer wechseln
Ist die Anmeldung eingeschaltet, steht oben rechts ein Knopf mit dem angemeldeten Namen, zum Beispiel „👤 Mustermann, Max · Benutzer wechseln“. Ein Klick meldet ab und öffnet die Anmeldung für die nächste Person – die Datei bleibt dabei geöffnet und verbunden. So kann man etwa vom Administrator zu einer Mitarbeiterin wechseln, ohne die Datei zu schließen und neu zu öffnen. Sind noch Änderungen ungespeichert, fragt der Planer vorher, ob gespeichert werden soll.
Öffnen und Speichern
Der Planer besteht aus zwei Dateien, die im selben Ordner liegen: Urlaubsplaner_IT-Team.html ist das Programm, Urlaubsplan.sqlite die Datenbank mit allen Eintragungen. Ein Doppelklick auf die HTML-Datei öffnet den Planer im Browser – ohne Installation und ohne Internet.

Der farbige Balken unter den Werkzeugleisten zeigt jederzeit, wo die Daten stehen:
| Balken | Bedeutung |
|---|---|
| grün | Die Datei ist geöffnet, alles ist gespeichert. |
| orange mit Zahl | Es gibt Änderungen, die noch nicht in der Datei sind. Auf Speichern klicken. |
| orange „In Bearbeitung durch …“ | Jemand anderes arbeitet gerade an der Datei – bitte absprechen, sonst überschreibt der Letzte den Ersten. |
Speichern öffnet den Speichern-Dialog des Browsers; dort die vorhandene Urlaubsplan.sqlite überschreiben. Unter Edge und Chrome merkt sich der Browser die Datei danach für die Sitzung und speichert still weiter. Fertig speichert und bestätigt, dass das Fenster geschlossen werden kann.
Aufbau der Seite



- Team / Einzelplan schaltet zwischen der Übersicht aller und dem Jahresplan einer Person um.
- Jahr direkt auswählen oder mit ‹ › blättern. Der Kalender wird für jedes Jahr gerechnet.
- ◐ wechselt zwischen hellem und dunklem Erscheinungsbild.
- Schulferien, Brückentage und Besetzung blenden die jeweiligen Markierungen ein oder aus. Diese Einstellungen gelten nur für den eigenen Rechner.

Am Handy und Tablet

Auf dem Handy öffnet ein Tippen auf einen Tag das Auswahlfenster; das Ziehen über mehrere Tage gibt es nur mit der Maus. Die Namensspalte bleibt beim seitlichen Wischen stehen.
Eintragen und Löschen
Zuerst auf Bearbeiten klicken. Dann gibt es drei Wege:
- Ein Tag: anklicken. Es öffnet sich ein Fenster mit allen Kategorien, dem Haken für einen halben Tag, einem Kürzel für das Feld und einem Hinweis, der beim Darüberfahren erscheint.
- Mehrere Tage färben: in der Legende die Farbe wählen, dann mit gedrückter linker Maustaste über die Tage ziehen. Wochenenden, Feiertage und freie Wochentage werden dabei übersprungen.
- Mehrere Tage löschen: mit gedrückter rechter Maustaste über die Tage ziehen.

Urlaubskonto

Grundlage sind Jahresanspruch und Übertrag aus dem Vorjahr, die unter Personen eingetragen werden. Abgezogen werden alle Kategorien, die als Urlaub gekennzeichnet sind – voreingestellt genehmigter und geplanter Urlaub. AZA, Schulung, Krankheit und Personalrat kosten keinen Urlaub. Wer sein Konto überzieht, sieht die Zahl rot.
Unter Personen gibt es „Rest aus dem Vorjahr übertragen“: Der Planer rechnet den Rest des Vorjahres aus und trägt ihn als Übertrag ein. Verfällt der Übertrag – voreingestellt am 30.09. – zeigt die Kontokarte an, wie viele Tage bis dahin noch zu nehmen sind.
Feiertage, Ferien, Brückentage
Feiertage rechnet der Planer selbst, für alle 16 Bundesländer und jedes Jahr, einschließlich der beweglichen Termine um Ostern. Welche Feiertage in einer Zeile gelten, richtet sich nach dem Bundesland der Person; die Kopfzeile zeigt das unter „Feiertage im Team“ eingestellte Land.
Schulferien aller Länder für 2022 bis 2028 sind eingebaut. Über Feiertage & Ferien lassen sich weitere Jahre nachladen – der einzige Vorgang, der eine Internetverbindung braucht. Dabei werden auch die amtlichen Feiertagstermine geholt, die dann Vorrang vor der Berechnung haben.

Brückentage sind Arbeitstage, an denen ein einzelner Urlaubstag vier oder mehr freie Tage am Stück ergibt. Der Knopf Brückentage listet sie mit Anlass und Ausbeute.

Einzelplan

Oben rechts die Person wählen. Auch hier kann eingetragen werden. Die Knöpfe über dem Raster führen zu Zeiterfassung, ICS-Import und -Export sowie zum Urlaubsantrag. Drucken gibt genau diese Seite im Hochformat aus – jeder kann sich so seinen eigenen Plan ausdrucken.
Jahr quer

Für den Überblick: Wer ist wann weg, wo häufen sich Abwesenheiten, wo sind Lücken. Die Ansicht ist seitlich scrollbar und öffnet beim heutigen Tag; die Namensspalte bleibt stehen. Eintragen funktioniert genau wie in der Teamansicht – anklicken, ziehen, rechte Maustaste löscht. Der Ausdruck ist auf A3 quer eingestellt.
Was Kolleginnen und Kollegen sehen
Vertrauliche Kategorien – voreingestellt Krankheit – erscheinen für andere als leerer Tag, ohne Farbe, ohne Hinweis und ohne Zählung in der Zeile „abwesend“. Urlaubskonten, Auswertung und Diagramm zeigen jeder Person nur die eigenen Zahlen; die Leitung sieht alle.
Vertretung und Genehmigung

Vertretung: Im Tagesmenü lässt sich je Tag eine vertretende Person wählen. Sie erscheint beim Darüberfahren, in der Antragsliste und auf dem gedruckten Urlaubsantrag.
Genehmigung: Mitarbeiterinnen und Mitarbeiter tragen geplanten Urlaub ein – die Kategorie „Genehmigter Urlaub“ steht ihnen nicht zur Verfügung, auch nicht beim Ziehen. Die Leitung genehmigt einen zusammenhängenden Block mit einem Klick im Tagesmenü oder in der Antragsliste; der Block wechselt die Kategorie und bekommt den Vermerk „genehmigt am … durch …“ in den Hinweis. Welche Kategorie die genehmigte ist, legt der Haken „genehmigt“ unter Kategorien fest.
Jahresverlauf und automatischer Übertrag

Beim Jahreswechsel muss nichts mehr eingetragen werden: Solange unter Personen kein ausdrücklicher Wert steht, übernimmt der Planer den Resturlaub und den Stundensaldo zum Jahresende automatisch als Übertrag und Vortrag ins neue Jahr. Die Kontokarte zeigt beim Darüberfahren, ob ein Wert automatisch übernommen wurde. Wer davon abweichen will, trägt den Wert unter Personen ein – der gilt dann.
Beim Öffnen erinnert der Planer daran, wenn im laufenden Monat Arbeitstage ohne Zeiteintrag liegen, mit einem Sprung direkt in die Zeiterfassung.
Personen
Nur für die Leitung. Alle anderen landen beim Klick auf „Personen“ bei Meine Daten. Die Felder werden mit Tab von links nach rechts und Zeile für Zeile durchlaufen; jede Änderung wird sofort übernommen.

| Feld | Bedeutung |
|---|---|
| Bundesland | Wohnsitz – bestimmt Feiertage und Schulferien in der Zeile der Person. |
| Geburtstag | 24.12.1980 oder nur 24.12.; erscheint als 🎁 im Kalender, mit Jahr auch das Alter. |
| Zusatzurlaub (SB) | Zusätzliche Urlaubstage bei Schwerbehinderung; zählen in „verfügbar“ mit hinein. |
| Urlaub / Übertrag | Jahresanspruch und Übertrag – für das oben gewählte Jahr. |
| Std./Woche | Wochenarbeitszeit, Grundlage für die Zeiterfassung. |
| Std.-Vortrag | Stundensaldo zu Jahresbeginn. |
| Arbeitstage | Feste freie Wochentage abwählen, etwa Teilzeit ohne Freitag. Diese Tage kosten keinen Urlaub. |
| Leitung | Abteilungsleitung oder Stellvertretung – darf die Stunden aller sehen und bei Anmeldung alle Zeilen bearbeiten. |
| Im Plan | Ausblenden, ohne die Daten zu verlieren. |
| Passwort | „Start“ = Startkennwort gesetzt, Wechsel steht aus; „gesetzt“ = eigenes Passwort. Klick setzt auf das Startkennwort zurück. |
Neue Personen bekommen automatisch das Startkennwort und den Anmeldenamen aus Vor- und Nachname. Im Kalender erscheint der Name als „Nachname, Vorname“.
Kontakte und Meine Daten


Wer seine Adresse nicht für alle sichtbar machen möchte, setzt in „Meine Daten“ den Haken „Adresse nur für die Leitung sichtbar“. Die Leitung und der Administrator können die Kontaktdaten aller bearbeiten.
Kategorien

Name, Farbe und Reihenfolge sind frei. Drei Haken bestimmen die Rechenregeln:
- zählt als Urlaub – wird vom Urlaubskonto abgezogen.
- zählt als Arbeitstag – die Person gilt als anwesend (Schulung, Personalrat), sonst als abwesend (Urlaub, Krank).
- Zeitausgleich – der Tag zehrt das Tagessoll vom Stundensaldo. So funktioniert AZA.
- vertraulich – andere sehen nur, dass die Person abwesend ist, nicht warum. Voreingestellt für Krankheit: Nur die Person selbst und die Leitung sehen die Kategorie; in der Auswertung fehlt die Spalte für alle anderen.

Regeln und Prüfung

- Sperrzeiten: Zeiträume ohne Urlaub, im Kalender oben rot markiert. Eintragen ist trotzdem möglich, der Planer warnt.
- Vertretungen: Paare, die nicht gleichzeitig fehlen sollen. Konflikte werden in der Zeile „abwesend“ rot umrandet.
- Pausen: gesetzliche Regelung (30 Minuten über 6 Stunden, 45 über 9) oder eigene Regelung mit einer Stufe.
- Kappung: Stichtag und Grenze, auf die der Stundensaldo gekürzt wird – voreingestellt 41 Stunden am 30.04.
- Verfall: bis wann der Resturlaub des Vorjahres genommen sein muss – voreingestellt 30.09.
- Automatische Sicherung (Dateibetrieb): beim Klick auf „Fertig“ alle sieben Tage eine datierte Kopie in den Download-Ordner legen; im Onlinebetrieb sichert der Server täglich selbst.
Prüfen geht alle Regeln für das Jahr durch und listet Urlaube in Sperrzeiten, unbesetzte Vertretungen, gefährdeten Übertrag und Überstunden über der Grenze.

Zeiterfassung

Voraussetzung sind die Wochenstunden unter Personen; das Tagessoll ergibt sich aus Wochenstunden geteilt durch Arbeitstage je Woche. Der Planer zieht Pausen nach der eingestellten Regel ab und rechnet eine eingetragene Unterbrechung zwischen den Blöcken darauf an.
| Tag | Behandlung |
|---|---|
| Zeiten eingetragen | Ist = Summe der Blöcke minus Pause. |
| Urlaub, Krankheit | Tagessoll wird gutgeschrieben, Saldo unverändert. |
| AZA (Zeitausgleich) | Nichts gutgeschrieben – der Tag zehrt das Tagessoll vom Saldo. |
| Schulung, Personalrat ohne Zeiten | Wie ein Diensttag mit Tagessoll gerechnet. |
| Ohne jeden Eintrag | Neutral – zählt weder für Soll noch für Ist. |
Unten steht der Monatssaldo und der fortlaufende Stundensaldo mit Vortrag und Kappung. Die Stundenspalten in der Auswertung und die Stunden anderer Personen sind nur sichtbar, wenn der Sichtschutz unter Personen es erlaubt.
Monatsnachweis und Mail an die Leitung

Der Monatsnachweis ist eine fertige PDF-Datei mit allen Tagen des Monats, Zeiten, Pausen, Ist, Soll, Differenz, Bemerkung, Monatssumme, Stundensaldo und Unterschriftsfeldern. Der Dateiname folgt immer dem Muster JJJJMM_Nachname.pdf, also zum Beispiel 202605_Kuhn.pdf.
„An die Leitung senden“ öffnet den Mailvordruck: Betreff Arbeitszeit(en) Vorname Nachname – Monat Jahr und der passende Text. „Betreff und Text kopieren“ legt beides in die Zwischenablage, „Mailprogramm öffnen“ startet Outlook mit ausgefülltem Betreff und Text. Die PDF muss von Hand angehängt werden – ein Mailprogramm lässt sich aus einer Webseite heraus nicht mit Anhang öffnen.
Auswertung und Diagramm

„Auswertung mit Diagramm als PDF“ erzeugt Auswertung_JJJJ.pdf mit Tabelle und beiden Diagrammen auf einer Seite – etwa für die Ablage oder eine Besprechung.
Arbeitszeiten aus SAP übernehmen

Wer die Zeiten aus dem SAP-Zeitnachweis nicht abtippen möchte, wählt im Einzelplan „SAP-Zeiten“ und dort die Monatsübersicht als PDF. Der Planer liest Kommen und Gehen jedes Tages – auch geteilte Tage mit Vormittag und Nachmittag – und trägt sie in die Arbeitszeiterfassung der gewählten Person ein. Urlaub, AZA und Krankheit aus dem SAP-Auszug werden als Kategorie im Kalender ergänzt, sofern der Tag dort noch leer ist.
Es lassen sich auch mehrere Monate auf einmal wählen; der Planer sortiert sie automatisch, ältester zuerst. Vor der Übernahme zeigt eine Vorschau, welche Monate erkannt wurden und welche Kontowerte gefunden wurden – erst ein Klick auf „Übernehmen“ trägt alles ein.
Drei Haken steuern den Import: ob vorhandene Zeiteinträge überschrieben werden, ob Urlaub/AZA/Krank als Kalendereintrag ergänzt werden, und ob die Kontowerte übernommen werden – Stundenvortrag und Urlaubsanspruch. Weil SAP den Urlaub aus mehreren Töpfen (gesetzlich, tariflich, Schwerbehinderung) in einer eigenen Reihenfolge abbucht, die sich aus den Tageseinträgen nicht ableiten lässt, übernimmt der Planer den Resturlaub-Stand direkt vom jüngsten SAP-Blatt – normaler Rest plus Schwerbehinderten-Rest. Dieser Stand steht dann als „Rest“ auf der Kontokarte; die Kontrollrechnung aus Anspruch minus Einträgen tritt zurück, solange ein SAP-Stand vorliegt. Wer lieber die Eigenrechnung möchte, löscht unter „Personen“ das Feld „Rest-Stand“. Bei PDFs aus mehreren Jahren wird jedes Jahr einzeln gesetzt. SAP führt die Salden in Stunden.Minuten (7.54 = 7 h 54 min); der Planer rechnet das in Dezimalstunden um. Lautet das PDF auf einen anderen Namen als die Zielperson, warnt der Planer. Danach bitte in Arbeitszeit und Urlaubskonto prüfen – SAP rundet an einzelnen Stellen anders.
Antrag, Kalender, Druck

Termine als .ics exportiert die Urlaube einer Person für Outlook oder Apple Kalender (Datei → Importieren). ICS einlesen übernimmt umgekehrt Termine aus einer Kalenderdatei in den Plan.

Drucken gibt die Teamansicht im Querformat und den Einzelplan im Hochformat aus. Der Dunkelmodus wird für den Druck automatisch auf Hell umgestellt.
Datenbank und Sicherung

Die Datei Urlaubsplan.sqlite ist eine normale SQLite-Datenbank und lässt sich auch mit anderen Werkzeugen öffnen. Im Dialog: Sicherung speichern legt eine datierte Kopie ab, Sicherung einspielen holt sie zurück, Sperre aufheben löst eine vergessene Bearbeitungssperre. Das Abfragefeld erlaubt eigene SELECT-Auswertungen.
Rechte und Passwörter
| Wer | darf |
|---|---|
| Jede angemeldete Person | Eigene Zeile eintragen, eigene Zeiterfassung, eigene Kontaktdaten, eigenes Passwort, Einzelplan drucken, Antrag, ICS. |
| Leitung (Haken unter Personen) | Zusätzlich alle Zeilen bearbeiten, Personen, Kategorien, Regeln, Datenbank, Stunden aller, vertrauliche Kategorien aller. |
| Administrator | Alles wie die Leitung. Erscheint nirgends im Plan und in keiner Liste; Zugangsdaten hat die Leitung. |
Im Onlinebetrieb prüft der Server jede gespeicherte Änderung: Passwörter anderer Personen, Leitungsrechte, den Personenbestand und die Anmeldeeinstellungen darf nur die Leitung ändern; jeder andere darf ausschließlich sein eigenes Passwort setzen. Was gegen diese Regel verstößt, weist der Server ab und lädt den gültigen Stand neu.
Passwörter werden nicht gespeichert, sondern nur ein Prüfwert nach dem Verfahren PBKDF2-SHA-256 mit 120 000 Runden und zufälligem Salz. Aus der Datenbankdatei lässt sich ein Passwort damit nicht zurückrechnen. Der Schalter „Anmeldung erforderlich“ unter Personen ist voreingestellt aktiv.
Onlinebetrieb

Dazu liegt server.py bei. Er braucht nur Python 3, keine weiteren Pakete, und läuft auf jedem Rechner im Netz, der dauerhaft an ist.
server.py,Urlaubsplaner_IT-Team.html,Urlaubsplan.sqliteund den OrdnerHilfein einen Ordner auf dem Server legen.- Dort
python3 server.pystarten (oder mit Port:python3 server.py 9000). - Im Browser
http://rechnername:8080/aufrufen. - Anmeldung mit dem Anmeldenamen und dem Passwort wie im Dateibetrieb; Startkennwort und Passwortwechsel funktionieren genauso.
Im Onlinebetrieb erkennt der Planer den Server selbst: Öffnen, Speichern und Fertig verschwinden, jede Änderung geht sofort zum Server. Eintragungen und Arbeitszeiten werden dabei zeilenweise übertragen – nur der geänderte Tag, nicht die ganze Datei. Dadurch können mehrere gleichzeitig arbeiten, ohne sich zu überschreiben; alle 20 Sekunden holt sich der Planer die Änderungen der anderen. Nur Verwaltungsänderungen (Personen, Kategorien, Regeln) gehen als Ganzes und sind der Leitung vorbehalten. Der Server legt täglich eine Sicherung im Ordner Sicherungen ab und behält die letzten 30.
Demo-Datenbank
Im Startfenster gibt es den Knopf „Demo ausprobieren“: Er lädt vier erfundene Personen mit Eintragungen in allen Kategorien direkt in das Fenster, ohne eine Datei anzufassen. Anmeldung als max.mustermann (Leitung) oder hans.dampf mit dem Startkennwort; „Demo beenden“ im Balken kehrt zum Start zurück. Dieselbe Demo liegt als Datei im Ordner Demo mit fünf erfundenen Personen und Eintragungen in allen Kategorien, dazu Zeiterfassung, Sperrzeiten und Vertretungsregeln – zur Vorführung. Die Anmeldedaten stehen in Demo/LIESMICH.txt.
py server.py eingeben. Für den Dauerbetrieb den Aufruf als geplante Aufgabe beim Systemstart hinterlegen.Häufige Fragen
Der Balken bleibt orange, obwohl ich gespeichert habe
Der Speichern-Dialog wurde abgebrochen oder die Datei an einer anderen Stelle abgelegt. Noch einmal Speichern und die vorhandene Urlaubsplan.sqlite im Planordner überschreiben.
Beim Öffnen kommt kein Fenster
Dann wurde die zuletzt benutzte Datei automatisch geladen – der Balken ist grün und die Statuszeile sagt „wurde automatisch geöffnet“. Über Öffnen lässt sich jederzeit eine andere Datei wählen.
Meine Haken für Ferien und Brückentage sind weg
Diese Anzeigeeinstellungen werden im Browser gemerkt, nicht in der Datei. Ein anderer Rechner oder ein gelöschter Browserspeicher setzt sie zurück.
Eine Person hat freitags frei – wie eintragen?
Unter Personen bei „Arbeitstage“ den Freitag abwählen. Ab dann zählt kein Freitag als Urlaubstag, und die Arbeitstage stimmen.
Ein Feiertag fehlt oder ist zu viel
Das Bundesland der Person prüfen. Einmalige Sonderfeiertage kommen über Feiertage & Ferien aus der amtlichen Liste.
Ich möchte die Daten in Excel auswerten
Die Datenbank mit DB Browser for SQLite öffnen und die Tabelle eintraege als CSV exportieren – oder im Datenbank-Dialog eine Abfrage stellen.
© 2026 Michael Kuhn · Urlaubsplaner IT-Team