Quick add — one line becomes a task

Type “call the county about permits tomorrow 9am !high” and a receipt underneath says in plain words exactly what Enter will do before it does it.

What it is

A single input above the list that parses days, times, !priority and “every …” recurrence live. Anything the parser does not recognise stays in the title untouched. The receipt chips read like sentences: 'Due Thu, Sep 3, 9:00 AM', 'repeats every week', 'high priority', or 'no date — goes on the list'.

Also called: natural language task · type a task · quick capture · one line to-do

See it
Quick add — one line becomes a task
Area
Operations
Group
Tasks & reminders
System
Task Hub
Solves
2 named problems
01parseQuickAdd eats !urgent/!high/!medium/!low, then 'every day|weekday|week|2 weeks|other week|month|<weekday>', then times (9am, 9:30pm, at 14:00, noon), then days (today, tonight, tomorrow, next week, weekday names, 'July 4', 7/4).
02A bare time already past today rolls to tomorrow; an explicitly stated past moment is flagged, never silently moved.
03A day with no time is NOT given a default hour — it routes into the composer's pick-the-time step instead.
The quick-add bar with a sentence typed and the receipt chips beneath it. QuickAddBar in TaskHub.tsx. Sample data — no customer information appears here.
How it works
  1. 1parseQuickAdd eats !urgent/!high/!medium/!low, then 'every day|weekday|week|2 weeks|other week|month|<weekday>', then times (9am, 9:30pm, at 14:00, noon), then days (today, tonight, tomorrow, next week, weekday names, 'July 4', 7/4).
  2. 2A bare time already past today rolls to tomorrow; an explicitly stated past moment is flagged, never silently moved.
  3. 3A day with no time is NOT given a default hour — it routes into the composer's pick-the-time step instead.
  4. 4Enter posts to /api/tasks with source 'quick_add' and in-app reminders.
Why we built it

The parser file states the standing rules it honours: 'The past is unselectable' and 'No invented times: a day without a time doesn't get a default hour'. The one exception is 'tonight' at 6pm, because the user said it themselves. The parser is deliberately small: 'a parser that guesses beyond its vocabulary silently eats words people meant.'

The problem
  • A modal for every quick note is friction
  • Natural-language parsers that guess wrong lose words
Sound familiar?
What you get
A task in one line and one keystroke
You see what it understood before you commit

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →