> ## Content Index
> Fetch the complete content index at: https://schluppeck.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Unsere Urlaubstabelle hat ausgedient – der Urlaubsplaner
- URL: https://schluppeck.com/unsere-urlaubstabelle-hat-ausgedient-der-urlaubsplaner/
- Published: 2026-10-13T06:51:01.000Z
- Updated: 2026-10-13T06:51:01.000Z
- Author: Stefan Schluppeck
- Tags: Reiseplanung, Camping, Django, Open Source

# Unsere Urlaubstabelle hat ausgedient

Jedes Jahr dasselbe Spiel: Irgendwann im Winter sitzen wir zusammen und überlegen, wohin es mit dem Wohnwagen gehen soll. Ostern, Pfingsten, der große Sommerurlaub, vielleicht noch ein paar Tage im Herbst. Bisher landete das alles in einer **Tabelle**, und die ist über die Jahre ganz schön gewachsen. Ein Blatt für den Kalender, eins pro Reise mit Etappen, Campingplätzen, Preisen, Anzahlungen und Fährzeiten. Dazu Formeln, die nur noch funktionierten, solange niemand eine Zeile einfügte.

Und dann kamen die Fragen, auf die die Tabelle keine Antwort hatte:

- Passt das Gespann auf dieser Route überhaupt durch, oder schickt uns das Navi über einen Pass, den man mit 2,5 m Breite lieber meidet?
- Wann ist die Restzahlung für den Platz am Gardasee fällig?
- Wie viele Urlaubstage verbrauchen wir eigentlich, wenn wir Freitag nach Feierabend losfahren?
- Und wie bekommen Oma und Opa mit, wann wir wo sind, ohne dass ich jedes Mal einen Screenshot schicke?

Also habe ich mir eine eigene kleine Web-App gebaut: den **Urlaubsplaner**. Er läuft bei uns auf dem eigenen Server und der Code liegt offen auf GitHub. Wer ebenfalls mit Wohnwagen oder Wohnmobil unterwegs ist und einen Server hat, kann ihn also einfach selbst nutzen.

> Alle Bilder in diesem Beitrag zeigen eine erfundene Familie „Muster“ aus Kiel mit ausgedachten Reisen. Unsere echten Pläne bleiben privat. 😉

## Das ganze Jahr auf einen Blick

Der Einstieg ist die **Jahresübersicht**. Hier stehen alle Reisen des Jahres mit Urlaubszeitraum, Urlaubstagen, Zielen und Kosten. Hinter jedem Ziel zeigt ein farbiges Etikett, wie weit wir mit der Buchung sind: *angefragt*, *gebucht*, *angezahlt* oder *bezahlt*. So sehe ich sofort, wo noch etwas zu tun ist.

Darunter folgen die **Hinweise**: Etappen ohne berechnete Route, Nächte ohne Buchung und bald fällige Restzahlungen. Die Tabelle hätte das nie von selbst gemeldet.

![Jahresübersicht mit allen Reisen, Buchungsstatus und Hinweisen](https://schluppeck.com/content/images/2026/10/1-jahresuebersicht.jpg)

Wichtig war mir die Unterscheidung zwischen **Urlaub** und **Reisezeit**. Der Urlaub ist die Zeit, die wir uns freinehmen, inklusive Packen und Auspacken. Die Reisezeit ist die Zeit, in der wir mit dem Gespann tatsächlich unterwegs sind. Beginnt die Reise an einem Arbeitstag vor dem Urlaub, erkennt die App das als **„Abfahrt nach Feierabend“**. Die Urlaubstage rechnet sie selbst aus: Montag bis Freitag, ohne die Feiertage unseres Bundeslands.

## Eine Reise im Detail

Jede Reise hat ihre eigene Seite: **Etappen** mit Abfahrt, Pause, Fahrzeit und Ankunft, die **Buchungen** der Campingplätze und alle weiteren **Kosten** wie Fähre, Vignette oder Maut. Dazu kommen nützliche **Links**, etwa zur Platzreservierung oder zur Fähre.

Ganz oben ist eine **Karte** mit dem kompletten Routenverlauf, wahlweise mit OpenStreetMap oder TomTom-Karten. Die Plätze sind nach Art eingefärbt: Urlaubsziel, Zwischenübernachtung oder Fährhafen.

![Reiseseite mit Karte und Routenverlauf zum Gardasee](https://schluppeck.com/content/images/2026/10/2-reise-karte.jpg)

Das Schöne ist: Fast alles, was früher eine Formel war, **rechnet die App selbst aus**. Dazu gehören Nächte, Ankunftszeiten, Dieselkosten nach Strecke und Verbrauch, Summen in Euro (auch bei Preisen in Fremdwährung), Anzahlung und Rest. Bei einer Buchung trage ich einfach den Preis pro Nacht oder den Gesamtpreis ein, den Rest erledigt der Urlaubsplaner.

![Etappen, Buchungen mit Status und Kosten einer Reise](https://schluppeck.com/content/images/2026/10/3-reise-etappen-kosten.jpg)

## Routen, die zum Gespann passen

Das war für mich das Herzstück. Ein Gespann aus Zugfahrzeug und Wohnwagen ist eben kein Pkw. In einem **Fahrzeugprofil** hinterlege ich Länge, Breite, Höhe, Gewicht, Achsen und Höchstgeschwindigkeit. Ein Klick auf „Route berechnen“ fragt dann bei **TomTom** eine Route an, die genau diese Maße berücksichtigt.

Auf Wunsch meidet die Route vignettenpflichtige Straßen, und Fähren werden mitgedacht. Am Ende stehen für jede Etappe Entfernung, Fahrzeit und die durchfahrenen Länder fest. Die Ankunftszeit ergibt sich aus Abfahrt, Fahrzeit und Pause.

Eingetragen wird in einer aufgeräumten Verwaltungsoberfläche mit Datums- und Uhrzeitfeldern. Neue Etappen werden sinnvoll vorbelegt: Die nächste Etappe startet dort, wo die letzte aufgehört hat.

![Eingabe der Etappen mit Datum, Abfahrt, Pause und Orten](https://schluppeck.com/content/images/2026/10/5-eingabe-etappen.jpg)

## Der Urlaubskalender – jetzt als PDF

Seit Jahren hängt bei uns ein **Jahreskalender** an der Wand, in dem alle Urlaube, Feiertage und Schulferien eingetragen sind. Den erzeugt der Urlaubsplaner jetzt per Knopfdruck als **PDF in A4 quer**, mit Monatsfarben, Feiertagen, Schulferien und unseren Urlauben.

Die **Schulferien** holt sich die App aus der [OpenHolidays API](https://www.openholidaysapi.org/?ref=schluppeck.com), für alle Bundesländer. Das Abtippen hat damit ein Ende.

![Der Jahreskalender als PDF mit Feiertagen, Schulferien und Urlauben](https://schluppeck.com/content/images/2026/10/8-kalender-pdf.jpg)

Außerdem gibt es pro Reise ein **PDF** und eine **Excel-Datei** (mit echten Formeln!). Alle Dokumente tragen Datum und Uhrzeit des Stands, damit man weiß, wie aktuell der Ausdruck am Kühlschrank ist.

## Im Google Kalender

Damit die Urlaube auch im Familienkalender auf dem Handy landen, gibt es ein **Kalender-Abo**. Ich füge einen geheimen Link einmal in Google Kalender (oder Apple Kalender, Outlook) ein, und ab dann erscheint jede Reise automatisch als Termin über den ganzen Urlaub.

Als Ort steht dort der **Hauptort** der Reise mit Adresse. Das ist der Platz mit den meisten Nächten, Zwischenübernachtungen und Fähren zählen nicht mit. Ändert sich etwas an der Planung, zieht der Kalender nach.

## Teilen mit Oma und Opa

Ein Wunsch, der schnell kam: Die Großeltern wollen wissen, wo wir gerade sind. Dafür gibt es **Links mit Ablaufdatum**. Eine Reise oder den ganzen Jahreskalender kann ich per WhatsApp, E-Mail oder über das Teilen-Menü des Handys verschicken. Die Empfänger brauchen keine Anmeldung, sehen alles nur lesend, und ich kann den Link jederzeit beenden.

![Einen Link für Oma und Opa erstellen](https://schluppeck.com/content/images/2026/10/4-teilen.jpg)

Dabei achtet die App auf unsere **Privatsphäre**. Das Zuhause wird in der geteilten Ansicht nie gezeigt, die Route beginnt erst einige Kilometer entfernt. Kosten sind nur zu sehen, wenn ich das ausdrücklich möchte.

![So sieht die geteilte Reise für die Empfänger aus – ohne Zuhause](https://schluppeck.com/content/images/2026/10/7-geteilt.jpg)

## Auch unterwegs auf dem Handy

Unterwegs schaue ich natürlich vor allem auf dem Handy rein: Wann müssen wir los, wie lange ist die Etappe, wie heißt der Platz und was kostet er? Die Seiten passen sich an kleine Bildschirme an, die Karte inklusive.

![Reiseseite auf dem Handy](https://schluppeck.com/content/images/2026/10/6-handy-oben.jpg)  
![Karte auf dem Handy](https://schluppeck.com/content/images/2026/10/6-handy-karte.jpg)

## Erinnerungen per Mail

Und damit nichts durchrutscht, verschickt der Urlaubsplaner **E-Mails**:

- wenn eine Restzahlung fällig wird,
- bei eigenen Erinnerungen wie „Fähre ab 1\. März buchbar“,
- und 14 Tage vor der Abfahrt mit einem **Reisecheck**: Sind alle Nächte gebucht, alle Routen berechnet, alle Zahlungen erledigt?

## Mehrere Familien, ohne Passwort

Der Urlaubsplaner kann **mehrere Familien** verwalten. Jede sieht nur ihre eigenen Reisen und Plätze, hat ihr eigenes Bundesland für Feiertage und Schulferien und kann einen eigenen TomTom-Schlüssel hinterlegen. So könnten zum Beispiel befreundete Camper die gleiche Installation mitnutzen.

Die Anmeldung läuft **ohne Passwort**: E-Mail-Adresse eingeben, Link im Postfach anklicken, fertig.

## Ein bisschen Technik

Für die Technik-Interessierten:

- **Django 5.2** mit Python 3.12 und **PostgreSQL**, alles in **Docker Compose**
- Oberfläche mit klassischen Django-Templates, ganz ohne JavaScript-Framework
- Karten mit **Leaflet**, Kartenkacheln von OpenStreetMap oder TomTom (über den Server geholt, damit der API-Schlüssel nicht im Browser landet)
- **TomTom Routing API** mit Fahrzeugmaßen; der kostenlose Entwicklerzugang reicht für eine Familie locker aus
- PDFs mit **WeasyPrint**, Excel mit **openpyxl**
- Feiertage aus dem Python-Paket `holidays`, Schulferien aus der OpenHolidays API
- Tägliches **Backup** von Datenbank und Konfiguration, Aufbewahrung 14 Tage
- Über hundert automatische Tests, darunter einige, die sicherstellen, dass keine Familie die Daten einer anderen sieht

Bei uns läuft das Ganze auf einem kleinen Hetzner-Server hinter Nginx mit Let's-Encrypt-Zertifikat.

## Gebaut mit Claude Code

Ein Wort noch zur Entstehung: Den Urlaubsplaner habe ich zusammen mit **Claude Code** entwickelt, dem KI-Programmierassistenten von Anthropic. Es war mein erstes Projekt damit. Ich habe beschrieben, was ich brauche, und Claude hat Code, Tests und Doku geschrieben, auf dem Server ausprobiert und auf meine Rückmeldungen reagiert.

Rückmeldungen gab es reichlich: „Die Etappennummer brauche ich nicht“, „Der Kalender bitte immer in A4“, „Die Community sollte unser Zuhause nicht sehen“. Das hat erstaunlich gut funktioniert und deutlich mehr Spaß gemacht, als ich erwartet hatte.

## Selbst ausprobieren

Der Code steht unter der **MIT-Lizenz** auf GitHub:

👉 **[github.com/schluppy/urlaub](https://github.com/schluppy/urlaub?ref=schluppeck.com)**

Im README steht die Installation Schritt für Schritt. Mit dem Befehl `beispieldaten` legt man sich eine Beispielfamilie „Muster“ mit ein paar Reisen an und kann sofort losklicken. Nötig sind Docker, ein Reverse Proxy für HTTPS, ein Mailkonto und ein kostenloser TomTom-Schlüssel.

Und jetzt entschuldigt mich, ich muss noch die Fähre für den Sommer buchen. Der Urlaubsplaner hat mich gerade daran erinnert. 🚐