Opening a date picker every time you write down a task gets old fast. In Tabple’s quick add, you can put the date right in the title. Type “meeting tomorrow at 3” and the due time becomes tomorrow at 3 p.m., with “meeting” as the title. Korean (“내일 3시 회의”) and Japanese (“明日3時に会議”) are read by the same rules. Here’s where it works and how it reads what you type, plus how I stopped the web, desktop and mobile apps from reading the same sentence three different ways.
Where it works
The quickest way in is the quick add window. On the web, press ⌘⇧Y (Ctrl+Shift+Y on Windows) from any screen; in the desktop app, press ⌘⇧N (Ctrl+Shift+N). The same rules apply when you type into “New task” under a kanban column, the list view, the Eisenhower matrix or the weekly calendar, and in quick add on the desktop and mobile apps. Whatever is read as a date shows up as an “Auto-detected” chip while you type and is taken out of the title. If it guessed wrong, press “Dismiss” next to the chip. Detection turns off for that entry and the title stays exactly as you wrote it.
What it reads
Days. “today,” “tomorrow” (or “tmr”), “the day after tomorrow,” a weekday, “this Friday,” “next Monday.” “submit by friday” becomes October 23 with the title “submit.”
Days from now. “in 3 days” is three days from today, October 20. “in 2 weeks,” “in 3 months,” “3 days later” and “a week from now” work too, and “in 30 minutes” or “in an hour” also sets the time.
Dates. “Oct 20,” “20 October,” “10/20,” “on the 20th,” “2026-11-03,” “Nov 3, 2026.”
Times. “3pm,” “3:30,” “15:00,” “noon,” “midnight,” “7 in the evening,” “11 at night,” “3 o’clock.” If you leave out a.m. or p.m., the rule below applies.
Words around the date. A leading “by,” “on” or “due” is read and removed along with the date, so the title of “report due friday” is just “report.”
Ranges. The desktop and mobile apps take “Oct 20-22” and “3-5pm” as a start and an end. The web app doesn’t squeeze a range into one due date; it leaves the range in the title.
In the quick add window you can add a start reminder too: “remind me 30 min before,” “reminder 1 hour before,” “remind me a day before,” “15 min reminder” or “reminder at start.” A bare “reminder” isn’t read, because it’s often part of a title, as in “reminder app redesign.” A reminder phrase also stays in the title when what follows it is the thing you’re building, as in “1 hour reminder email template.”
No a.m. or p.m.? It assumes working hours
A meeting “at 3” is almost never at 3 in the morning. So a time written without a.m. or p.m. is read as a working hour: 1 through 6 are afternoon (13:00 to 18:00), 7 through 11 are morning, and 12 is noon. The same goes for colon times, so “3:30” is 3:30 p.m. A 24-hour time like “14:00,” or one written with a leading zero like “03:30,” is taken as written. A bare number without “at” or “o’clock” isn’t a time at all: “3 slides” stays in the title.

“Tonight” and “at night” change things a little. Anything from 1 to 5 “at night” means the small hours after midnight, and 12 at night means midnight. So “deploy tonight at 1” lands at 01:00 tomorrow, and “tonight at midnight” at 00:00 tomorrow. “24:00” is the midnight that ends the day, so it’s 00:00 tomorrow as well. If you write only a time and it has already passed, it goes to tomorrow: at 10 a.m., “jog at 7” means 07:00 tomorrow.
What it leaves alone
Not every number is a date. “version 2.10,” “Python 3.12,” “1.25x speed,” “seat 3-5 people,” “the 2nd floor meeting” and “16:9 screen” don’t create a due date, and neither do words that only look like one, such as “monday.com cleanup” or “SAT prep.” Dates that don’t exist are filtered out as well: “February 30 deadline” creates no due date, and it isn’t quietly read as some nearby date either.
One sentence, three answers
This feature used to be built separately for web, desktop and mobile. Each app was patched as needs came up, and they drifted until they read the same sentence differently. For “내일 3시” (tomorrow at 3), the web app set only the date with no time, desktop read 3 a.m., and mobile read 3 p.m. For “3일 후” (in 3 days), web gave November 3, desktop October 3, and mobile October 20. For “다음주 월요일” (next Monday), web and desktop gave October 26 and mobile October 19. Back when the test table had 104 rows, the old parsers got 46 right on web, 63 on desktop and 73 on mobile.


So I merged the parser into one file. The canonical copy lives in the web app, and desktop and mobile carry byte-for-byte copies. The file imports nothing. It no longer relies on the date library (chrono-node) the old web and desktop parsers used, because it has to run unchanged on mobile’s JavaScript engine and the three apps all build differently. Then I wrote a table of expected results, one input and its right answer per row, and all three repositories run the same table. Change one copy alone and the other two apps’ tests fail.
{"input": "내일 3시 회의",
"expect": {"date": "2026-10-18", "time": "15:00", "title": "회의"}},
{"input": "明日3時に会議",
"expect": {"date": "2026-10-18", "time": "15:00", "title": "会議"}},
{"input": "3일 후 마감",
"expect": {"date": "2026-10-20", "time": null, "title": "마감"}},
{"input": "2.5 버전", "expect": null},Writing the table also forced decisions on rules that had been fuzzy. “Next Monday” is the Monday of next week, and your settings decide which day the week starts on. If your weeks start on Sunday, “next Monday” typed on Sunday, October 18, is October 26; with the default Monday start, it’s the very next day, October 19. “This Friday” and a bare “Friday” mean the next Friday after today, which is a week away if today is Friday. A date without a year is taken as written, in the current year: typing “closing Oct 5” on October 17 gives October 5, which has already passed. With Japanese and English cases added, the table now has 324 rows, and all three apps get every one right.
Korean and Japanese follow the same rules
Korean works the same way. “내일 3시 회의” (meeting tomorrow at 3) becomes tomorrow at 15:00 with the title “회의” (meeting). A “3시” (3 o’clock) without a.m. or p.m. is 3 p.m. in Korean too, and “밤 1시” (1 at night) falls in the small hours after midnight. Particles stuck to a date, as in “금요일까지” (by Friday) or “3시쯤” (around 3), come out of the title with it. A start reminder looks like “30분 전 알림” (reminder 30 minutes before).
Japanese works too. “明日3時に会議” (meeting tomorrow at 3) becomes tomorrow at 15:00 with the title “会議,” “金曜までに提出” (submit by Friday) is October 23 with the title “提出,” and “来週月曜” (next Monday) is October 19. A Japanese “3時” without a.m. or p.m. is 3 p.m. as well, and “今夜1時” (tonight at 1) is 1 a.m. the next morning. Japanese doesn’t put spaces between words, so when the characters that follow change the meaning, as in “3時間” (three hours), “3日間” (three days) or the name “明日香,” nothing is read as a date, and neither is a “明日” inside a longer word such as “説明日程” (briefing schedule). The gap left by a removed date is closed up instead of filled with a space: “企画書を明日までに提出” (submit the proposal by tomorrow) becomes “企画書を提出.” Start reminders look like “30分前に通知.”
Next time you write down a task, open quick add (⌘⇧Y on the web, ⌘⇧N in the desktop app) and try “call mom friday 3pm.” The full how-to is in Tabple’s guide to quick add. If quick add reads something differently than you expect, let me know: I’ll add a row to the table and fix all three apps together.