list_time_entries
Listet Zeiteinträge der Organisation, neueste Startzeit zuerst; filterbar nach Projekt und Aufgabe. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Zeiterfassung“ aktiv.
- projectId
- Optional · string — Nur Einträge dieses Projekts.
- taskId
- Optional · string — Nur Einträge zu dieser Aufgabe.
- limit
- Optional · number — Maximale Anzahl Ergebnisse (Standard 50, höchstens 200).
get_running_timer
Liefert deinen aktuell laufenden Zeiteintrag (ohne Endzeit) in der Organisation oder null, wenn keiner läuft. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Zeiterfassung“ aktiv. Dieses Tool hat keine Parameter.
create_time_entry
Erfasst einen Zeiteintrag für dich. Fehlt endTime, startet ein laufender Timer; sonst wird die Dauer in Sekunden aus Start und Ende berechnet. Das Tool prüft nicht, ob bereits ein Timer läuft. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Zeiterfassung“ aktiv.
- startTime
- Pflicht · string — Beginn als ISO-8601-Zeitpunkt.
- endTime
- Optional · string — Ende (ISO 8601). Weglassen startet einen laufenden Timer.
- description
- Optional · string — Beschreibung der Tätigkeit.
- projectId
- Optional · string — ID des zugeordneten Projekts.
- taskId
- Optional · string — ID der zugehörigen Aufgabe.
stop_timer
Beendet deinen laufenden Timer und berechnet die Dauer. Gesucht wird dein laufender Eintrag ohne Einschränkung auf die Organisation. Gibt es keinen, kommt der Fehler „No running timer found“. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Zeiterfassung“ aktiv.
- endTime
- Optional · string — Ende (ISO 8601). Standard: jetzt.
update_time_entry
Ändert einen Zeiteintrag (Beschreibung, Zeiten, Projekt, Aufgabe) und berechnet die Dauer neu. Einträge mit Abrechnungsstatus reserviert oder abgerechnet (reserved/billed) sind gesperrt. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Zeiterfassung“ aktiv.
- id
- Pflicht · string — ID des Zeiteintrags.
- startTime
- Optional · string — Neuer Beginn (ISO 8601).
- endTime
- Optional · string — Neues Ende (ISO 8601).
- description
- Optional · string — Neue Beschreibung.
- projectId
- Optional · string — ID des zugeordneten Projekts.
- taskId
- Optional · string — ID der zugehörigen Aufgabe.
delete_time_entry
Löscht einen Zeiteintrag. Erfordert mindestens die Rolle Admin und einen Schlüssel mit delete-Scope. Reservierte oder abgerechnete Einträge lassen sich nicht löschen. Voraussetzungen: Rolle Admin oder höher, Schlüssel-Scope „delete“ oder höher, Modul „Zeiterfassung“ aktiv.
- id
- Pflicht · string — ID des Zeiteintrags.
list_calendar_events
Listet anstehende Google-Calendar-Termine des aktuellen Nutzers (Standard: die nächsten 14 Tage). Ist kein Google-Kalender verbunden, antwortet das Tool mit connected=false und einem Hinweis statt mit einem Fehler. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Kalender“ aktiv.
- maxResults
- Optional · number · Standard: 20 — Maximale Anzahl der Termine (Standard 20, höchstens 50).
create_calendar_event
Legt einen Termin im Google Calendar des aktuellen Nutzers an, optional mit Google-Meet-Link. Ist kein Kalender verbunden, kommt ein Fehler. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Kalender“ aktiv.
- title
- Pflicht · string — Titel des Termins.
- startDateTime
- Pflicht · string — Beginn als ISO-8601-Zeitpunkt, z. B. 2026-07-01T10:00:00.
- endDateTime
- Pflicht · string — Ende als ISO-8601-Zeitpunkt, z. B. 2026-07-01T11:00:00.
- description
- Optional · string — Optionale Beschreibung des Termins.
- addMeet
- Optional · boolean · Standard: false — Fügt dem Termin einen Google-Meet-Link hinzu.
find_team_free_slots
Sucht die frühesten kommenden freien Zeitfenster, die du mit deinen Teammitgliedern gemeinsam hast – berücksichtigt werden verbundene Google-, Outlook- und iCal-Kalender und nur Mitglieder, die ihre Verfügbarkeit geteilt haben (Opt-in). Liefert slots und consideredTeammates. Erfordert einen Organisationskontext. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Kalender“ aktiv.
- durationMin
- Optional · number · Standard: 30 — Länge des Zeitfensters in Minuten.
- days
- Optional · number · Standard: 10 — Wie viele Kalendertage im Voraus gesucht wird (höchstens 45).
- maxResults
- Optional · number · Standard: 5 — Maximale Anzahl der Zeitfenster (höchstens 20).
- startHour
- Optional · number · Standard: 9 — Beginn der Geschäftszeit in lokaler Zeit (0–23).
- endHour
- Optional · number · Standard: 18 — Ende der Geschäftszeit in lokaler Zeit (0–23).
- teammateUserIds
- Optional · string[] — Beschränkt die Suche auf diese Teammitglieder (Supabase-Nutzer-IDs) statt auf alle, die ihre Verfügbarkeit teilen.
Häufige Stolperfallen
Zeitangaben mit Offset senden
Sende Zeitpunkte als ISO 8601 mit UTC-Offset oder Z (z. B. 2026-09-26T09:00:00+02:00). Ohne Offset hängt die Interpretation von der Servereinstellung ab.
Timer gelten pro Person
get_running_timer und stop_timer beziehen sich auf deinen Timer. stop_timer sucht ihn ohne Einschränkung auf die Organisation.
Gesperrte Einträge
Reservierte oder abgerechnete Zeiteinträge lassen sich weder ändern noch löschen. Ein laufender Timer wird beim Anlegen nicht geprüft: create_time_entry startet auch dann einen weiteren, wenn schon einer läuft.
Kalender nicht verbunden
list_calendar_events meldet connected=false, create_calendar_event liefert einen Fehler. Verbinde zuerst den Kalender in der Webapp.
