MCP-Tools: Zeiterfassung und Kalender

Zeiten erfassen, Timer starten und stoppen, Einträge korrigieren sowie Google-Calendar-Termine lesen, anlegen und gemeinsame freie Zeitfenster im Team finden.

Voraussetzungen
  • Module Zeiterfassung bzw. Kalender aktiv.
  • Für Kalender-Tools: ein verbundener Google Calendar (für find_team_free_slots zusätzlich Kollegen, die ihre Verfügbarkeit teilen).

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.

Weiterlesen

Antwort nicht gefunden oder Problem tritt weiter auf?

Zum Support-Bereich

Fachlich geprüft am 2026-09-26