Playground · Build · 2026
A 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.
Role
Designer · Engineer · Solo Maintainer
Timeline
Ongoing — first release April 2026
Team
1 person
Scope
CLI plugin, bidirectional sync, markdown archive
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. The end-of-day reflection — the actual point — happens nowhere.
The deeper problem: every one of these tools holds my data hostage. Five years of Notion notes, gone if I cancel. Todoist closure rate, locked behind an export button.
I wanted my day to live in plain markdown files I could grep, and my schedule to round-trip through services I already use, not be replaced by a fourth tool that wants to be the centre.
What it does
Nine commands. They cover the day in three modes — pull, push, two-way.
/plan-todayreads tomorrow's calendar, today's Todoist tasks, and yesterday's carry-forwards. Writes a time-blocked markdown file with09:00–09:30 — Team standuplines and- [ ]checkboxes.- I edit
today.mdby hand. Move events. Reorder tasks. Add notes. Strike things through. /sync-todaypushes hand-edits back. Idempotent — synced lines pick up(todoist:8123)or(gcal:eventId)suffixes so re-running is safe./quick-add Call dentist tomorrow 4pm P2 #Personal @health remind me 30m beforeparses natural language into a Todoist task with project, label, due-time, priority, and a relative reminder./review-dayat night marks done tasks complete in Todoist, asks me a reflection question, archivestoday.mdtodays/2026-05-08.md, and clears the working file.
The state of the day is always one file. The history is one folder of files. The integrations are reversible.
How it's built
Claude Code plugin convention — a top-level commands/ folder with one markdown file per slash command. Each command file defines the prompt, the tool calls, and the post-conditions.
The Todoist API turned out to be the only real engineering challenge. The published @doist/todoist-mcp npm package targets v2 — which Todoist deprecated. Reminders aren't in REST v1 at all; you reach them via POST /api/v1/sync with a reminder_add command. I curl the v1 endpoints directly from inside the plugin commands. Documented this in the plugin's CLAUDE.md so future-me doesn't waste a second weekend on it.
Google Calendar uses Claude's built-in connector — no separate API token. If the connector isn't active, calendar steps silently no-op with a warning. Reminders silently no-op on free Todoist. Both are documented, neither is a surprise.
What it isn't
This is not a competitor to Notion or Reclaim or Motion. It does not have a UI. It runs in a terminal as part of Claude Code. The audience is people who already live in Claude Code and want one less app on their dock.
It also is not a "second brain" — there's no global note search, no backlinks, no graph view. The point is to keep the day shallow and reversible, not to build another knowledge system.
What's next
Three open features I plan to add before calling v1 done:
- Energy/mood tracking — five-point scale at end of day, plotted weekly.
- Weekly reviews that actually look at the data — not just aggregate stats but a
/review-weekthat surfaces patterns ("you missed every standup this week because you scheduled focus time at 9am"). - Carry-forward intelligence — when an item carries forward three times, the plugin should ask why instead of silently moving it again.
The plugin is open-source. If something here is useful to you, fork it.