3.9 KiB
PDF zu ICS Konverter - Dienstplan Importer
Dieses Tool extrahiert Kalenderdaten aus Dienstplan-PDFs und konvertiert sie in das iCalendar-Format (ICS), das in gängigen Kalender-Apps importiert werden kann.
🎯 Varianten
1) GUI (empfohlen)
Native Oberfläche mit wxPython:
./start_gui.sh
Highlights:
- Drag & Drop für PDFs
- Mehrere PDFs gleichzeitig
- Frei wählbares Ausgabe-Verzeichnis
- Live-Log mit Fortschritt
- Optionale Filter:
- Ruhetage ausschließen
- Urlaub (060/0060) ausschließen
2) CLI
Interaktives Textmenü:
./start.sh
3) Web (MVP für Mobilgeräte)
Browser-Variante mit Upload + direktem ICS-Download:
./start_web.sh
Details siehe WEB_README.md.
Docker-Variante (Server):
docker compose up -d --build
⚡ Schnellstart (60 Sekunden)
- GUI starten (
./start_gui.shoderstart_gui.cmdunter Windows) - PDF-Dateien hinzufügen
- Optional Filter aktivieren
- Auf "ICS Datei erstellen" klicken
🧩 Installation nach Betriebssystem
Linux (Ubuntu/Debian/Mint)
./start_gui.sh
Beim ersten Start wird automatisch .venv erstellt und alles installiert.
Wenn wxPython nicht installiert werden kann, helfen häufig:
sudo apt-get update
sudo apt-get install -y build-essential python3-dev libgtk-3-dev libglib2.0-dev libjpeg-dev libtiff-dev libpng-dev
Für systemweite Installation mit Menüeintrag siehe INSTALL.md.
macOS
./start_gui.sh
Beim ersten Start wird .venv erstellt und die Abhängigkeiten werden installiert.
Windows
- Python 3.10+ installieren (Option Add Python to PATH aktivieren)
start_gui.cmdper Doppelklick starten
Beim ersten Start wird .venv automatisch eingerichtet.
🧱 Standalone-Apps (ohne Python beim Endnutzer)
Für Build/Packaging auf Linux, macOS und Windows:
Dort enthalten:
- Build-Skripte pro OS
- Packaging-Skripte für Release-Artefakte
- empfohlene Release-Reihenfolge
🖥️ CLI-Nutzung
Beispiele
# Alle PDFs im aktuellen Verzeichnis konvertieren
python3 pdf_to_ics.py
# Input/Output-Verzeichnis setzen
python3 pdf_to_ics.py --input ./pdfs --output ./ics_dateien
# Ruhetage ausschließen
python3 pdf_to_ics.py --exclude-rest
# Urlaub (060/0060) ausschließen
python3 pdf_to_ics.py --exclude-vacation
# Einzelne PDF-Datei
python3 pdf_to_ics.py /pfad/zur/datei.pdf
Optionen
| Option | Kurzform | Beschreibung |
|---|---|---|
--input DIR |
-i |
Eingabe-Verzeichnis mit PDF-Dateien (Standard: aktuelles Verzeichnis) |
--output DIR |
-o |
Ausgabe-Verzeichnis für ICS-Dateien (Standard: Eingabe-Verzeichnis) |
--exclude-rest |
-e |
Ruhetage ausschließen (Ruhe, R56, R36, vRWF48, RWE, vR48) |
--exclude-vacation |
-u |
Urlaub ausschließen (060, 0060) |
--verbose |
-v |
Detaillierte Ausgabe |
--help |
-h |
Hilfe anzeigen |
📅 ICS-Import
Die erzeugten .ics-Dateien lassen sich u. a. in folgende Kalender importieren:
- Outlook
- Google Kalender
- Apple Kalender
- Thunderbird
- LibreOffice
- Android-Kalender-Apps
🛠️ Fehlerbehebung
- Keine Events gefunden: PDF-Layout prüfen
- GUI startet nicht:
.venvlöschen und neu startenrm -rf .venv ./start_gui.sh - Zeitzone ändern: in
pdf_to_ics.pyden WertEurope/Berlinanpassen
📚 Weitere Dokumentation
- INSTALL.md - Linux-Installation mit Menüeintrag
- WXPYTHON_README.md - wxPython-spezifische Hinweise
- WEB_README.md - Web-Version (Browser/Mobil)
- BUILD_STANDALONE.md - Standalone-Builds/Packaging
- QUICKSTART.md - Kurzanleitung Kalender-Import
- ZUSAMMENFASSUNG.md - Projekt- und Changelog-Übersicht
Lizenz
Dieses Tool ist zur privaten Verwendung gedacht.