kimai-time-tracking
Complete Kimai time-tracking API integration. Manage timesheets, customers, projects, activities, teams, invoices and exports via REST API. Supports time tracking workflows, reporting, and administrative operations. Keywords - kimai, zeiterfassung, timesheet, tracking, project, customer, activity, invoice, export, timer, stunden
Install
mkdir -p .claude/skills/kimai-time-tracking && curl -L -o skill.zip "https://mcp.directory/api/skills/download/9056" && unzip -o skill.zip -d .claude/skills/kimai-time-tracking && rm skill.zipInstalls to .claude/skills/kimai-time-tracking
About this skill
Kimai Time Tracking Skill
Complete API integration for Kimai time-tracking software. Enables full control over timesheets, projects, customers, activities, teams, invoices, and system configuration.
When to use
Activate this skill when the user requests:
- Start/stop/restart time tracking (timers)
- List, filter, or export timesheets
- Manage customers, projects, or activities
- Create invoices or export data
- Administrative tasks (users, teams, rates)
- Query system status (version, plugins, config)
Activation triggers:
- Keywords: "kimai", "zeiterfassung", "timesheet", "timer", "stunden", "erfasse Zeit", "starte Tracking", "Projekt anlegen", "Rechnung erstellen"
- "Start tracking for project X"
- "Show my timesheets from last week"
- "Create new customer in Kimai"
- "Export timesheets to CSV"
- "List all active timers"
- "Stop current time tracking"
Do NOT activate for:
- General time questions ("What time is it?")
- Other time-tracking tools (Toggl, Clockify, etc.)
- Calendar/scheduling without Kimai context
Environment Setup
Required Environment Variables:
KIMAI_BASE_URL- Full URL to Kimai instance (e.g.,https://kimai.example.com)KIMAI_API_TOKEN- Bearer token for authentication
Optional:
KIMAI_WORKSPACE- Path for exports/temp files (defaults to~/.openclaw/workspace/kimai)
API Permissions required depend on operation:
view_own_timesheet,create_own_timesheet,edit_own_timesheet,delete_own_timesheetview_other_timesheet(for viewing other users' entries)view_customer,edit_customer,delete_customerview_project,edit_project,delete_projectview_activity,edit_activity,delete_activityview_team,edit_team,create_team,delete_teamview_invoice(for invoice operations)view_user(for user management)
Compatibility: Requires Kimai 2.x with REST API enabled. Internet access required. Linux/macOS supported.
Workflow
1. Quick Time Tracking
# List recent activities (to find project/activity IDs)
./scripts/kimai_cli.py timesheets recent
# Start tracking
./scripts/kimai_cli.py timesheets start --project 1 --activity 5 --description "Implementing API"
# Check active timers
./scripts/kimai_cli.py timesheets active
# Stop tracking
./scripts/kimai_cli.py timesheets stop --id 123
2. Data Management Workflow
# Create customer → Project → Activity hierarchy
./scripts/kimai_cli.py customers create --name "Acme Corp" --country DE --currency EUR --timezone Europe/Berlin
./scripts/kimai_cli.py projects create --name "Website Redesign" --customer 1
./scripts/kimai_cli.py activities create --name "Development" --project 1
# List with filters
./scripts/kimai_cli.py timesheets list --customer 1 --begin "2024-01-01T00:00:00" --exported 0
3. Export/Invoice Workflow
# Mark timesheets as exported (locks them)
./scripts/kimai_cli.py timesheets export --id 123
# List invoices
./scripts/kimai_cli.py invoices list --status pending --begin 2024-01-01T00:00:00
CLI Tool Reference
Use scripts/kimai_cli.py for all operations. Structure follows API endpoints:
Timesheets (timesheets)
list- List entries (supports pagination, filters: user, customer, project, activity, tags, date range, exported status)get <id>- Fetch single entrycreate- Create manual entry or start timer (omit --end for active tracking)update <id>- Patch existing entrydelete <id>- Requires confirmation (destructive)stop <id>- Stop active timerrestart <id>- Restart finished entry (creates new)duplicate <id>- Copy entry (resets export status)active- List currently running timersrecent- Recent unique working sets (last activity per project/activity combination)export <id>- Toggle export/lock status
Customers (customers)
list- List customers (filter: visible, term)get <id>- Fetch customer detailscreate- Create new customerupdate <id>- Update customerdelete <id>- Requires confirmation (cascades to projects/activities/timesheets)meta <id>- Update custom fieldsrates <id>- Manage customer-specific rates
Projects (projects)
list- List projects (filter: customer, visible, date range)get <id>- Fetch projectcreate- Create project (requires customer ID)update <id>- Update projectdelete <id>- Requires confirmation (cascades to activities/timesheets)rates <id>- Manage project rates
Activities (activities)
list- List activities (filter: project, visible, global only)get <id>- Fetch activitycreate- Create activity (can be global or project-specific)update <id>- Update activitydelete <id>- Requires confirmation (cascades to timesheets)rates <id>- Manage activity rates
Teams (teams)
list,get,create,update,deletemember-add <team-id> <user-id>- Add team membermember-remove <team-id> <user-id>- Remove membergrant-customer <team-id> <customer-id>- Grant customer accessgrant-project <team-id> <project-id>- Grant project accessgrant-activity <team-id> <activity-id>- Grant activity access
Users (users)
list- List users (requires view_user permission)me- Current user infoget <id>- User detailscreate- Create user (admin)update <id>- Update user
Invoices (invoices)
list- List invoices (filter: date range, customer, status)get <id>- Invoice details
System (system)
ping- Test connectivityversion- Kimai version infoplugins- Installed pluginsconfig- Timesheet configurationcolors- Color codes
Safety & Boundaries
⚠️ DESTRUCTIVE OPERATIONS
deleteoperations on customers, projects, activities, timesheets, teams, or tags require explicit user confirmation.- Deleting customers cascades to all linked projects, activities, and timesheets [1].
- Deleting projects cascades to activities and timesheets [1].
- The CLI will show a preview of affected data and require "yes" confirmation.
API Security:
- API token is passed via
Authorization: Bearerheader [1]. - Token is never logged or stored in CLI output.
- Use
--dry-runflag for testing (simulates API calls without executing).
Rate Limiting & Pagination:
- API returns paginated results (default 50 items) [1].
- CLI auto-handles pagination for
listcommands (fetches all pages or respects--limit). - Use
--pageand--sizefor manual pagination control.
Data Privacy:
- Timesheet data may contain sensitive information.
- Export files are saved to workspace with restricted permissions (600).
- Redact personal data (emails, names) when sharing debug output.
Workspace Safety:
- All file exports (CSV, JSON) default to
KIMAI_WORKSPACEor~/.openclaw/workspace/kimai. - Never write to system directories outside workspace without explicit confirmation.
Input/Output Specifications
Inputs:
- Entity IDs (integers)
- ISO 8601 datetime strings (YYYY-MM-DDTHH:mm:ss)
- JSON data for create/update operations (via --json file or CLI args)
- Filter parameters (customer, project, activity IDs, date ranges, visibility)
Outputs:
- JSON (default, pipe-friendly)
- Table format (
--format tablefor human readability) - CSV (
--format csvfor exports) - Exit codes: 0 (success), 1 (API error), 2 (validation error), 3 (cancelled by user)
Success Criteria:
- HTTP 200/201 for successful operations
- Valid JSON response structure matching API schemas [1]
- For exports: File created in workspace with expected record count
Examples
Start tracking with description
./scripts/kimai_cli.py timesheets create \
--project 5 \
--activity 12 \
--description "Client meeting - requirements analysis" \
--tags "meeting,urgent"
List and export non-exported hours
# Find billable hours not yet exported
./scripts/kimai_cli.py timesheets list \
--exported 0 \
--billable 1 \
--begin "2024-01-01T00:00:00" \
--end "2024-01-31T23:59:59" \
--format csv > january_hours.csv
Update custom fields (meta)
./scripts/kimai_cli.py customers meta 42 \
--name "order_number" \
--value "PO-2024-001"
Create team and assign resources
./scripts/kimai_cli.py teams create --name "Development Team" --members '[{"user": 1, "teamlead": true}]'
./scripts/kimai_cli.py teams grant-project 1 5
Error Handling
Common HTTP codes:
200- Success201- Created204- No content (successful delete)400- Bad request (validation error, missing fields)401- Unauthorized (invalid/expired token)403- Forbidden (insufficient permissions)404- Not found (invalid ID)409- Conflict (overlapping timesheet if not allowed by config)
CLI behavior:
- Validates required fields before API call (e.g., project+activity for timesheets [1])
- Pretty-prints validation errors from API
- Suggests fixes (e.g., "Did you mean to use 'PATCH' instead of DELETE? Try setting visible=false to hide instead of delete")
Validation
Validate this skill using the Openclaw skills validator:
skills-ref validate ./kimai-time-tracking
Test API connectivity:
export KIMAI_BASE_URL="https://your-kimai.example.com"
export KIMAI_API_TOKEN="your-api-token"
./kimai-time-tracking/scripts/kimai_cli.py system ping
References
- Kimai REST API Docs: https://www.kimai.org/documentation/rest-api.html
- Pagination Guide: https://www.kimai.org/documentation/api-pagination.html
- API Spec:
references/api-reference.json(complete OpenAPI schema)
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversNavidrome server streamer for complete music library management with playlists, playback, search, radio, lyrics & Last.f
Advanced Discord bot for moderation, automation, and server management with bulk tools, privacy, and webhook support.
Boost productivity with Task Master: an AI-powered tool for project management and agile development workflows, integrat
Access shadcn/ui v4 components, blocks, and demos for rapid React UI library development. Seamless integration and sourc
Solana Agent Kit: Easily deploy tokens, mint NFTs, and manage DeFi & cross-chain tasks with Solana integration in chat i
Automate repository management, issue tracking, and merge requests with GitLab API integration for streamlined developme
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.