Lazyplanner v1.0.0
The first stable release. LazyPlanner is a keyboard-first terminal TUI (lazygit-style) for managing your calendar and todos, with offline-first two-way CalDAV sync — built for NextCloud, written in Go.
Highlights
- Two-way CalDAV sync — offline-first: the app opens instantly from a local cache and works without network, syncing changes both ways in the background or on demand. ETag-based and conflict-safe: it never silently overwrites — a true conflict keeps both versions and flags it.
- Deep subtask hierarchies — arbitrary-depth nesting rendered as a collapsible tree and navigated like a file explorer; a "folder" is just a task with children.
- Calendar views — month grid plus week/day hourly time-grids, showing events and dated tasks; drill into a day for 2D spatial navigation.
- Recurring events & tasks — full "this occurrence / this and future / all" editing for events, and NextCloud-style advancing for repeating todos.
- Grab mode, quick-add, yank/paste, undo — vim-flavored single-key actions and chords, a smart-parsed quick-add line, and a : command mode.
- A well-behaved CalDAV citizen — never drops or mangles iCal properties it doesn't understand (the "iron rule"), detects and respects read-only calendars, and renders exact truecolor calendar colors that match NextCloud.
Platforms
- Linux is the primary target, including a Raspberry Pi dedicated-terminal / kiosk setup (arm64 / armv7 / armv6 cross-builds via make cross).
- Windows is a secondary compatibility build.
Install
Requires Go 1.26.4+ (dependencies are vendored, so no network is needed to build):
git clone https://github.com/littekge/LazyPlanner
cd LazyPlanner
make build # or: go build -o lazyplanner ./cmd/lazyplanner
./lazyplanner # first run writes a starter config; fill in [server] and rerunYou'll need a NextCloud CalDAV server and a NextCloud app password (Settings → Security). See the README (https://github.com/littekge/LazyPlanner#readme) for configuration, keybindings,
and the Raspberry Pi kiosk guide.
Quality
Ships after an extensive hardening effort — 17 adversarial audit passes over p-loss, and concurrency, each finding fixed repro-first with a permanentregression test (see docs/audit/).
License: MIT
Full Changelog: https://github.com/littekge/LazyPlanner/commits/v1.0.0