Zum Inhalt

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 laden
  • markdown — Markdown-Parsing
  • weasyprint — PDF-Erzeugung

Letzte Änderung: 2026-03-30