Weekly goal tracker with Slack sync and calendar integration
Build a personal weekly goals and work-item tracker. Purpose. Maintain one durable library of work items — OKRs, Projects, and Tasks — that can be attached to any number of weeks without being copied. Weekly planning state and weekly updates stay tied to their week; item type, subtasks, status, and an append-only progress history stay attached to the item itself. This lets me plan a week, drop work, pick it back up weeks later with its real current standing, and report across the portfolio. Storage. Keep everything in a SQLite database on a durable named volume. One step owns the schema, migrations, and all mutations as the exclusive writer; other steps read from it. Migrations must be idempotent so existing data survives redeploys. Steps (high level). Goals API — a space-private JSON route that is the single source of truth. It returns the current week, past weeks, the full item library, and candidate duplicate groups; and it accepts actions to create items, attach an existing item to a week (reopening it if it was done or dropped), record updates and progress, manage subtasks, change status/type, move or detach a week association, and merge two duplicate items transactionally so no week, update, progress event, or subtask is lost. Never auto-merge — only merge on explicit confirmation. Web UI — a space-private React board at its own route. Shows the current week's items, typeahead search over the library for attaching existing work, per-item controls for status/progress/subtasks/updates, a progress view showing weekly movement, and an item library view with duplicate review and counts by OKR/Project/Task. It should fetch from the API route rather than being fed by an upstream step. Start-of-week prompt — a scheduled step (Monday morning) that DMs me a nudge with a button to set a goal and a link to the board. Use Slack — or whatever chat tool your team uses. End-of-week prompt — a scheduled step (Friday afternoon) that reads the current week's open items and DMs me each one with an "add update" button. Chat gateway — a webhook route (protected with an unguessable external id) that receives interactive button clicks and modal submissions from the chat tool: open a "set goal" modal, open an "add update" modal, create items, log updates, and mark items done. When a newly created item looks like a continuation of an existing one, use an LLM to match it and offer a "make this a new item instead" override rather than silently merging. Calendar enrichment. Enrich each week with meetings, planned work blocks, and focus time from Google Calendar — or whichever calendar you use. Read-only. Connectors / external services. A chat tool for DMs and interactivity (I used Slack via a bot with chat:write, im:write, users:read.email), an LLM for item matching (I used Anthropic Claude Haiku; any model works), and a calendar API (Google Calendar). Keep the browser and API routes private to the space; only the chat callback route is external-id protected. Tools used: SQLite, Slack, Anthropic Claude, Google Calendar, 3B React/TypeScript
What this prompt builds
A personal productivity workflow that maintains a persistent library of work items (OKRs, projects, tasks) and tracks them across multiple weeks without duplication. Users plan weekly goals via Slack prompts, log unplanned work as it emerges, update progress at week's end, and review calendar time allocation between meetings and focused work. The system uses SQLite for durable storage, LLM-assisted duplicate detection, and integrates Slack notifications with Google Calendar enrichment to provide week-over-week visibility into how time is actually spent.
The problem
People juggling multiple projects often struggle to explain how much time each initiative actually consumes, especially when unplanned work constantly interrupts the week. Without a system that tracks work items persistently across weeks — distinguishing planned goals from stretch ambitions and ad-hoc tasks — it's nearly impossible to see patterns in time allocation or understand whether meetings are crowding out focus time. This workflow solves that by maintaining a durable library of OKRs, projects, and tasks that can be attached to any week without being copied or losing history. Users receive Slack prompts on Monday to log weekly goals (with the option to clone continuing projects) and on Friday to add updates and progress indicators; throughout the week they can log unplanned work as it arises. The system integrates with Google Calendar to calculate meeting load versus available work time, recognizing solo calendar blocks as planned focus periods, so users finally have a factual account of where their week actually went.
Solution and impact
The workflow delivers week-over-week visibility into time allocation and project continuity that spreadsheets and task lists cannot provide. By keeping a single source of truth for all work items and their progress history, users can drop a project mid-stream and pick it up weeks later with its real current standing intact — no re-creation, no lost context. The Slack integration and calendar enrichment surface concrete data on how much unplanned work disrupts the week and how much time meetings consume, empowering users to make informed decisions about capacity, priorities, and focus time. Teams and individuals who adopt this workflow gain the ability to report accurately on their portfolio, justify time investments, and spot patterns that guide better planning.
