Files
pdf_to_ics/README.md

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.


Schnellstart (60 Sekunden)

  1. GUI starten (./start_gui.sh oder start_gui.cmd unter Windows)
  2. PDF-Dateien hinzufügen
  3. Optional Filter aktivieren
  4. 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

  1. Python 3.10+ installieren (Option Add Python to PATH aktivieren)
  2. start_gui.cmd per 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: .venv löschen und neu starten
    rm -rf .venv
    ./start_gui.sh
    
  • Zeitzone ändern: in pdf_to_ics.py den Wert Europe/Berlin anpassen

📚 Weitere Dokumentation

Lizenz

Dieses Tool ist zur privaten Verwendung gedacht.