Skip to content

Lazyplanner v1.0.0

Choose a tag to compare

@littekge littekge released this 19 Jul 03:22

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 rerun

You'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