Portable offline CLI scheduler for Linux. Insert tasks with deadlines and estimated hours — kalender calculates daily time allocation and generates a schedule.
- Deadline-first scheduling — deadline-constrained tasks are allocated first, priority fills remaining time
- Single binary — no runtime dependencies, no network required
- Single JSON file — one file to back up, human-readable,
jq-friendly - Vacation blocking — block date ranges that recalculate the schedule and warn about deadline collisions
- Over-commitment warnings — tells you when you've committed more than you can deliver
# Build
make build
# Add tasks
kalender add --title "Write API docs" --estimate 12 --deadline 2026-03-01 --priority 2
kalender add --title "Review PR backlog" --estimate 4 --priority 3
# View today's plan
kalender
# Generate full schedule
kalender schedule
# Log progress
kalender log t_a3Bf 2.0
kalender done t_k8Mnkalender # Today's plan (default)
kalender add # Add a task
kalender list [--all] # List tasks
kalender schedule [--week] # Generate schedule
kalender status # Today's plan with progress
kalender done <id> # Mark task complete
kalender log <id> <hours> # Log hours worked
kalender edit <id> # Edit a task
kalender rm <id> # Cancel a task
kalender config # View/edit availability
kalender vacation # Manage blocked date ranges
kalender version # Print version
Data is stored at $XDG_DATA_HOME/kalender/data.json (default: ~/.local/share/kalender/data.json). Override with $KALENDER_DATA or --data <path>.
See docs/README.md for the full documentation index.
TBD