Termin-Koordinieren
Ad-hoc-Skill. Statt manuelles Kalender-Jonglieren: Skill findet Optionen, analysiert Konflikte, bereitet Reply vor. Eintragung erst nach bestaetigter Kunden-Zusage — niemals vorher.
1. Input parsen
Aus Marvins Anweisung extrahieren:
| Feld | Pflicht | Default |
|---|---|---|
| Kunden-Name / Partner | ja | bei Fehlen nachfragen |
| Wunsch-Zeitfenster | ja | konkret (“Dienstag 19:00”) oder unscharf (“Dienstagabend”, “Ende der Woche”) |
| Dauer | ja | Default 60min ist verboten — immer Rueckfrage “Wie lang soll der Termin sein?” bevor Slots gesucht werden |
| Typ | nein | Call (Default) — alternativ Vor-Ort-Termin, Workshop |
Warum Dauer-Rueckfrage statt Default: Dauer bestimmt welche Slots ueberhaupt in Frage kommen. Ein falscher Default produziert falsche Optionen, die spaeter wieder korrigiert werden muessen. Eine kurze Frage spart einen ganzen Iterations-Loop.
Achtung Lissabon-Pivot: Ab Mitte/Ende Mai 2026 nur noch Online-Termine. Wenn Typ “Vor-Ort” angefragt wird und das Datum nach dem Abflug liegt → flaggen und Online-Alternative vorschlagen (siehe project_lissabon_umzug.md).
2. Config + Kontext laden
Parallel:
_meta/config-planning.md→ Chronotyp-Block (Pflicht), Arbeitszeit-Fenster, Themen-Tag fuer den Wunsch-Tag, Sicherheits-Regeln- Google Calendar fuer den Wunsch-Tag (
list_events, ggf. mehrere Tage bei unscharfem Fenster) - Plugin-System day-plan fuer
{wunsch-tag}falls bereits geplant - Plugin-System week-plan fuer
{wunsch-woche}falls Wochenplan existiert - Plugin-TODO-Liste → falls TODO-Bloecke gegen den Slot konkurrieren koennten
Chronotyp-Regel (Pflicht): Marvin ist Eule. Niemals Slots vor 11:00 vorschlagen — auch nicht wenn der Kunde “vormittags” wuenscht. In dem Fall: Slot ab 11:00 anbieten und im Reply-Draft hoeflich erwaehnen (“Vormittags bin ich schwer erreichbar — ab 11:00 geht alles”). Wenn Kunde explizit auf 09:00 oder 10:00 besteht: nachfragen bei Marvin, nicht still einbauen.
3. Slots finden
Suche freie Zeitfenster ≥ angefragte Dauer im Wunsch-Fenster, innerhalb der Arbeitszeit aus Config.
Bei unscharfem Wunsch-Fenster (“Dienstagabend”, “Ende der Woche”, “diese Woche noch”):
- Finde genau 3 Optionen auf maximal 2 Tagen
- Bevorzuge konfliktfreie Slots
- Verteile sinnvoll (nicht 3 Slots im selben Stunden-Block)
Warum 3 / 2 Tage: weniger Entscheidungs-Last fuer Kunde und Marvin. Bei Ad-hoc-Koordination ist weniger mehr — Kunde waehlt in 10 Sekunden, Marvin muss nicht ueber zu viele Slots nachdenken.
4. Konflikte klassifizieren
| Konflikt | Verschiebbar? | Verhalten |
|---|---|---|
Fixer Kalender-Event (Arzt, externer Call, Privat-Termin — alles ohne 📋-Prefix) | nein | Slot raus, andere Option anbieten |
TODO-Block vom Tages-Planer (Titel mit 📋-Prefix) | ja, mit Review | Alternative ohne Konflikt bevorzugen. Wenn nur konfliktbehaftete Slots verfuegbar: Verschiebung des TODO im Vorschlag anbieten |
| Puffer / Mittagspause (adaptiv) | ja, automatisch | Kein Problem — Pause wandert |
5. Vorschlag zeigen
Format:
🗓 {Wochentag} {Datum} (Themen-Tag: {tag})
Wunsch: Termin "{Kunden-Name}", {Wunsch-Fenster}, {Dauer}
Arbeitszeit-Fenster: {start}-{end}
Bestehende Termine {Tag}:
{Slot} {Titel} (fix)
{Slot} {Titel} (📋 TODO-Block — verschiebbar)
Freie Slots ≥{Dauer}min im gewuenschten Fenster:
✓ {Slot} — frei
✓ {Slot} — frei
⚠ {Slot} — kollidiert mit TODO "{Titel}" (auf {Alternativ-Tag} verschiebbar)
Empfehlung:
→ {Slot} ({kurze Begruendung})
→ {Slot} (Alternative, {Begruendung})
Was soll ich {Kunden-Name} anbieten?
[Nur {Slot 1}] [Nur {Slot 2}] [Beide] [{Slot 3} mit TODO-Verschiebung] [Andere Zeit vorschlagen]6. Gmail-Account fuer Reply waehlen
Heuristik:
| Kontext | Account |
|---|---|
Anfrage kam an hello@marvinkuehlmann.com (Original-Thread) | Reply von hello@ |
Anfrage kam an marvinkuehlmann@gmail.com (privat) | Reply von privat |
| Marvin tippt Termin-Wunsch frei ein, kein Ausgangs-Thread | Nachfragen: “Reply ueber hello@ (Business) oder privat?” — kein stiller Default |
| Geschaeftliche Kommunikation, aber Kontext mehrdeutig | hello@ (gemaess config.md default_sender_business) |
Warum strenge Trennung: hello@marvinkuehlmann.com ist seriöser, trennt Business von Privat. Falsche Wahl wirkt unprofessionell und vermischt was getrennt bleiben soll.
7. Reply-Draft erstellen
Vorlage (anpassen an Marvins Sprachstil — locker, nicht kumpelhaft, echte Umlaute):
Hi {Kunden-Vorname},
fuer {Wochentag} ({Datum}) haette ich folgende Optionen:
- {Slot 1}
- {Slot 2}
Was passt dir besser?
LG
Marvin
Bei nur einem angebotenen Slot: Liste reduziert sich entsprechend, Frage wird zu “Passt das bei dir?“.
Speichern via gmail_create_draft im gewaehlten Account. NICHT senden. Marvin oeffnet Gmail, prueft, sendet selbst.
Memory-Regel: Keine Kalender-Einladung mit Attendee, kein Auto-Send, keine Zusage ohne Marvins Kontrolle. Siehe feedback_keine_einladungen_ohne_ok.md.
8. WAITING-Eintrag in Plugin-TODO-Liste anlegen
Sobald der Reply-Draft in Gmail gespeichert ist, automatisch einen Eintrag in der Plugin-TODO-Liste anhaengen (Sektion “Kunden”, oder falls neu: am Ende des aktuellen Fokus-Blocks):
- [ ] `WAITING [NORMAL]` Termin-Zusage von {Kunde} fuer {Purpose} — warten auf {Kunde}, nachfassen {heute+3 Werktage}
Default-Follow-up: heute + 3 Werktage. Marvin kann in der Bestaetigung anders setzen (“nachfassen Mo”).
tages-planung flaggt das Item am Faelligkeits-Tag wie jedes andere WAITING-Nachfass-Item — nur Anzeige, kein Auto-Nachfass-Draft. Klare Autorenschaft: termin-koordinieren schreibt, tages-planung liest.
9. Eintragung — erst nach Kunde-Zusage
Marvin kommt zurueck (Stunden oder Tage spaeter):
- “XY nimmt 19:45” — explizit
- oder via Email-Check (Marvin hat bestaetigte Zusage in Gmail gesehen und sagt “trag den XY-Termin ein”)
Skill macht dann:
-
Kalender-Event (
create_event):- Calendar:
primary - Titel-Schema (festes Vokabular):
Agentic Ventures <> {Kundenname} — {Purpose}- Beispiele:
Agentic Ventures <> Koehnemann Design — Intro-Call,Agentic Ventures <> Becker Stahl — Workshop - Kein Emoji im Titel bei Kunden-Events (Attendee koennte ihn sehen wenn spaeter Invite geschickt wird)
- Beispiele:
- Purpose-Vokabular:
Intro-Call,Workshop,Sprint-Review,Abstimmung,Call(generisch) - Purpose-Wahl heuristisch: neuer Kunde ohne Vault-Historie →
Intro-Call; Kunde mit laufendem Projekt inintern/projekte/<projekt>/_index.md→Sprint-Review; explizit erwaehnter Zweck → dieser. Marvin kann in einem Wort aendern (“mach Workshop draus”). - Description:
Koordiniert ueber termin-koordinieren am {heute}. Typ: {Call/Vor-Ort}. Online-Link: {falls vorhanden}.- KEINE internen Infos in der Description — Kunde koennte sie sehen falls spaeter Invite geschickt wird (Memory-Regel
feedback_kalender_keine_internen_infos.md)
- KEINE internen Infos in der Description — Kunde koennte sie sehen falls spaeter Invite geschickt wird (Memory-Regel
- Start/End: wie vereinbart
- KEIN Attendee — Memory-Regel. Marvin entscheidet manuell ob er nachtraeglich einlaedt.
- Calendar:
-
WAITING-Eintrag in Plugin-TODO-Liste auf DONE setzen oder loeschen:
- [x] WAITING ... → DONE ({Datum}): zugesagt, eingetragen
-
Falls TODO-Block verschoben wurde: entsprechend Plugin-day-plan fuer betroffenen + Ziel-Tag aktualisieren.
-
Bestaetigung an Marvin: “Eingetragen: {Slot} {Titel}. {Falls verschoben: ‘Rechnung XY auf Mittwoch 14:00 verschoben.’}“
10. Was wenn der Kunde absagt
Befehl: “XY hat abgesagt” / “XY will verschieben auf Donnerstag”
- WAITING-Eintrag auf “abgesagt” setzen oder loeschen
- Bei Verschiebungs-Wunsch: Skill von vorne starten mit neuem Wunsch-Fenster
- Verschobene TODO-Bloecke zuruecksetzen (zurueck auf Original-Tag), nur nach Review-Gate — Marvin bestaetigt explizit
Related
- plan — verwandter Wochen-Skill (noch im Plan-Status)
- config-planning — Arbeitszeit, Themen-Tage, Sicherheits-Regeln, Email-Account-Strategie
- CLAUDE — Behavior Rules (Config zuerst, keine externen Kommunikationen ohne OK)
- SKILL — koordiniert via day-plan-Files, liest WAITING-Items die hier geschrieben werden
- gsuite — Calendar + Gmail-MCP
- Plugin-TODO-Liste — Ziel fuer WAITING-Eintraege, Quelle fuer TODO-Bloecke die ggf. verschoben werden
- Memory:
feedback_keine_einladungen_ohne_ok.md,feedback_kalender_keine_internen_infos.md,project_lissabon_umzug.md