Täglicher Verfügbarkeitsbericht — Verfahren und Ablage
Überblick
Jeden Morgen um 08:00 Uhr wird automatisch eine Auswertung der Terminservice-Verfügbarkeiten erstellt und per Mail versendet. Das System läuft auf dem Pi5 (raspip5) als systemd-User-Timer.
Ablauf
08:00 Uhr — terminservice-report.timer löst aus
│
├─ 1. ICS-Feed laden (Outlook-Kalender terminservice@service-ck.de)
│ URL: https://outlook.office365.com/owa/calendar/...calendar.ics
│
├─ 2. Events parsen: [v:xx], [t:xx], [a:xx] Einträge auswerten
│ Zeitraum: nächste 3 Wochen (Mo–Sa), Feiertage NRW berücksichtigt
│
├─ 3. Markdown-Report erstellen → report_YYYY-MM-DD.md
│ - Tagesübersicht pro KW (wer ist verfügbar, Unterbesetzungs-Warnung)
│ - Zusammenfassung unterbesetzter Tage
│ - Wochenübersicht pro Person
│
├─ 4. Markdown → PDF konvertieren → report_YYYY-MM-DD.pdf
│ (via weasyprint, A4-Format)
│
├─ 5. Mail senden an andreas.knorr@creative-kirche.de
│ Absender: andreas.knorr@gmx.net (SMTP via mail.gmx.net:587)
│ Betreff: "Terminservice Verfügbarkeit — DD.MM.YYYY"
│
└─ 6. Reports älter als 30 Tage automatisch löschen
Ablage
| Was | Pfad (auf Pi5) |
|---|---|
| Reports (MD + PDF) | /home/ak/reports/terminservice/report_YYYY-MM-DD.{md,pdf} |
| Hauptskript | /home/ak/scripts/terminservice_report.py |
| Wrapper-Script | /home/ak/scripts/terminservice_daily_report.sh |
| PDF-Konvertierung | /home/ak/scripts/terminservice_md2pdf.py |
| Mail-Versand | /home/ak/scripts/terminservice_send_report.py |
| Timer | ~/.config/systemd/user/terminservice-report.timer |
| Service | ~/.config/systemd/user/terminservice-report.service |
Lokale Kopie des Repos: /Users/ak/Repos/terminservice/ (Mac)
Mailversand
| Parameter | Wert |
|---|---|
| Empfänger | andreas.knorr@creative-kirche.de |
| Absender | andreas.knorr@gmx.net (via GMX SMTP) |
| SMTP-Server | mail.gmx.net:587 (STARTTLS) |
| Betreff | "Terminservice Verfügbarkeit — DD.MM.YYYY" |
| Anhang | PDF-Report des Tages |
Empfänger ist in terminservice_daily_report.sh als RECIPIENT konfiguriert. Weitere Empfänger können dort kommasepariert ergänzt werden.
Unterbesetzungs-Schwellen
| Tagestyp | Minimum Verfügbarkeiten |
|---|---|
| Mo–Fr | 2 |
| Sa | 1 |
| Feiertag | keine Prüfung |
Tage unterhalb der Schwelle werden im Report mit "UNTERBESETZT" markiert.
Erfasste Mitarbeitende
| Kürzel | Name |
|---|---|
| ts | Torben Schmidt |
| tj | Thomas Janetzki |
| mg | Mareike Gintzel |
| wl | Wolfram Linnemann |
| ch | Christian Holtz |
| ds | Dirk Schuklat |
| al | Anke Leuning |
| nm | Mark Neuhaus |
| jh | Julia Holtz |
| mh | Michael Helmert |
Steuerung
# Status prüfen
systemctl --user status terminservice-report.timer
# Manuell auslösen
systemctl --user start terminservice-report.service
# Report manuell erstellen (4 Wochen, auf stdout)
python3 /home/ak/scripts/terminservice_report.py --weeks 4
# Report mit Startdatum und Ausgabedatei
python3 /home/ak/scripts/terminservice_report.py --start 2026-04-01 --weeks 3 --output /tmp/report.md
Abhängigkeiten (Python, auf Pi5)
requests— ICS-Feed ladenmarkdown— Markdown-Parsingweasyprint— PDF-Erzeugung