No-Wait Scheduler
No-Wait Scheduler is a local-first Chrome extension that takes a list of tasks and turns it into a day plan (Gantt-style), lets me quickly edit it, and then exports it to calendar via .ics files.
Context
The bottleneck was not writing tasks down. The bottleneck was deciding where they go. Planning consumed energy before the work even started, and small trade-offs created decision fatigue. If the plan felt hard to create, the day started late.
I wanted a tool that makes a first draft automatically. The user should spend their energy on execution, not on arranging blocks on a calendar grid.
Discovery
Google Calendar solved storage and sync, but it did not solve planning. Dragging events around still required the same cognitive work: estimating duration, resolving overlaps, and choosing an order. When motivation is low, that friction is enough to abandon planning entirely.
The core insight was that a plan does not need to be perfect to be useful. It needs to exist. If the product can generate a reasonable first pass, the user can react and tweak instead of starting from scratch.
What I decided to build (and why)
I built a local-first Chrome extension with a tight loop: input tasks, generate a schedule, make small edits, export to calendar. The design goal was to keep the experience friction-light and private.
- Local-first by default: no accounts, no syncing, and no background storage for scratchpad behaviour
- Fast task input: multi-task entry designed for speed and low effort
- Instant schedule generation: a first draft plan the user can accept or adjust
- Small edits, not heavy planning: modal editing and simple controls for quick changes
- .ics export: per-task calendar files so the plan can live in the user’s calendar without building a calendar app
The product decision was to optimise for making planning feel lightweight. The tool acts like a planner assistant, not a system the user has to maintain.
Rejected alternatives
- Google Calendar only Good for storage and sync, but it still makes the user do the planning work from scratch.
- Paid Gantt tools Feature-rich, but expensive and heavier than what a day-planning scratchpad needs.
- Full web app with accounts Adds friction and overhead for a behaviour that is often spontaneous and low commitment.
- Persistent task storage Tempting, but it changes the product into a to-do system. The intended behaviour was disposable, generate-and-go planning.
What shipped
- Multi-task entry flow designed for speed
- Gantt-style schedule view showing the day plan at a glance
- Modal editing for quick adjustments to individual tasks
- Per-task .ics export for calendar import
- Theme switching to reduce visual fatigue and match user preference
- Keyboard shortcuts for fast iteration without leaving the flow
- Controls for overlaps and day window so schedules can be tightened or relaxed
Analytics: Events
-
reader_session_startedTracks intent and entry. This shows whether children are choosing to begin a session and which content is pulling them in. -
reader_session_completedTracks whether the read-along loop holds. This is the clearest indicator that the experience feels supportive rather than exhausting. -
reader_session_abandonedTracks where the session breaks. This helps distinguish content boredom from friction, pacing issues, or comprehension overload. -
reader_prompt_shownTracks how often comprehension support appears. This helps calibrate prompt frequency so the story is not interrupted too often. -
reader_prompt_answeredTracks engagement with comprehension. This can indicate whether prompts are at the right level and whether interaction increases abandonment or improves completion.
How I used these signals
- Start to completion rate by content to identify which stories and formats sustain attention.
- Abandon timing to tune pacing, prompt placement, and session length.
- Prompt answered rate to validate that prompts feel lightweight and supportive rather than test-like.
AI usage
AI helped with planning and edge-case thinking, especially around scheduling conflicts, duration handling, and export behaviour. It also helped draft runbooks for testing and write clear UX copy for empty states and error states so the product stays understandable when something goes wrong.
Next steps
- Improve scheduling heuristics for better default ordering and fewer awkward gaps
- Add templates for recurring planning patterns while keeping the product local-first
- Accessibility improvements including clearer focus states and better keyboard-only flows
- Polish the edit loop to make changes feel even faster and more reversible