By mklute101
Calendar-as-source-of-truth task scheduling for Claude Code — onboarding, weekly planning, daily brief, and quick blocks for the calendrome MCP
Quick calendar block — create a Google Calendar event starting now for ad-hoc work. Use when the user runs `/calendrome:block`, says "block 30 minutes for X", "block an hour", "I'm about to work on X", "next hour on Y", or wants to capture ad-hoc time without leaving the conversation. Applies the user's configured client prefixes automatically when the activity matches a project name.
Push the user's calendrome timesheet to Harvest. Use when the user runs `/calendrome:harvest-push`, says "push my timesheet", "send hours to Harvest", "submit timesheet", "push the week to Harvest", or asks about logging Harvest hours from calendrome. Thin wrapper over the existing `mcp__calendrome__harvest_push_timesheet` MCP tool with date-range parsing and a dry-run preview.
First-run guided setup for calendrome and re-onboarding workflows. Use when the user runs `/calendrome:onboard`, says they want to "set up calendrome", "configure calendrome", "add a new client to calendrome", "reset calendrome", or wants to "demo calendrome to someone". Walks through MCP install, connection-first discovery (Jira/Harvest/Google Calendar), category/project/budget setup, and writes the user's `.claude/calendrome.local.md` settings file.
Spin up a throwaway calendrome instance (alt DB + alt port) for testing or demos. Use when the user runs `/calendrome:sandbox`, says they want to "test calendrome safely", "play around without breaking my data", "demo calendrome", or "show calendrome to someone". Optional `demo` argument seeds rich realistic-looking sample data for screen-shares.
Show calendrome status — projects, weekly budgets, active task count, and available commands. Use when the user runs `/calendrome:status`, says "show calendrome status", "what's calendrome doing", "calendrome dashboard", or asks about budget/projects/tasks state. Also serves as the help/dashboard entry point after onboarding.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A local, project-based task scheduling engine exposed as an MCP server. Designed to replace Reclaim.ai with a simpler model: you (via Claude planner skills) decide what goes where, calendrome tracks the tasks, budgets, habits, and time.
npm install
npm run build
npm test # 110+ tests, all should pass
# Default DB path: ./calendrome.db (created on first run)
npm start
# Or specify a custom DB path:
CALENDROME_DB=~/my-tasks.db npm start
The server uses stdio transport — it reads JSON-RPC from stdin and writes to stdout. This is the standard MCP protocol.
In your Claude Code settings (~/.claude/settings.json or project-level
.claude/settings.json), add:
{
"mcpServers": {
"calendrome": {
"command": "node",
"args": ["/path/to/calendrome/dist/src/mcp/server.js"],
"env": {
"CALENDROME_DB": "/path/to/calendrome.db"
}
}
}
}
Restart Claude Code. You should see calendrome tools in your tool list.
With both calendrome and Google Calendar MCP servers connected, plus a Jira MCP:
Set up projects (one-time):
create_project { id: "acme", name: "Acme Corp", prefix: "ACME", weekly_budget_minutes: 1200 }
Pull Jira tickets → create tasks:
create_task { project_id: "acme", title: "ACME-123: Fix login bug", priority: "HIGH", duration_minutes: 120 }
Check budgets:
get_all_budgets { week_start: "2026-04-13" }
→ ACME: 0h spent / 20h allocated
Place on calendar (via Google Calendar MCP):
# Create the calendar event
create_event { summary: "ACME Fix login bug", start: "2026-04-14T09:00:00", end: "2026-04-14T11:00:00", calendarId: "primary" }
# Link the event to the task
update_task { id: 1, calendar_event_id: "evt-abc123" }
Track time (when you start working):
start_task { id: 1 }
... work ...
stop_task { id: 1 }
Export timesheet:
export_timesheet { from: "2026-04-13", to: "2026-04-19", format: "markdown" }
create_project — create a project with prefix and weekly budget. category_id defaults to work.list_projects — list projects (filter by active, by category_id for the work/personal split)update_project — update project settings (including category_id)Every project belongs to a category (work, personal, …) that owns a default
scheduling window. The GUI defaults to the work view so casual screen-shares
never leak personal stuff. Availability overrides are the frictionless answer
to "Tuesday night I'm not doing anything" — one MCP call from a single
sentence to Claude.
list_categories — all categories with their default windowscreate_category — define a new category with a windowupdate_category — change the window or renameblock_time — reserve a slot so the planner won't schedule into itopen_time — carve out an extra slot inside a normally-blocked windowlist_availability — overrides intersecting a date rangedelete_availability / clear_availability — remove individually or by rangecreate_task — create a task in a projectupdate_task — update task fieldslist_tasks — list with filters (project, status, due_before)search_tasks — full-text search titles and notesstart_task — start the timerstop_task — stop the timercomplete_task — mark doneinbox_add — quick captureinbox_list — unprocessed itemsinbox_next — oldest unprocessedinbox_process — convert to task in a projectcreate_habit — recurring time blocklist_habits — active habitsgenerate_habit_instances — materialize instances for a date rangeget_project_budget — allocated/spent/scheduled/remaining for one projectget_all_budgets — same, for every active projectplace_task — create a calendar event for a task (requires calendar client)unplace_task — remove the calendar eventexport_timesheet — CSV or markdown, with optional totalsget_timesheet_summary — structured data for programmatic consumersget_week_layout — tasks + habits + events for a date range, by daynpx claudepluginhub mklute101/calendrome --plugin calendromeMemory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth