Claude-skill-registry clockodo
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".
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/clockodo" ~/.claude/skills/majiayu000-claude-skill-registry-clockodo && rm -rf "$T"
skills/data/clockodo/SKILL.mdClockodo Skill
Steuere Clockodo-Zeiterfassung direkt aus Clawdbot: Stoppuhr starten/stoppen, Zeiteinträge verwalten, Auswertungen abrufen.
Setup
1. API-Zugangsdaten holen
- In Clockodo einloggen → Persönliche Daten → API-Schlüssel
- E-Mail-Adresse und API-Key notieren
2. Environment Variables setzen
export CLOCKODO_EMAIL="deine@email.de" 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.
Verwendung
Stoppuhr
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>
Zeiteinträge
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"}'
Stammdaten
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
Urlaubsanträge & Abwesenheiten
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]
Zeitkontrolle
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>
Agent-Anweisungen
Typische Anfragen
"Starte Timer für [Projekt/Kunde]"
- Hole Stammdaten wenn IDs unbekannt:
,customers
,projectsservices - Finde passende IDs
- Starte mit
clock-start
"Was läuft gerade?" / "Timer Status"
aufrufenclock-status- Wenn
null → nichts läuftrunning - Sonst: Zeige Kunde, Projekt, Startzeit, Dauer
"Stoppe Timer"
für aktuelle Entry-IDclock-statusclock-stop <entry_id>
"Zeiteinträge heute/diese Woche/diesen Monat"
- Berechne Zeitraum (ISO8601 UTC)
mit Zeitraumentries-list- Formatiere Ergebnis übersichtlich (Summen, nach Projekt gruppiert)
"Buche X Stunden auf Projekt Y"
- Finde Kunden-/Projekt-/Leistungs-IDs
- Berechne Start- und Endzeit
mit JSONentries-add
"Offene Urlaubsanträge" / "Wer will Urlaub?"
aufrufenabsences-pending- Filtern nach
(enquired)status: 0 - Übersichtlich formatieren: Name, Zeitraum, Typ, Tage
"Urlaubsantrag von [Name] freigeben"
für offene Anträgeabsences-pending- Antrag des Mitarbeiters finden
absence-approve <id>
"Haben alle Mitarbeiter ihre Zeiten eingetragen?" / "Zeitkontrolle"
für Liste aller aktiven Mitarbeiterusers- Für jeden User:
entries-by-user <id> <wochenstart> <wochenende> - Summe der Stunden berechnen (duration / 3600)
- Mit Soll vergleichen (z.B. 40h oder aus worktime-target)
- Fehlende Stunden markieren
Wöchentlicher Timesheet-Check (für Cron)
- Hole alle User
- Berechne letzte Woche (Mo-Fr)
- Für jeden User: Prüfe gebuchte Stunden
- Liste Mitarbeiter mit < X Stunden gebuchter Zeit
- Sende Slack-Nachricht an säumige Mitarbeiter
Formatierung der Ausgabe
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
ID-Caching
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.
Automatisierung: Wöchentlicher Timesheet-Check
Beispiel-Workflow für wöchentliche Zeiterfassungs-Kontrolle:
Setup (einmalig)
- User-Mapping anlegen in
:<workspace>/TOOLS.md
### Clockodo User → Slack | User ID | Name | Slack ID | Soll-Stunden/Woche | |---------|------|----------|-------------------| | 12345 | Max Mustermann | U0ABC123 | 40 | | 12346 | Erika Musterfrau | U0DEF456 | 32 |
- Cron-Job erstellen (z.B. jeden Montag 10:00):
- Prüfe Vorwoche
- Slack-Erinnerung an Mitarbeiter mit < 90% Soll
Check-Logik
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
Absence-Status Codes
| Status | Bedeutung |
|---|---|
| 0 | Angefragt (pending) |
| 1 | Genehmigt |
| 2 | Abgelehnt |
| 3 | Genehmigung zurückgezogen |
| 4 | Anfrage zurückgezogen |
Absence-Typen
| Typ | Bedeutung |
|---|---|
| 1 | Urlaub |
| 2 | Sonderurlaub |
| 3 | Überstundenabbau |
| 4 | Krankheit |
| 5 | Kind krank |
| 6 | Fortbildung |
| 7 | Mutterschutz |
| 8 | Home Office |
| 9 | Außendienst |
API-Referenz
Volle Dokumentation: https://www.clockodo.com/en/api/
Wichtige Endpunkte:
– Stoppuhr steuern/v2/clock
– Zeiteinträge CRUD/v2/entries
– Kundenliste/v2/customers
– Projektliste/v2/projects
– Leistungsarten/v2/services
– Benutzerliste/v2/users
– Abwesenheiten/v2/absences
– Arbeitszeiten/v2/worktimes
Authentifizierung:
- Header:
+X-ClockodoApiUserX-ClockodoApiKey - Plus:
X-Clockodo-External-Application: AppName;email
Datumsformat: ISO 8601 UTC (z.B.
2026-01-27T14:30:00Z)