Awesome-openclaw-skills timesheet
Track time, manage projects and tasks using timesheet.io CLI
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/timesheet" ~/.claude/skills/sundial-org-awesome-openclaw-skills-timesheet && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/timesheet" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-timesheet && rm -rf "$T"
manifest:
skills/timesheet/SKILL.mdsource content
Timesheet CLI Skill
Control timesheet.io time tracking from the command line. Use
--json flag for all commands to get structured output.
Authentication
Check auth status before using other commands:
timesheet auth status --json
If not authenticated, guide the user to run:
timesheet auth login
Or for automation, set an API key:
export TIMESHEET_API_KEY=ts_your.apikey
Timer Operations
Start a Timer
# List projects first to get project ID timesheet projects list --json # Start timer for a project timesheet timer start <project-id>
Check Timer Status
timesheet timer status --json
Returns: status (running/paused/stopped), project name, duration, start time.
Control Timer
timesheet timer pause timesheet timer resume timesheet timer stop # Creates a task from the timer
Update Running Timer
timesheet timer update --description "Working on feature X" timesheet timer update --billable
Project Management
List Projects
timesheet projects list --json
Create Project
timesheet projects create "Project Name" --json timesheet projects create "Client Project" --billable --json
Show/Update/Delete
timesheet projects show <id> --json timesheet projects update <id> --title "New Name" timesheet projects delete <id>
Task Management
List Tasks
timesheet tasks list --json # Recent tasks timesheet tasks list --today --json # Today's tasks timesheet tasks list --this-week --json
Create Task Manually
timesheet tasks create -p <project-id> -s "2024-01-15 09:00" -e "2024-01-15 17:00" --json timesheet tasks create -p <project-id> -s "09:00" -e "17:00" -d "Task description" --json
Update Task
timesheet tasks update <id> --description "Updated description" timesheet tasks update <id> --billable timesheet tasks update <id> --start "10:00" --end "12:00"
Delete Task
timesheet tasks delete <id>
Teams & Tags
Teams
timesheet teams list --json
Tags
timesheet tags list --json timesheet tags create "Urgent" --color 1 timesheet tags delete <id>
Reports
Time Summary
timesheet reports summary --today --json timesheet reports summary --this-week --json timesheet reports summary --this-month --json timesheet reports summary --from 2024-01-01 --to 2024-01-31 --json
Export Data
timesheet reports export -f xlsx -s 2024-01-01 -e 2024-01-31 timesheet reports export -f csv --this-month
Profile & Config
timesheet profile show --json timesheet profile settings --json timesheet config show timesheet config set defaultProjectId <id>
Common Workflows
Log Time for Current Work
- Check if timer is running:
timesheet timer status --json - If not, start timer:
timesheet timer start <project-id> - When done, stop timer:
timesheet timer stop
Quick Time Entry
# Create a completed task directly timesheet tasks create -p <project-id> -s "09:00" -e "12:00" -d "Morning standup and dev work" --json
Find Project by Name
timesheet projects list --json | jq '.[] | select(.title | contains("ProjectName"))'
Error Handling
Exit codes:
- 0: Success
- 1: General error
- 2: Usage error (invalid arguments)
- 3: Authentication error - run
timesheet auth login - 4: API error
- 5: Rate limit exceeded - wait and retry
- 6: Network error
Tips
- Always use
for parsing output programmatically--json - Use
or--quiet
to suppress non-essential output-q - Set
in config to skip project selection for timerdefaultProjectId - Pipe-friendly output is automatic when not in a terminal