Skip to content

Feature: Termine an Thunderbird/Outlook-Kalender senden (iCalendar-Export und optional CalDAV/Graph-Sync) #481

@MadGapun

Description

@MadGapun

Idee

Termine die in PBP angelegt werden (Interviews, Telefonate, Zweitgespraeche, Vor-Ort-Termine, Follow-ups) sollen direkt an Thunderbird-Kalender und Outlook-Kalender uebertragbar sein — per "Senden an"-Button. Aktuell muss der User den Termin haendisch im Kalender nacherfassen, oft mit Copy-Paste-Aufwand.

Motivation

Szenario aus 22.04.2026: Zweitgespraech 65f9ca96 am Freitag 24.04. 13:00-13:30 wurde in PBP angelegt (via meeting_hinzufuegen). Der User muss ihn aber dann nochmal manuell im Thunderbird- oder Outlook-Kalender eintragen, sonst bekommt er keine Erinnerung und keinen Konflikt-Check mit anderen Terminen.

Wenn PBP einen "An Kalender senden"-Button haette, wuerde der Termin in einem Klick im bevorzugten Kalender landen — inkl. aller Metadaten aus PBP (Teilnehmer, Agenda, Dossier-Link).

Zwei parallele Wege

Weg 1 (simpel, sofort machbar): iCalendar-Download

Jeder Termin in PBP bekommt einen Download-Button "Als .ics-Datei speichern". Der User klickt, eine .ics-Datei wird generiert und heruntergeladen. Durch Doppelklick auf die .ics wird der Termin im Default-Kalender (Thunderbird, Outlook, Apple Calendar, Google Calendar) geoeffnet und kann mit einem weiteren Klick importiert werden.

Technisch:

  • Backend generiert RFC-5545-konforme iCalendar-Datei aus dem Meeting-Record
  • Frontend bietet Download-Link: <a href="/api/meetings/{id}/ical" download>An Kalender senden</a>
  • Die .ics-Datei enthaelt: SUMMARY (Meeting-Titel), DTSTART/DTEND (mit Zeitzone), LOCATION, DESCRIPTION (Notizen + Link zurueck zu PBP-Bewerbung), ATTENDEE (wenn in PBP bekannt), ORGANIZER
  • Funktioniert mit jedem Kalender-Programm, plattformunabhaengig

Aufwand: Niedrig, ca. 1 Tag (Python icalendar-Library oder manueller String-Build).

Vorteile:

  • Kein Plugin, kein Add-On, keine API-Credentials
  • Funktioniert mit Thunderbird (Lightning/integrierter Kalender), Outlook, Apple Calendar, Google Calendar, allen anderen iCal-faehigen Clients
  • Kann auch per Mail verschickt werden als Anhang an Bewerber/Recruiter
  • Thunderbird und Outlook erkennen .ics-Anhaenge automatisch

Einschraenkungen:

  • User muss die .ics einmal durch Doppelklick bestaetigen (nicht automatisch im Kalender)
  • Bei spaeterer Aenderung des Termins in PBP muss erneut exportiert werden (keine Live-Sync)

Weg 2 (komfortabel, groesserer Aufwand): CalDAV / Exchange-Sync

PBP synchronisiert Termine bidirektional mit dem Kalender:

  • Bei Thunderbird via CalDAV (wenn der Thunderbird-Kalender ein CalDAV-Account wie Nextcloud, iCloud, Google Calendar ist)
  • Bei Outlook via Microsoft Graph API (Exchange/Office 365) oder EWS

Technisch:

  • PBP haelt Kalender-Credentials verschluesselt (CalDAV-URL + User/Pass, oder Graph-OAuth-Token)
  • Synchronisationslogik: Termine werden bei Anlage/Aenderung in PBP automatisch in den verknuepften Kalender geschrieben
  • Optional: Aenderungen im Kalender (Termin verschieben, absagen) werden zurueck in PBP gespiegelt

Aufwand: Hoch, ca. 1-2 Wochen plus OAuth-Einrichtung, laufender Wartungsaufwand.

Vorteile:

  • Echte Integration, Termine erscheinen sofort im Kalender ohne Nutzer-Aktion
  • Aenderungen synchronisieren automatisch
  • Bei Outlook: Nutzung von Exchange-Meeting-Features (Einladungen verschicken, Teilnehmer antworten)

Einschraenkungen:

  • Credentials-Handling mit Sicherheits- und Datenschutzanforderungen
  • Konflikte bei gleichzeitiger Bearbeitung im Kalender und in PBP
  • OAuth-Setup pro User aufwendig (Microsoft-App-Registrierung, Google-Cloud-Projekt)
  • Ein-User-Tool, CalDAV-URL-Config eher einfach, Exchange/Graph deutlich komplizierter

Empfehlung

Zuerst Weg 1 umsetzen (iCalendar-Download). Deckt 90 % der Use Cases ab, ist sofort brauchbar, wartungsarm, kein Security-Thema.

Weg 2 als Folge-Feature wenn der Bedarf real wird. Dann entweder CalDAV (fuer Thunderbird + Nextcloud-Nutzer, bringt auch Android-Integration) oder Graph-API (fuer Microsoft-365-Nutzer).

UI-Vorschlag fuer Weg 1

In der Meeting-Detailansicht und in der Meeting-Liste neben jedem Termin ein Icon/Button:

[Termin] Zweitgespraech VirtoTech / Rota Yokogawa
         Fr 24.04.2026, 13:00-13:30 (30 Min), Teams
         [📅 An Kalender senden]  [✉ Per Mail einladen]  [✎ Bearbeiten]

Klick auf "An Kalender senden" -> .ics-Download startet sofort. Datei-Benennung: PBP_Termin_<Firma>_<Datum>.ics (z.B. PBP_Termin_VirtoTech_2026-04-24.ics).

Zusatz: Einladung per Mail

Optional koennte der Button "Per Mail einladen" direkt eine mailto:-URL (siehe #477) bauen, die die .ics als Anhang einbindet — Thunderbird oeffnet dann eine Mail-Komposition mit angehaengter .ics-Datei. Dadurch kann man Recruiter oder Kollegen schnell zum Termin einladen ohne separaten Anhang anfassen zu muessen.

Technisch: mailto:-URLs unterstuetzen keine Dateianhaenge direkt. Workaround: Die .ics wird heruntergeladen und Thunderbird so konfiguriert, dass es .ics als Mail-Anhang erkennt. Oder ueber Thunderbird-spezifische URL-Schemes. Eigenes Unter-Issue wenn es spezifisch wird.

Inhalt der .ics-Datei (Beispiel aus Meeting 65f9ca96)

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//PBP//Bewerbungs-Assistent//DE
METHOD:PUBLISH
BEGIN:VEVENT
UID:<email-anonymisiert>
DTSTAMP:20260421T170000Z
DTSTART;TZID=Europe/Berlin:20260424T130000
DTEND;TZID=Europe/Berlin:20260424T133000
SUMMARY:Zweitgespraech VirtoTech / Rota Yokogawa
LOCATION:Teams
DESCRIPTION:Follow-up zum Erstgespraech vom 20.04.2026.\n\nTeilnehmer:\n- James Cole-Ezen (VirtoTech)\n- Albert (Head of IT Rota Yokogawa)\n- Technischer Leiter / Leiter R&D\n\nDossier: D:\\MAD\\Markus\\Schriftverkehr\\Bewerbung\\Dossier_Zweitgespraech_RotaYokogawa_2026-04-24.docx\n\nPBP: https://pbp.local/bewerbung/e73c9f33
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

Related

Prioritaet

Mittel-Hoch fuer Weg 1 — geringer Aufwand, deutlicher Zeitgewinn bei jedem Termin den PBP verwaltet. Weg 2 spaeter, wenn Volumen und Bedarf das rechtfertigen.

Offene Fragen

  1. Termin-Serien (z.B. woechentlicher Jour Fixe) — brauchen wir das? Aktuell hat PBP keine, .ics unterstuetzt RRULE.
  2. Zeitzone — fest Europe/Berlin oder konfigurierbar?
  3. ORGANIZER im .ics — Markus? Oder leer lassen damit der User selbst als Organisator erscheint?
  4. Teilnehmer (ATTENDEE) — nur wenn E-Mail-Adresse in PBP bekannt. Bei Namen ohne Mail: weglassen.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv1.8Geplant fuer v1.8

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions