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) - INLINECODE2 - 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, INLINECODE8 - INLINECODE9 (for viewing other users' entries)
- INLINECODE10 ,
edit_customer, INLINECODE12 - INLINECODE13 ,
edit_project, INLINECODE15 - INLINECODE16 ,
edit_activity, INLINECODE18 - INLINECODE19 ,
edit_team, create_team, INLINECODE22 - INLINECODE23 (for invoice operations)
- INLINECODE24 (for user management)
Compatibility: Requires Kimai 2.x with REST API enabled. Internet access required. Linux/macOS supported.
Workflow
1. Quick Time Tracking
CODEBLOCK0
2. Data Management Workflow
CODEBLOCK1
3. Export/Invoice Workflow
CODEBLOCK2
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) - INLINECODE28 - Fetch single entry
- INLINECODE29 - Create manual entry or start timer (omit --end for active tracking)
- INLINECODE30 - Patch existing entry
- INLINECODE31 - Requires confirmation (destructive)
- INLINECODE32 - Stop active timer
- INLINECODE33 - Restart finished entry (creates new)
- INLINECODE34 - Copy entry (resets export status)
- INLINECODE35 - List currently running timers
- INLINECODE36 - Recent unique working sets (last activity per project/activity combination)
- INLINECODE37 - Toggle export/lock status
Customers (customers)
- -
list - List customers (filter: visible, term) - INLINECODE40 - Fetch customer details
- INLINECODE41 - Create new customer
- INLINECODE42 - Update customer
- INLINECODE43 - Requires confirmation (cascades to projects/activities/timesheets)
- INLINECODE44 - Update custom fields
- INLINECODE45 - Manage customer-specific rates
Projects (projects)
- -
list - List projects (filter: customer, visible, date range) - INLINECODE48 - Fetch project
- INLINECODE49 - Create project (requires customer ID)
- INLINECODE50 - Update project
- INLINECODE51 - Requires confirmation (cascades to activities/timesheets)
- INLINECODE52 - Manage project rates
Activities (activities)
- -
list - List activities (filter: project, visible, global only) - INLINECODE55 - Fetch activity
- INLINECODE56 - Create activity (can be global or project-specific)
- INLINECODE57 - Update activity
- INLINECODE58 - Requires confirmation (cascades to timesheets)
- INLINECODE59 - Manage activity rates
Teams (teams)
- -
list, get, create, update, INLINECODE65 - INLINECODE66 - Add team member
- INLINECODE67 - Remove member
- INLINECODE68 - Grant customer access
- INLINECODE69 - Grant project access
- INLINECODE70 - Grant activity access
Users (users)
- -
list - List users (requires view_user permission) - INLINECODE73 - Current user info
- INLINECODE74 - User details
- INLINECODE75 - Create user (admin)
- INLINECODE76 - Update user
Invoices (invoices)
- -
list - List invoices (filter: date range, customer, status) - INLINECODE79 - Invoice details
System (system)
- -
ping - Test connectivity - INLINECODE82 - Kimai version info
- INLINECODE83 - Installed plugins
- INLINECODE84 - Timesheet configuration
- INLINECODE85 - Color codes
Safety & Boundaries
⚠️ DESTRUCTIVE OPERATIONS
- -
delete operations 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: Bearer header [1]. - Token is never logged or stored in CLI output.
- Use
--dry-run flag for testing (simulates API calls without executing).
Rate Limiting & Pagination:
- - API returns paginated results (default 50 items) [1].
- CLI auto-handles pagination for
list commands (fetches all pages or respects --limit). - Use
--page and --size for 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_WORKSPACE or ~/.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 table for human readability) - CSV (
--format csv for 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
CODEBLOCK3
List and export non-exported hours
CODEBLOCK4
Update custom fields (meta)
CODEBLOCK5
Create team and assign resources
CODEBLOCK6
Error Handling
Common HTTP codes:
- -
200 - Success - INLINECODE98 - Created
- INLINECODE99 - No content (successful delete)
- INLINECODE100 - Bad request (validation error, missing fields)
- INLINECODE101 - Unauthorized (invalid/expired token)
- INLINECODE102 - Forbidden (insufficient permissions)
- INLINECODE103 - Not found (invalid ID)
- INLINECODE104 - 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:
CODEBLOCK7
Test API connectivity:
CODEBLOCK8
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)
Kimai 时间追踪技能
Kimai 时间追踪软件的完整 API 集成。支持对工时表、项目、客户、活动、团队、发票和系统配置的全面控制。
使用时机
当用户提出以下请求时激活此技能:
- - 开始/停止/重新开始时间追踪(计时器)
- 列出、筛选或导出工时表
- 管理客户、项目或活动
- 创建发票或导出数据
- 管理任务(用户、团队、费率)
- 查询系统状态(版本、插件、配置)
激活触发词:
- - 关键词:kimai、zeiterfassung、timesheet、timer、stunden、erfasse Zeit、starte Tracking、Projekt anlegen、Rechnung erstellen
- 开始追踪项目X
- 显示我上周的工时表
- 在Kimai中创建新客户
- 将工时表导出为CSV
- 列出所有活跃计时器
- 停止当前时间追踪
以下情况请勿激活:
- - 一般时间问题(现在几点了?)
- 其他时间追踪工具(Toggl、Clockify等)
- 不涉及Kimai的日历/日程安排
环境设置
必需的环境变量:
- - KIMAIBASEURL - Kimai实例的完整URL(例如 https://kimai.example.com)
- KIMAIAPITOKEN - 用于身份验证的Bearer令牌
可选:
- - KIMAI_WORKSPACE - 导出/临时文件的路径(默认为 ~/.openclaw/workspace/kimai)
所需API权限取决于操作:
- - viewowntimesheet、createowntimesheet、editowntimesheet、deleteowntimesheet
- viewothertimesheet(用于查看其他用户的记录)
- viewcustomer、editcustomer、deletecustomer
- viewproject、editproject、deleteproject
- viewactivity、editactivity、deleteactivity
- viewteam、editteam、createteam、deleteteam
- viewinvoice(用于发票操作)
- view_user(用于用户管理)
兼容性: 需要启用REST API的Kimai 2.x版本。需要互联网访问。支持Linux/macOS。
工作流程
1. 快速时间追踪
bash
列出最近活动(查找项目/活动ID)
./scripts/kimai_cli.py timesheets recent
开始追踪
./scripts/kimai_cli.py timesheets start --project 1 --activity 5 --description 实现API
检查活跃计时器
./scripts/kimai_cli.py timesheets active
停止追踪
./scripts/kimai_cli.py timesheets stop --id 123
2. 数据管理工作流程
bash
创建客户 → 项目 → 活动层级
./scripts/kimai_cli.py customers create --name Acme Corp --country DE --currency EUR --timezone Europe/Berlin
./scripts/kimai_cli.py projects create --name 网站改版 --customer 1
./scripts/kimai_cli.py activities create --name 开发 --project 1
使用筛选条件列出
./scripts/kimai_cli.py timesheets list --customer 1 --begin 2024-01-01T00:00:00 --exported 0
3. 导出/发票工作流程
bash
将工时表标记为已导出(锁定状态)
./scripts/kimai_cli.py timesheets export --id 123
列出发票
./scripts/kimai_cli.py invoices list --status pending --begin 2024-01-01T00:00:00
CLI工具参考
所有操作均使用 scripts/kimai_cli.py。结构遵循API端点:
工时表(timesheets)
- - list - 列出记录(支持分页、筛选条件:用户、客户、项目、活动、标签、日期范围、导出状态)
- get - 获取单条记录
- create - 创建手动记录或启动计时器(省略--end参数可进行活跃追踪)
- update - 更新现有记录
- delete - 需要确认(不可逆操作)
- stop - 停止活跃计时器
- restart - 重新开始已完成的记录(创建新记录)
- duplicate - 复制记录(重置导出状态)
- active - 列出当前正在运行的计时器
- recent - 最近唯一工作集(每个项目/活动组合的最后活动)
- export - 切换导出/锁定状态
客户(customers)
- - list - 列出客户(筛选条件:可见性、关键词)
- get - 获取客户详情
- create - 创建新客户
- update - 更新客户
- delete - 需要确认(级联删除项目/活动/工时表)
- meta - 更新自定义字段
- rates - 管理客户特定费率
项目(projects)
- - list - 列出项目(筛选条件:客户、可见性、日期范围)
- get - 获取项目
- create - 创建项目(需要客户ID)
- update - 更新项目
- delete - 需要确认(级联删除活动/工时表)
- rates - 管理项目费率
活动(activities)
- - list - 列出活动(筛选条件:项目、可见性、仅全局)
- get - 获取活动
- create - 创建活动(可以是全局或项目特定)
- update - 更新活动
- delete - 需要确认(级联删除工时表)
- rates - 管理活动费率
团队(teams)
- - list、get、create、update、delete
- member-add - 添加团队成员
- member-remove - 移除成员
- grant-customer - 授予客户访问权限
- grant-project - 授予项目访问权限
- grant-activity - 授予活动访问权限
用户(users)
- - list - 列出用户(需要view_user权限)
- me - 当前用户信息
- get - 用户详情
- create - 创建用户(管理员)
- update - 更新用户
发票(invoices)
- - list - 列出发票(筛选条件:日期范围、客户、状态)
- get - 发票详情
系统(system)
- - ping - 测试连接
- version - Kimai版本信息
- plugins - 已安装插件
- config - 工时表配置
- colors - 颜色代码
安全与边界
⚠️ 不可逆操作
- - 对客户、项目、活动、工时表、团队或标签的 delete 操作需要用户明确确认。
- 删除客户会级联删除所有关联的项目、活动和工时表 [1]。
- 删除项目会级联删除活动和工时表 [1]。
- CLI将显示受影响数据的预览,并要求输入yes确认。
API安全:
- - API令牌通过 Authorization: Bearer 标头传递 [1]。
- 令牌不会记录或存储在CLI输出中。
- 使用 --dry-run 标志进行测试(模拟API调用而不实际执行)。
速率限制与分页:
- - API返回分页结果(默认50条)[1]。
- CLI自动处理 list 命令的分页(获取所有页面或遵守 --limit 限制)。
- 使用 --page 和 --size 进行手动分页控制。
数据隐私:
- - 工时表数据可能包含敏感信息。
- 导出文件保存到工作区,权限受限(600)。
- 分享调试输出时,请对个人数据(电子邮件、姓名)进行脱敏处理。
工作区安全:
- - 所有文件导出(CSV、JSON)默认保存到 KIMAI_WORKSPACE 或 ~/.openclaw/workspace