Skip to main content

Dates and Durations (Start, Due, and Duration)

A task in 2Do can carry up to three time-shaped properties: a Start Date, a Due Date, and a Duration. Each one is optional. Used together, they decide when a task is visible in your Today list, when it is hidden as Scheduled, and how far ahead of its deadline it appears.

This page explains exactly how each property is interpreted on its own, and what happens when you combine them.

tip

You do not have to open a picker to set any of them. Use natural language and type the date, time, or duration into a new task's title and Natural Language Input fills in the fields for you. Work on the report starting tomorrow sets a start date, and Field trip from 19 July until 21 July sets a start and a due date at once.

Think of them this way:

  • Start Date means “do not show this until it is time to begin.”
  • Due Date means “this is the deadline.”
  • Due Time makes the deadline precise.
  • Duration is your estimate of how long the task takes. With a due date, 2Do counts it back from the deadline to show when to begin.

Duration Doesn't Change Start or Due​

A duration never sets or moves a task's start date or due date, and 2Do never works out a due time by adding the duration to the start time. Each field answers its own question:

  • Start: when can you begin?
  • Due: when must it be finished?
  • Duration: how long will the work take?

A start time is when a task becomes available, not a promise to finish by a certain time. Mow the lawn can start Saturday at 9:00 AM and take an hour, and mowing at noon is still on time. If 2Do made the task due at 10:00 AM, it would turn overdue at 10:00, a deadline you never chose. When a task must be finished by a particular time, set that time as its Due Time.

To set aside time for a task on your calendar, use Add to Calendar. For a task with a start time, the event begins then and lasts the task's duration, or runs to the due time when the task is due later that day. The task's own dates don't change.

Choosing Between Start and Due​

Most tasks need only one of the two. Pick by asking what you want the date to do:

  • Use a Start Date when you want the task to stay hidden until the day or time you plan to begin it.
  • Use a Due Date when the task genuinely becomes late after that date or time.
  • Use both only when there is a real working window between the two: a day you can begin, and a later day you must be finished by.

Only a due date can make a task overdue. A start date decides when a task appears; it never decides whether the task is late. When a task has no real deadline, leave the Due Date off and let the start date bring it into view.

tip

Use Start Date for anything that shouldn't bother you yet: appointments, scheduled work, recurring chores. Use Due Date for actual deadlines. Use Duration to surface a lead-up window for tasks that need preparation.

Daily Routines​

For a recurring task you want to see at a set time of day but do not have to finish by then, set a Start Date with that time, repeat it daily, and leave the Due Date off:

  • Update journal starting at 8:00 AM, hidden until 8:00 AM, then available for the rest of the day.
  • Check bank account starting in the evening, out of the way until then.

The task never becomes overdue, and each occurrence gets the next start date. Add a Due Date and Due Time only when finishing by a particular time genuinely matters. See Repeating Tasks for the repeat options.

A Plain, Undated Task​

A task with no dates stays in the list it was created in. It does not appear in Today. It is never overdue, because nothing was promised.

Use this for the long tail of intentions: rough notes, someday/maybe items, anything that genuinely doesn't have a deadline.

Just a Due Date​

A task with a Due Date appears in Today on the due date, for the whole day, and then becomes overdue until you complete it.

  • If the task also has a Due Time, alerts can be anchored to that time. Without a due time, the task is simply due on that day.
  • Overdue tasks can continue to appear in Today with an overdue indicator, depending on your Today list settings. They stay overdue until checked off.

This is the simplest pattern, and the right one for genuine deadlines: Submit invoice on Friday appears in Today on Friday, then stays overdue until you submit it.

note

A due date without a due time has no specific clock time attached. If you use automatic due-date alerts, 2Do treats the beginning of the due day as the reference point for that alert. To anchor to a specific time of day, add a Due Time.

When a list is sorted by Due Date, a task with no due time counts as due at the end of its day, so it sorts after that day's tasks that have a due time. A duration moves a task earlier in this order, because 2Do sorts it by its effective start. Alert times do not affect the order.

An alert does not give a task a due time. A task with a 3:00 PM alert but no due time shows no time in the list and sorts after the timed tasks. Set a Due Time to change that.

Just a Start Date​

A task with only a Start Date is scheduled to appear at that start date. Until the start date arrives, the task is hidden from the regular list and from Today, by design.

To see what's scheduled before its start arrives:

  • Click the Scheduled focus list at the top of the Lists Panel.
  • Or, in the sort bar, toggle the visibility-of-scheduled button to display scheduled tasks alongside your normal view.
  • Or, Task > Show Scheduled (⌘K), a sticky toggle whose title flips to Hide Scheduled. It stays on until you switch it off.

Showing or hiding scheduled tasks changes which tasks a view includes, which is why the same task can appear and disappear as you toggle Task > Show Scheduled (⌘K) or the sort-bar button. Sorting a list by Start Date also shows its scheduled tasks, in the order they start. This applies to your own lists, not to Today or Smart Lists. Other sort orders only change the order of what is already there.

Learn more about scheduled-task visibility in Smart Scheduling.

A scheduled task with no due date enters Today on its start date. With Settings > Today & Lists > Include 'Still Working On' tasks on, which is the default, it stays in Today every day after that until you complete it.

tip

A task with start = today and no due date is just a "today task", so it appears in Today without overdue behavior. Useful for soft daily intentions.

Projects and child tasks

Each item uses its own Start Date for scheduled visibility. A project with no Start Date stays visible when Hide Scheduled is on, even if one or all of its child tasks start in the future. Those children stay hidden until their own start dates arrive or you show scheduled tasks.

Changing a project's dates resets its completed children

Changing or removing a project's Start Date or Due Date reschedules the project, and 2Do sets its completed child tasks back to active so the rescheduled project is treated as work to do again. Starring a project does not do this. If you want finished children to stay completed, adjust the project's dates first and complete the child tasks afterwards.

Start Date + Due Date​

The most expressive pairing.

  • Hidden from the list and from Today until the start date arrives.
  • On the start date, appears in Today, and with Settings > Today & Lists > Include 'Still Working On' tasks on (the default), it stays in Today every day after.
  • The due date adds the deadline.
  • After the due date, overdue.

Use this for tasks with a real working window. Prep talk for Thursday's meeting with a start date of Tuesday and a due date of Wednesday sits in Today from Tuesday onward, with Wednesday as the deadline.

Just a Duration​

Without dates, a duration is your estimate of how long the task takes. It doesn't change when the task appears, but 2Do uses it for Duration Totals, for sorting by Duration, and as the length of an event you make with Add to Calendar.

2Do counts a day of duration as 24 hours and a week as 7 days. It doesn't count working hours.

Combine a duration with a due date and it also tells 2Do when to start showing the task.

Due Date + Due Time + Duration: Effective Start​

When a task has a due date, a due time, and a duration, 2Do counts the duration back from the due time. That point is the task's effective start: the time it starts needing your attention. 2Do doesn't save it as a start date, and the deadline stays where you set it.

Example: a meeting deadline is tomorrow at 3:00 PM and the task has a 30-minute duration. Its effective start is 2:30 PM, and the task is still due at 3:00 PM.

The effective start affects the task in four ways:

  • Today list: the task appears in Today on the day of its effective start, for that whole day. A task due tomorrow at 9:00 AM with a 12-hour duration has its effective start at 9:00 PM today, so it is in Today all of today.
  • In Progress: when Today is sorted by due date, the task appears under an In Progress heading from its effective start until its due time.
  • Status: the task editor's hint bar shows Starts in and the time left until the effective start, then the time remaining until the due time. Hover over the duration to see the same status, or Ended once the due time has passed. The status is only a countdown; it doesn't track the time you spend.
  • Sorting: in a list sorted by due date, 2Do places the task at its effective start, so a long task comes before a short one due at the same time.

Use this for time-boxed work:

  • Join Zoom meeting due 3:00 PM, duration 30 minutes, so start preparing at 2:30 PM.
  • Submit proposal due 5:00 PM, duration 2 hours, so it is treated as active from 3:00 PM.
tip

For appointments and meetings, combine Due Date + Due Time + Duration. It keeps the actual deadline clear while also telling 2Do when preparation should begin.

Due Date + Duration: Lead-Up Window​

A duration also works with a due date that has no due time. 2Do then counts the duration in whole days: each full day brings the task into Today one day earlier, and the window lasts until the end of the due day.

Example: a task due Friday with a duration of 2 days appears in Today from Wednesday, because the work needs time before the deadline. This is useful for tasks like prepare slides, review contract, or pack for a trip where the due date is not the first moment you should think about it.

The task editor's hint bar shows Starts in before the window opens, then the time remaining until the end of the due day, and reads Ended only once the task is overdue. While the window is open, Today sorted by due date lists the task under In Progress.

A duration shorter than a day doesn't change when a task without a due time appears. The task arrives in Today on its due date, with no countdown in the task editor and no In Progress heading in Today. The duration still places the task a little earlier among that day's tasks when the list is sorted by due date, and it still counts toward Duration Totals. To count back hours or minutes, give the task a Due Time.

With or without a due time, once the window opens, the task keeps appearing in Today each day up to the deadline as long as Include overdue items is on in Settings > Today & Lists, which it is by default. With that setting off, the duration brings the task into Today only on the first day of the window, and the due date brings it back on the day it is due.

A small consequence to be aware of: a task due tomorrow can already be showing in Today, but only when its duration is long enough to reach back into today. That's normal and intended.

Duration + Start Date​

A duration on a task that has a start date but no due date doesn't change when the task appears, and it doesn't give the task a due time. The task appears at its start, as described in Just a Start Date, and it never becomes overdue. The duration still counts toward Duration Totals, and Add to Calendar uses it as the event's length.

To have a duration bring a task into Today ahead of a deadline, give the task a due date.

Start + Due + Duration​

When all three are set:

  • Hidden before the start date.
  • Still hidden even when the duration's lead-up window reaches back past the start date, because the start date wins while scheduled tasks are hidden, which is the default. Show scheduled tasks to see it earlier.
  • Visible once the start date arrives.
  • Overdue after the due date.

Use this when you want both a “do not show before this date” boundary and a realistic amount of working time:

  • Prepare conference talk starts 1 June, is due 10 June at 5:00 PM, duration 4 hours, kept out of the way before June, then available while you plan, and treated as active as the deadline approaches.
  • Renew passport starts Monday, due Friday, duration 1 hour, hidden before Monday, visible during the week, and due Friday.

Repeating Tasks and Dates​

See Repeating Tasks for the full reference; the relevant points for dates:

  • When another occurrence remains, 2Do keeps a completed copy for your history, then moves the active task to the next occurrence.
  • The next occurrence carries the same date shape forward: start date, due date, due time, and duration are kept where they were used.
  • Only a due date: the next occurrence gets the next due date.
  • Only a start date: the next occurrence gets the next start date and stays hidden as Scheduled until that date arrives.
  • Start date + due date: 2Do keeps the same gap between them. If a task starts 2 days before it is due, the next occurrence also starts 2 days before it is due.
  • Duration carries forward intact, so a recurring "Quarterly review" with a 1-week duration starts surfacing in Today one week before each quarterly due date.
  • Repeat from Due Date keeps fixed schedules fixed. If rent is due on the 1st and you complete it on the 3rd, the next occurrence is still based on the 1st.
  • Repeat from Completion restarts the cycle from the day you actually completed the task. If you change your car's oil roughly every 3 months and complete the task today, the next one is scheduled 3 months from today, not from when it was originally due.

If the task has reached its End after count or End on date, it simply completes instead of creating another occurrence.

tip

For chores that drift in real life, use Repeat from Completion. For dates that must stay anchored to the calendar, use Repeat from Due Date. In the Repeat popup this is a single after completion checkbox, and ticking it means the cycle restarts from the day you complete the task.

Building a Daily View​

For everyday work the built-in Today list is usually enough. It already combines tasks due today with overdue tasks and tasks you are still working on.

If you would rather build your own Smart List, the distinction that matters is which date the search token looks at:

  • type: duetoday matches tasks due today, and tasks whose duration counts back into today. Bare today is an alias for duetoday.
  • type: anytoday also matches tasks that start today, so reach for it when you want started tasks included too.

See Smart Lists for the rest of the search syntax.

Duration Totals​

When the Task List is grouped into sections, each section header shows the total duration of the open tasks that belong to that section, including subtasks inside projects and checklists. Totals may update shortly after the list appears.

  • Only tasks that are not completed and have a duration are counted. A section without any durations shows no total.
  • When sorting by Due Date, a subtask with its own due date contributes to that date's section. A subtask without a due date contributes to its project's or checklist's section. For example, an undated 30-minute subtask inside an overdue project adds 30 minutes to Overdue.
  • Start Date works the same way: a subtask with no start date contributes to its parent's section. These totals do not add or change any dates on the subtasks.
  • Other sort orders use each subtask's own values. For example, a high-priority subtask contributes to High when sorting by priority.
  • A subtask that uses its parent's section counts as if the project or checklist were open. Searching for a project can therefore include its undated subtasks even when the search words only match the project. Completed subtasks and those hidden by the project's scheduled or paused visibility settings do not contribute.
  • Expanding or collapsing a project does not change its subtasks' contributions. Totals update existing headings; they do not create additional sections for subtasks.
  • If a project or checklist and its open subtasks with durations belong to the same section, the subtasks' durations replace the parent's own duration. Otherwise, the parent contributes its own duration, if set.
  • Each task counts once, even if it appears more than once in the section.
  • When a list is sorted by Duration, headers that already name a duration, such as 30 Minutes, show no total.

For example, two tasks under Tomorrow with durations of 1 hour and 15 minutes, plus a 30-minute project subtask that belongs to Tomorrow, produce a total of 1h 45m. The subtask counts even when its project is collapsed.

Select two or more tasks to see how many are selected in the Sort Bar, followed by their total duration when they have one, such as 3 tasks selected · 1h 45m. This total includes only the tasks you select, so you can include nested subtasks by selecting them too. Selecting a project alone does not add its subtasks. Completed tasks are excluded, repeated selections of the same task count once, and a parent's duration is replaced by its selected open subtasks' durations when they have any.

To hide the totals in section headers, turn off Show durations in headings in Settings > Appearance.

Practical Examples​

Each example assumes the default settings.

At Home​

TaskStartDueDurationWhat you'll see
Buy milkNoneNoneNoneLives in its list, not in Today.
Pay the electricity billNone25thNoneAppears in Today on the 25th. Overdue from the 26th.
Take out the binsNoneWed 8 PMNoneAppears in Today all of Wednesday. Alarm at 8 PM if set.
Take out the binsWed 8 PMNoneNoneHidden until Wednesday 8 PM, then appears in the list.
Mow the lawnSat 9 AMNone1 hourAppears at 9 AM on Saturday and stays in Today until done. The hour is an estimate, not a 10 AM deadline.
Visit a friendSat 3 PMSat30 minutesHidden until 3 PM on Saturday, and due that day. A duration under a day doesn't bring a task without a due time into Today early.
Pick up the kidsNoneToday 3:15 PM20 minutesDue at 3:15 PM, with an effective start of 2:55 PM.
Pack for a tripNoneFri2 daysAppears in Today from Wednesday. Due Friday.
Renew car insuranceMar 1Mar 3130 minutesHidden until March 1, then in Today until done. Due March 31.

At Work or School​

TaskStartDueDurationWhat you'll see
Join team meetingNoneTomorrow 3 PM30 minutesDeadline is 3 PM, with an effective start of 2:30 PM.
Submit proposalNoneFri 5 PM2 hoursDeadline is 5 PM, with an effective start of 3 PM.
Read chapter 5Mon 4 PMNone2 hoursHidden until 4 PM on Monday, then in Today until done. It isn't due at 6 PM.
Hand in history essayNoneFri3 daysAppears in Today from Tuesday. Due Friday.
Prep quarterly reviewMonFriNoneAppears in Today from Monday onward; due Friday.
Group presentationWedFri 2 PM3 daysHidden until Wednesday, even though 3 days before the deadline is Tuesday. Due Friday at 2 PM.
Status report, repeating weeklyNoneFri 4 PM1 hourEffective start at 3 PM each Friday. Completing it moves the task to the next Friday.

Where to Set Each Field​

In the task editor:

  • Start Date: ⌃T (Start Today), or click the start-date field and pick.
  • Due Date: click the due-date field; type a supported date phrase such as tomorrow, next Friday, or in 3 days, or pick from the calendar. This field takes the date only. Set the clock time in the separate due-time field.
  • Due Time: E to open due time, or use the Due Time Shortcuts (configurable).
  • Duration: X to open the duration picker.

For a new task you can type all of these into the title instead, in phrases such as tomorrow at 3pm or [45m]. A date on its own becomes the due date; a start word in front of it, as in Repaint the fence starts Monday, sets the start date, and a range such as Field trip from 19 July until 21 July sets both. See Natural Language Input.

Nudge the start date with . (add a day) and , (subtract a day), or ⇧. / ⇧, for a week; nudge the due date with ] / [ for a day and ⇧] / ⇧[ for a week. Remove start date / due date / due time with ⌥, / ⌥[ / ⇧⌘[.