# 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: ```bash ./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ü: ```bash ./start.sh ``` ### 3) Web (MVP für Mobilgeräte) Browser-Variante mit Upload + direktem ICS-Download: ```bash ./start_web.sh ``` Details siehe [WEB_README.md](WEB_README.md). Docker-Variante (Server): ```bash docker compose up -d --build ``` --- ## ⚡ 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) ```bash ./start_gui.sh ``` Beim ersten Start wird automatisch `.venv` erstellt und alles installiert. Wenn `wxPython` nicht installiert werden kann, helfen häufig: ```bash 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](INSTALL.md). ### macOS ```bash ./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: - [BUILD_STANDALONE.md](BUILD_STANDALONE.md) Dort enthalten: - Build-Skripte pro OS - Packaging-Skripte für Release-Artefakte - empfohlene Release-Reihenfolge --- ## 🖥️ CLI-Nutzung ### Beispiele ```bash # 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 ```bash rm -rf .venv ./start_gui.sh ``` - **Zeitzone ändern:** in `pdf_to_ics.py` den Wert `Europe/Berlin` anpassen --- ## 📚 Weitere Dokumentation - [INSTALL.md](INSTALL.md) - Linux-Installation mit Menüeintrag - [WXPYTHON_README.md](WXPYTHON_README.md) - wxPython-spezifische Hinweise - [WEB_README.md](WEB_README.md) - Web-Version (Browser/Mobil) - [BUILD_STANDALONE.md](BUILD_STANDALONE.md) - Standalone-Builds/Packaging - [QUICKSTART.md](QUICKSTART.md) - Kurzanleitung Kalender-Import - [ZUSAMMENFASSUNG.md](ZUSAMMENFASSUNG.md) - Projekt- und Changelog-Übersicht ## Lizenz Dieses Tool ist zur privaten Verwendung gedacht.