Subtasks and Milestones

Tasks are hierarchical. This means you can easily add sub-tasks, and those sub-tasks can also have sub-tasks.

When all sub-tasks are complete, it automatically marks the parent as being complete.

This can be very useful for breaking down projects and tasks. It can also be useful for creating milestones, by grouping task as sub-tasks under a parent-task that acts as the milestone.

If you want the milestones to be separate to the tasks, you can create them in a separate list and make them dependent on the tasks the milestone is tracking.