Skip to main content

Practical CLI docs for real workflows

otta-cli

Automate otta.fi time tracking with repeatable commands, explicit auth modes, and script-safe output for pipelines.

Recommended Install

Homebrew tap is the primary distribution path for releases.

brew tap mekedron/tap
brew install mekedron/tap/otta-cli

Quick Command Set

Use these as first-run sanity checks or copy/paste seeds for automation.

otta auth login --username <username> --password <password>
otta status --format json
otta worktimes options --date 2026-02-20 --format json
otta worktimes list --date 2026-02-20 --format json
otta worktimes read --id <worktime-id> --format json
otta worktimes browse --from 2026-02-20 --to 2026-02-26 --format json
otta worktimes report --from 2026-02-01 --to 2026-02-28 --format csv
otta calendar overview --from 2026-02-01 --to 2026-02-28 --format json
otta absence browse --from 2026-02-01 --to 2026-02-28 --format json
otta absence options --format json
otta absence add --type <absence-type-id> --from 2026-02-20 --to 2026-02-20 --description "sick leave" --format json
otta absence read --id <absence-id> --format json
otta absence update --id <absence-id> --description "sick leave" --format json
otta absence delete --id <absence-id> --format json
otta absence comment --type sick --from 2026-02-20 --to 2026-02-20 --format json
otta holidays --from 2026-02-20 --to 2026-02-20 --worktimegroup <id> --format json
otta holidays read --from 2026-02-20 --to 2026-02-20 --worktimegroup <id> --format json

What This CLI Covers

Focused scope for daily time tracking tasks without hidden state.

Credential Modes

Use local config for interactive workflows or inject credentials with OTTA_CLI_* environment variables for Docker/CI.

Cache Separation

Only user-entered credentials are persisted in config. API-derived profile data is stored in a separate cache file.

Timesheet Operations

List/read/browse/report, inspect selectable options, and manage full worktime + absence CRUD flows with deterministic --format output.

Automation Friendly

Commands are designed for n8n and shell scripts with stable output envelopes and explicit error exits.

Read Next

Jump directly to the right docs section for your current task.