[![](https://p24.f4.n0.cdn.getcloudapp.com/items/jkuK7x4R/TD-lockup-standard-64.png?v=1177403d33870d89aa26111aca3d99ea)](https://doist.grsm.io/leightonprice1199) # Todoist Due Dates & Times: Natural Language Syntax **Last updated:** 28 Feb 2021 ## Overview I've found that Todoist's own [website and help articles](https://get.todoist.help/hc/en-us/articles/205325931) are far from exhaustive in detailing the natural language entries that can be used for setting task due dates and times. As this is the only mechanism by which more complex schedules can be set, I've made a point of documenting the extra inputs I've learnt over the years. You'll find these listed in the **Glossary** below, along with some of the more widely known ones. In addition, there are various scenarios which Todoist's natural language syntax is unable to accommodate. However, I've created some neat solutions for these, by employing my spreadsheet skills as covered in the **Google Sheets Due Date Solutions** section. Buy Me A Coffee *** ## Glossary ## Single-occurring due dates & times ***Input*** *Definition (Todoist understands)* **no date** Sounds weird, but handy when adding a task in Today View but not wanting a due date set (**no due date** also works) **now** Today ***Note*** - There is no native way by which to enter the current date / time (i.e. 'now') in natural language. However, this can be achieved by using a snippet in a [Text Expansion app](https://textexpander.com) configured such as ***tod %H:%M*** **today** Today (**tod** also works) **tomorrow** Tomorrow (**tom** also works) **yesterday** Including to flag that you can also set dates in the past. You can use terms such as **3 weeks ago** or **2 days ago** etc., in addition to just inputing an actual date **later this week** Assigns a day later in the week. Changes dependent upon what day of the week it is upon time of entry **friday** The next Friday to occur **next friday** The second Friday to occur (this is a little confusing!) **next weekend** The second-next Saturday to occur (again, confusing) **this weekend** The upcoming Saturday **next month** 1st day of the next month **next year** Jan 1 of next year **later this week** Assigns a due day some point later on in the current week **someday** in 62 days (yes, this really does work!) **jan 27** Jan 27 (**27 jan** also works) **27/1** Jan 27 **27th** 27th day of the current month **3rd friday jan** Converts to the respective date of the third Friday in next January **mid january (jan)** January 15th **end of month** Last day of the current month **today at 10** Today at 10am **6pm** Today at 6pm (unless 6pm has passed, in which case tomorrow) (**18:00** also works) **tomorrow at 16:00** Tomorrow at 4pm **tom morning** Tomorrow at 9am (**tommorning** also works) **tom afternoon** Tomorrow at 12pm (**tomafternoon** also works) **tom evening** Tomorrow at 7pm (**tomevening** also works) **tom night** Tomorrow at 10pm (**tomnight** also works) **fri @ 7pm** Friday at 7pm (**Friday @ 7pm, Fri at 7pm, Fri at 19:00** also work) **in 5 days** 5 days from now (**+5** also works) **in 3 weeks** 3 weeks from now **in 2 hours** 2 hours from now **50 days before new year eve** Will set date to 11 November (this is particularly useful for setting [Reminders](https://get.todoist.help/hc/en-us/articles/205348301-Reminders)) **6 weeks before 21 Jul** Will set date to 9 Jun **28 days after 21 July** Will set date to 18 Aug --- ## Recurring due dates & times Todoist recurring tasks are extremely powerful. When you complete a repeating task, the entry will roll to the next date you've selected. When creating recurring tasks in Todoist, the time expression has **3 parts**: * the **repetition** - day and/or time * the **start date** - see notes below * and the **end date/duration** You can mix and match them however you like, e.g. **every day at 10am starting Friday for 8 weeks** ## Repetition **every hour** Every hour starting from now **every 12 hours starting at 9pm** Every day at 9am and 9pm **every day** Every day starting from today (**daily** also works) ***Note*** - The syntax doesn't support **every day except**. So if you only want the task to repeat on specific days of the week, you have to express those explicitly as per the following. **every monday, friday** Every Monday, Friday (**ev monday, friday; every mon, fri; ev mon, fri** also work) **every weekend** Every Saturday **every morning** Every day at 9am **every afternoon** Every day at 12pm **every evening** Every day at 7pm **every workday** Every Monday, Tuesday, Wednesday, Thursday, and Friday **ev mon, fri at 20:00** Every Monday and Friday at 20:00 (***Note*** - Times cannot be set independently for each of the recurring days) **every 3 days** Every 3 days from today (**ev 3 days** also works) **every week** Every week starting from today (**weekly** also works) **every month** Every month starting from today (**monthly** also works) **every quarter** Every 3 months starting from today (**quarterly** also works) **every other day** Every other day starting from today **every other week** Every other week starting from today **every other month** Every other month starting from today **ev 2nd Monday** Every Second Monday in a month **every 3rd friday** Every 3rd Friday of the month **every 3rd friday 8pm** Every 3rd Friday of the month at 8pm **every 3rd friday jan** 3rd Friday of each January (**yearly 3rd fri jan** also works) **every 1st wed jan, every 3rd thu jul** 1st Wednesday of each January and 3rd Thursday of each July **ev 7** Every 7th of the month **every 27th** Every 27th of the month (**every 27** also works) **every 2, every 15, every 27** Every 2nd, 15th & 27th of the month (**every 2, 15, 27** also works) **every jan 27th** Every January 27th **every 14 jan, 14 apr, 15 jun, 15 sep** Every January 14th, April 14th, June 15th & September 15th ***Note*** - I've had it confirmed that the maximum number of comma-delimited dates you can enter here is ***8***. Actually, it's only ***7*** if you include a time too. ***Warning!!*** - If you apply this to a task that is in a project [syncing with Google Calendar](https://get.todoist.help/hc/en-us/articles/115003128085-Use-Google-Calendar-with-Todoist), it won't work properly. Moreover, in the above example, post-entry and without warning, it will get transformed into **every 14, 15** in Todoist. Also, if you add a time, the date syntax 'sticks,' in Todoist but the task doesn't appear at all in Google Calendar. **ev last day** Every last day of the month **ev last mon** Every last Monday of the month **every first workday** Every first working day (Mon to Fri) of the month **every last workday** Every last working day (Mon to Fri) of the month **every year** Every year starting from today (**yearly** also works) **after 10 days** This is a bit different in that it changes, post-entry, to ***!every 10 days*** effective for today **after 10 days starting 1 Aug** As above, it changes, post-entry, to ***!every 10 days*** effective from 1 August ***Note*** - I've often seen people trying to get a schedule such as **1st Mon of every 3rd month** to work. Unfortunately, this kind of repeat cycle is not supported. ## Start date ***Note*** - "Start date," in this context, is the date when the recurrence should start from. Do not confuse this with the date on which *activity on a task should "start."* Todoist does not support the concept of "***Start dates & Do dates***," unlike, say, [Omnifocus](https://www.omnigroup.com/omnifocus). The reasoning for this is [clarified on YouTube](https://youtu.be/shTYLWogs5I?t=1816) by Todoist's CEO, Amir Salihefendić, and also in the [Todoist help pages](https://get.todoist.help/hc/en-us/articles/360007312259-Does-Todoist-support-start-dates-). ### Examples **every day starting tomorrow until April 3** **starting 9:00** **starting Monday** **starting 1 Jan** **starting June** - i.e., every second Thursday starting June **from 9:00** **from Friday** **from 16 Aug** ## End date/Duration ### Examples **until 20 July** **ending 24 August** **for 3 weeks** **for 3 days** **ending in 3 months** #### Example: for repeating this week only **every Wednesday, Friday, Saturday ending Saturday** Please note that in Todoist there are two recurring dates: **every** and **every!**. They are similar and the difference is how the next date is computed. For example: * **Clean fridge** with due date **every 3 months starting 10 April** * **Clean fridge** with due date **every! 3 months starting 10 April** Completing **every 3 months starting 10 April** will result in a due date 3 months from 10 April. Completing **every! 3 months starting 10 April** will result in a due date 3 months from the completion date. --- ## Holidays Tasks that need to be done on holidays can be specified using these respective keywords. **new year day** January 1 **valentine** February 14 (**valentine's day** also works) **memorial day** Last Monday of May **halloween** October 31 **new year eve** December 31 *** ## Google Sheets Due Date Solutions You can click on the named links to view them in your browser, or on the respective "make a copy," links to add them to your own Google Drive. Each one is fully documented and they are quick and easy to use. * [Recurring tasks 'n' days before the end of each month](https://docs.google.com/spreadsheets/d/1zZfVAEB2rDby-GvYzNWspfK2_oQhX7UhG53053Y4BkA/edit?usp=sharing) - You can use this Google Sheet to quickly and reliably create the syntax for recurring tasks that repeat on a cycle of a specified number of days before the end of each month. You can [make your own copy of it here](https://docs.google.com/spreadsheets/d/1zZfVAEB2rDby-GvYzNWspfK2_oQhX7UhG53053Y4BkA/copy) * [Relative Due Dates Tool](https://docs.google.com/spreadsheets/d/19nTmSIEx8CMzzrtrAxUtKbdYMuBsuUj6qd53kKSd6p4/edit?usp=sharing) - A further development of the above, this one dynamically creates multiple due dates formatted for easy pasting-in to Todoist. There are **4 tabs**, each performing a different manipulation as detailed below. You can [make your own copy of it here](https://docs.google.com/spreadsheets/d/19nTmSIEx8CMzzrtrAxUtKbdYMuBsuUj6qd53kKSd6p4/copy) * Offset a specified number or working days before or after a specified occurrence (1st, 2nd etc.) of a day of the week within each month * Offset a specified number or working days before or after the last working day of each month * Specify a monthly due date for a task and it automatically gets moved to the preceding Friday if the date should happen to fall on either a Saturday or Sunday * Choose the last instance of a named day before the last Friday of the month *** **[Back to Home](https://www.leightonprice.com)**