Natural Language
Tycana’s parser extracts dates, times, recurrence, projects, tags, and estimates from plain text. Everything it recognizes is stripped from the title automatically.
tycana add "Renew staging cert tomorrow 2pm @infra #urgent ~2h"
# title: Renew staging cert
# due: tomorrow at 2:00 PM
# project: infra
# tags: urgent
# estimate: 2h
Dates
| Pattern | Example |
|---|---|
today, tomorrow | Due today or tomorrow |
| Day names | friday, tuesday, thurs |
next + day | next monday, next friday |
in N days/weeks/months | in 3 days, in 2 weeks |
end of week, end of month | Last day of current week/month |
this week, next week | Start of this/next week |
| Month + day | march 5, jan 15 |
| ISO format | 2026-03-05 |
| US format | 03/05/2026, 03/05 |
Keywords like due, by, and on are optional — friday and due friday both work.
Times
Adding a time makes the task appear as a calendar event. Without a time, it’s a deadline.
| Pattern | Example |
|---|---|
| 12-hour | 2pm, 3:30pm, 10am |
| 24-hour | 14:00, 09:30 |
With at | at 2pm, at 14:00 |
| Time words | noon, tonight, this morning, this afternoon, this evening |
| Day + time | friday 2pm, next monday 9am |
| ISO datetime | 2026-03-05 14:00 |
Recurrence
Recurrence patterns create a template that generates instances automatically. See Recurring Tasks for the full workflow.
Starting with a keyword
When the first word is a frequency keyword, the rest becomes the task title.
| Pattern | Creates |
|---|---|
Daily standup | Recurring daily |
Weekly review | Recurring weekly |
Monthly report | Recurring monthly |
Biweekly sync | Recurring every 2 weeks |
The keyword must be first. “Send daily report” creates a one-time task — use “Daily send report” or the
everysyntax below.
Using every
| Pattern | Creates |
|---|---|
every day | Daily |
every weekday | Monday through Friday |
every friday | Weekly on Friday |
every 2 weeks | Every other week |
every month | Monthly |
every 3 months | Quarterly |
Recurrence and time combine naturally:
tycana add "Standup every weekday at 9am"
tycana add "Team sync every monday 2pm"
Metadata
| Syntax | Effect | Example |
|---|---|---|
@name | Sets project | @infra, @ops |
#name | Adds tag | #urgent, #compliance |
~duration | Sets estimate | ~2h, ~30m |
Multiple tags work: #urgent #p1. Estimates accept m (minutes), h (hours), and d (days).
Querying
tycana list uses the same syntax to filter instead of set.
tycana list "overdue @infra" # Overdue tasks in infra project
tycana list "next 3 days" # Due within 3 days
tycana list "@ops #urgent" # Project + tag filter
tycana list "past week" # Tasks from the last 7 days
Status keywords: overdue, completed, done, pending.
Range patterns: next N days, past N days, until friday, this week, next week.
Projects and tags filter the same way as in add — @project and #tag.