> tool
LIVEA Claude Code plugin that owns your day instead of your time
An open-source Claude Code plugin that turns Claude into a daily journal and scheduler. Bidirectional sync with Google Calendar and Todoist — pull the day in, edit in plain markdown, push back. Asks for an end-of-day reflection. Archives every day in markdown so the user owns the data forever.
Why this exists
Every productivity app I've used solves the same shaped problem in subtly worse ways. Notion is a database that thinks it's a journal. Todoist is a list that doesn't know what's on my calendar. Google Calendar knows the events but not what I plan to do between them. And the end-of-day reflection — the part that actually changes how tomorrow goes — happens nowhere.
The deeper problem is ownership. Every one of those tools holds my data hostage: five years of Notion notes gone the day I stop paying, a Todoist history locked behind an export button. I wanted my day to live in plain markdown files I can grep, and my schedule to round-trip through the services I already use — not be replaced by a fourth app that wants to be the centre of my life.
So I didn't build an app. I built a Claude Code plugin: it doesn't add an icon to my dock, it teaches the agent I already work in to run my day.
What it does
Nine slash commands cover the day in three modes — pull the day in, edit it by hand, push it back. The state of the day is always one file (today.md); the history is one folder of dated files; every integration is reversible.
| Command | Mode | What it does |
|---|---|---|
/plan-today | pull | Reads tomorrow's calendar, today's Todoist, and yesterday's carry-forwards into a time-blocked today.md (09:00–09:30 — Standup, - [ ] checkboxes). |
(edit by hand) | edit | Move events, reorder tasks, add notes, strike things through — in plain markdown, in any editor. |
/sync-today | push | Pushes the hand-edits back to Calendar and Todoist. Idempotent — synced lines pick up (todoist:8123) / (gcal:eventId) suffixes, so re-running never duplicates. |
/quick-add | push | Parses natural language (Call dentist tomorrow 4pm P2 #Personal remind me 30m before) into a Todoist task with project, label, due-time, priority, and reminder. |
/review-day | two-way | Marks done tasks complete, asks a reflection question, archives today.md to days/2026-05-08.md, and clears the working file for tomorrow. |
A day, in the terminal:
$ /plan-today
→ pulling calendar · Todoist · yesterday's carry-forwards
✔ wrote today.md — 6 blocks, 4 tasks
# ...edit today.md by hand through the day...
$ /review-day
? how did today go (1–5)? › 4
✔ 3 tasks closed in Todoist · archived days/2026-05-08.md
The choice underneath all of it: the markdown file is the working surface, but the services I already trust (Calendar, Todoist) stay the system of record — so the plugin is a fast, scriptable lens onto my day, not a new place my data gets trapped. It's deliberately not a second brain: no global search, no backlinks, no graph. The point is to keep the day shallow, reversible, and owned in plain text.
How it's built
It follows the Claude Code plugin convention — a top-level commands/ folder, one markdown file per slash command, each defining the prompt, the tool calls it's allowed to make, and the post-conditions that make it safe to re-run.
The Todoist API was the only real engineering. The published @doist/todoist-mcp package targets v2, which Todoist has deprecated; reminders aren't in the REST v1 surface at all — you reach them through POST /api/v1/sync with a reminder_add command. So the plugin curls the v1 endpoints directly, and I wrote the whole dead-end into the plugin's CLAUDE.md so future-me doesn't lose a second weekend to it.
Google Calendar rides on Claude's built-in connector — no separate token to manage. If the connector isn't active, calendar steps silently no-op with a warning; reminders no-op on free Todoist. Both are documented, neither is a surprise. The plugin is open-source — if it's useful to you, fork it.