# Turn plain English into a due date and a repeat rule

Type a task the way you would say it. The parser finds the date ("tomorrow", "next friday", "sep 14", "in 3 days"), a start date ("start monday"), a repeat ("every weekday", "every other tuesday", "the 1st of every month") and a time of day, then gives you an ISO date, an RRULE and the task title with those words removed. It is the same parser the GetItDone task box runs as you type, and it never invents a date the text does not state.

Use it: https://nowgetitdone.com/tools/natural-language-date-parser

## Example phrases

- Submit the report tomorrow
- Send the contract next friday
- Follow up in 3 days
- Conference talk sep 14
- Board meeting 2026-09-15
- Tax prep start monday due 2026-09-15
- Email the investor deck tomorrow at 3pm
- Check the queue every weekday
- Retro every other tuesday
- Invoice the 1st of every month
- Standup every weekday until sep 4
- Deep clean every 3 weeks after I finish it

## API

No key: `GET https://nowgetitdone.com/api/tools/parse-date` returns JSON, or Markdown with `Accept: text/markdown`. Reference: https://nowgetitdone.com/docs/free-tools-api

## Questions

### What phrases does the date parser understand?

Relative days (today, tomorrow, yesterday, a weekday name, "next friday", "in 3 days", "in two weeks on monday", "next month"), calendar dates ("sep 14", "14 sep", "2026-09-15", "3/15"), explicit due and start dates ("due friday", "start monday"), repeats ("every weekday", "every other tuesday", "every 3 days", "the 1st of every month", "every 3 weeks after I finish it", "until sep 4", "6 times"), a time of day ("at 3pm", "15:00"), priorities ("p1", "!high") and projects ("#ops").

### Which timezone are "today" and "tomorrow" counted in?

The one you choose. The page starts with your browser’s timezone; the API uses the tz parameter (an IANA name such as America/Toronto) and falls back to UTC when you leave it out. The response always says which zone and which "today" it used.

### Why is the time of day read but not saved?

GetItDone schedules whole days, so the result is a calendar date, not a timestamp. The parser still recognises "at 3pm" so it does not end up in the task title, and reports it separately as "time not saved", exactly as the task box does.

### Is there an API for the natural language date parser?

Yes. GET /api/tools/parse-date?text=…&tz=… needs no key and returns JSON (or Markdown with Accept: text/markdown). It is rate limited per IP address, and errors follow RFC 9457 problem+json.

### Does it guess when the text has no date?

No. When nothing in the text names a day, the due date stays empty and the whole text is the task title. An impossible date such as 2026-02-31 is left as text rather than rolled over to March.

The same parser runs in the GetItDone task box, where your team and its AI agents share one board of tasks.
