Clockodo Zeiterfassung - Stoppuhr steuern, Zeiteinträge verwalten, Kunden/Projekte/Leistungen abrufen. Nutze für "starte Timer", "stoppe Zeit", "was läuft gerade", "Zeiteinträge heute", "buche Zeit auf Projekt X".
Steuere Clockodo-Zeiterfassung direkt aus Clawdbot: Stoppuhr starten/stoppen, Zeiteinträge verwalten, Auswertungen abrufen.
export CLOCKODO_EMAIL="[email protected]"
export CLOCKODO_API_KEY="dein-api-key"
export CLOCKODO_APP_NAME="Clawdbot" # optional
Am besten in ~/.zshrc oder ~/.bashrc eintragen, oder in Clawdbot config als environment.
Status prüfen (läuft gerade was?):
<skill>/scripts/clockodo.sh clock-status
Starten (benötigt Kunden-ID und Leistungs-ID):
<skill>/scripts/clockodo.sh clock-start <customers_id> <services_id> [projects_id] [text] [billable]
Stoppen:
<skill>/scripts/clockodo.sh clock-stop <entry_id>
Auflisten (Zeitraum im ISO8601-Format):
<skill>/scripts/clockodo.sh entries-list "2026-01-01T00:00:00Z" "2026-01-31T23:59:59Z"
Einzelnen Eintrag abrufen:
<skill>/scripts/clockodo.sh entries-get <id>
Neuen Eintrag anlegen (JSON):
<skill>/scripts/clockodo.sh entries-add '{"customers_id":123,"services_id":456,"billable":1,"time_since":"2026-01-15T09:00:00Z","time_until":"2026-01-15T12:00:00Z","text":"Beschreibung"}'
Kunden auflisten:
<skill>/scripts/clockodo.sh customers
Projekte auflisten (optional gefiltert nach Kunde):
<skill>/scripts/clockodo.sh projects [customers_id]
Leistungsarten auflisten:
<skill>/scripts/clockodo.sh services
Benutzer auflisten:
<skill>/scripts/clockodo.sh users
Eigene Daten:
<skill>/scripts/clockodo.sh me
Alle Abwesenheiten auflisten:
<skill>/scripts/clockodo.sh absences [year]
Offene Urlaubsanträge (Status = 0/enquired):
<skill>/scripts/clockodo.sh absences-pending [year]
Einzelne Abwesenheit abrufen:
<skill>/scripts/clockodo.sh absence-get <id>
Urlaubsantrag freigeben:
<skill>/scripts/clockodo.sh absence-approve <id>
Urlaubsantrag ablehnen (optional mit Begründung):
<skill>/scripts/clockodo.sh absence-reject <id> [note]
Arbeitszeiten eines Users (Datum im Format YYYY-MM-DD):
<skill>/scripts/clockodo.sh worktimes <user_id> <since> <until>
Arbeitsziel:
<skill>/scripts/clockodo.sh worktime-target <user_id> [year]
Einträge eines Users:
<skill>/scripts/clockodo.sh entries-by-user <user_id> <since> <until>
"Starte Timer für [Projekt/Kunde]"
customers, projects, servicesclock-start"Was läuft gerade?" / "Timer Status"
clock-status aufrufenrunning null → nichts läuft"Stoppe Timer"
clock-status für aktuelle Entry-IDclock-stop <entry_id>"Zeiteinträge heute/diese Woche/diesen Monat"
entries-list mit Zeitraum"Buche X Stunden auf Projekt Y"
entries-add mit JSON"Offene Urlaubsanträge" / "Wer will Urlaub?"
absences-pending aufrufenstatus: 0 (enquired)"Urlaubsantrag von [Name] freigeben"
absences-pending für offene Anträgeabsence-approve <id>"Haben alle Mitarbeiter ihre Zeiten eingetragen?" / "Zeitkontrolle"
users für Liste aller aktiven Mitarbeiterentries-by-user <id> <wochenstart> <wochenende>Wöchentlicher Timesheet-Check (für Cron)
Zeiteinträge als kompakte Liste:
📅 Heute (Mo 27.01.2026)
━━━━━━━━━━━━━━━━━━━━━━━
• 09:00-12:00 (3h) – Kunde A / Projekt X – "Meeting"
• 13:00-17:30 (4,5h) – Kunde B / Projekt Y – "Entwicklung"
━━━━━━━━━━━━━━━━━━━━━━━
Gesamt: 7,5h
Laufender Timer:
⏱️ Timer läuft seit 14:23 (2h 15m)
Kunde: Rockstardevelopers
Projekt: Website Relaunch
Leistung: Entwicklung
Speichere häufig genutzte IDs in <workspace>/TOOLS.md unter ### Clockodo:
### Clockodo
**Kunden:**
- 12345 → Rockstardevelopers GmbH
- 12346 → accessibleAI SmartCompliance GmbH
**Projekte:**
- 67890 → RSD Website Relaunch
- 67891 → accessibleAI MVP
**Leistungen:**
- 111 → Entwicklung
- 112 → Meeting
- 113 → Support
Beim ersten Aufruf die Stammdaten abrufen und in TOOLS.md cachen.
Beispiel-Workflow für wöchentliche Zeiterfassungs-Kontrolle:
<workspace>/TOOLS.md:### Clockodo User → Slack
| User ID | Name | Slack ID | Soll-Stunden/Woche |
|---------|------|----------|-------------------|
| 12345 | Max Mustermann | U0ABC123 | 40 |
| 12346 | Erika Musterfrau | U0DEF456 | 32 |
1. Berechne Zeitraum: Letzte Woche Mo 00:00 bis Fr 23:59
2. Für jeden aktiven User:
a. entries-by-user <id> <start> <end>
b. Summe = Σ(entry.duration) / 3600 Stunden
c. Wenn Summe < (Soll * 0.9):
→ Slack-Nachricht: "Bitte Zeiten für letzte Woche nachtragen"
3. Report an Admin: Übersicht aller User + gebuchte Stunden
| Status | Bedeutung |
|---|---|
| 0 | Angefragt (pending) |
| 1 | Genehmigt |
| 2 | Abgelehnt |
| 3 | Genehmigung zurückgezogen |
| 4 | Anfrage zurückgezogen |
| Typ | Bedeutung |
|---|---|
| 1 | Urlaub |
| 2 | Sonderurlaub |
| 3 | Überstundenabbau |
| 4 | Krankheit |
| 5 | Kind krank |
| 6 | Fortbildung |
| 7 | Mutterschutz |
| 8 | Home Office |
| 9 | Außendienst |
Volle Dokumentation: https://www.clockodo.com/en/api/
Wichtige Endpunkte:
/v2/clock – Stoppuhr steuern/v2/entries – Zeiteinträge CRUD/v2/customers – Kundenliste/v2/projects – Projektliste/v2/services – Leistungsarten/v2/users – Benutzerliste/v2/absences – Abwesenheiten/v2/worktimes – ArbeitszeitenAuthentifizierung:
X-ClockodoApiUser + X-ClockodoApiKeyX-Clockodo-External-Application: AppName;emailDatumsformat: ISO 8601 UTC (z.B. 2026-01-27T14:30:00Z)