Smart Parsing
Use quick add to add task using natural language and let TaskTrove turn it into dates, times, recurring schedules, projects, labels, priorities, estimates, and more. This page lists everything the parser recognizes. Unless noted, examples assume “today” as the reference date and pick the next occurrence (e.g., typing “monday” on a Monday schedules it for next Monday).
TIP
Smart parsing is a work in progress—feedback and suggestions are welcome. Please share them on this discussion thread.
Demo
Experiment with the TaskTrove smart parsing. The demo parser matches any allowed projects, labels, and assignees (shown under the form).
▸ Smart Parsing Demo (click to collapse)
Parsed Output
| Type | Source / Match | Parsed Value |
|---|---|---|
title | cleaned input | pick up snacks |
project | #party | party |
labels | — | — |
assignee | @alex | alex |
priority | !! | 2 |
date/time | · 6pm | 11/21/2025 · 18:00 |
recurring | every fri | RRULE:FREQ=WEEKLY;BYDAY=FR |
estimate | ~30m | 30min |
Dates
- Relative days:
today,tod,tomorrow,tom,tmr,yesterday - Relative periods:
next week/month/year,last week/month/year - Offsets:
in 3 days|weeks|months|years; shorthandsin 3d,in 1w,in 2mo,in 1y; singlesin a day/week/month/year;in an hour - Weekdays:
monday … sunday,mon … sun; alsothis friday,next tuesday(if today is that day, it chooses the following week) - Numeric dates:
1/15,01/15/2025,15/1,15/1/2025(rejects impossible dates; picks US vs EU sensibly) - Month names:
Jan 15,15 Jan,January 15, 2025,March 3rd(ordinals allowed) - Defaults: Missing years default to the current year. Day-based results are at start-of-day; time-based offsets keep the exact time.
Times
- 12-hour:
3PM,3 PM,9:30 AM - 24-hour:
14:00,09:30,at 14:30,at 9AM - Keywords:
noon(12:00),midnight(00:00) - Relative minutes/hours:
in 5min,in 5 min,in 5m,in 4h30min,in 2h 15m,in 30sec
Recurring schedules
- Simple repeats:
daily,every day,weekly,monthly,yearly,hourly,quarterly(every 3 months) - Custom intervals:
every 3 days|weeks|months|years|hours; workdays only:every 3 workdays - Weekday-based:
every monday,ev fri; rangesevery mon-fri,every weekend,every weekday/workday; listsevery mon, fri,ev mon, wed, fri - Nth weekday:
every 2nd Monday,every 3rd friday,every 4th Wednesday; optional monthevery 2nd Monday jan; with timeevery 3rd friday 8pm - "Every other …"
every other day/week/month/year,every other friday - Specific calendar days:
every 27,ev 7, listsevery 2, every 15, every 27; month+dayevery jan 27; multi-month listevery 14 jan, 14 apr, 15 jun, 15 sep - Last/first positions:
every last day,every last friday,ev last mon,every first workday,every last workday - Time-of-day & hourly:
every morning(9am),every afternoon(12pm),every evening(7pm),every night(10pm);every hour,every 12 hours; combosev mon, fri at 20:00
Tip: You can combine a one-time date and a repeat in the same line; the parser keeps both when they don’t overlap (e.g., "ev 2 weeks july 19th" -> recurring every 2 weeks starting on July 19th).
Projects
#project-name- Picks the longest matching name when prefixes overlap (e.g.,
#Work Taskspreferred over#Work) - Handles unicode:
完成 #项目A
Labels
@label-name- Tag with multiple labels:
@labelA @labelB - Longest match wins when names share prefixes
- Supports unicode:
安排会议 @标签A
Priority
- Shortcut tokens:
p1,p2,p3,p4 - Exclamation style:
!→ p3,!!→ p2,!!!→ p1
Time estimates
~30m,~45m,~30min- Hours:
~1h,~2h,~8h - Mixed:
~1h30m,~2h15m,~3h45m
Assignees (Pro)
- Assign with
@plus a username:@alex,@jane.doe - Assign to multiple users:
@alex @jane.doe
Quick checklist
- Use
#for projects,@for labels and assignees,p1–p4or!for priority,~for estimates. - Dates and times can be combined:
review next tue at 3pm. - Repeats stack with dates when they describe different parts:
kickoff tomorrow every 2 weeks.