Closed feature request

Subtasks: nest tasks under a task, collapse them like a section, drag to nest or un-nest

stephen · ·closed by Drew Owens

Request

Add subtasks to tasks. A task's subtasks sit under it in the left-hand list and collapse under it, the same way rows collapse under a section header.

In the left-hand list, you should be able to drag a subtask out so it becomes a separate task, and drag a task onto another task so it becomes a subtask of that one. ClickUp's subtasks are the model to borrow from.

Suggested behaviour

Rows and collapse

  • A task with subtasks gets the same chevron and row count a section header has. Its subtasks are indented under it.
  • Collapse state is view state in prefs.collapsed, like a section's: per person, never written to the plan. Collapse all / Expand all covers subtasks too.
  • A collapsed parent's bar still shows the span of its subtasks, from the earliest start to the latest end, so the chart reads correctly with the detail hidden.
  • Optionally, a view setting in the style of ClickUp's: show subtasks collapsed, expanded, or as separate tasks.

Drag to nest and un-nest

This builds on the existing hold-to-lift reorder in the label column and the Table:

  • Drop onto the middle of a task row: the dragged row becomes that task's last subtask.
  • Drop between rows: a reorder, as today. The drop line is indented to show the level the row will land at. Moving the pointer left or right over a gap changes the level, outdenting to a top-level task or indenting under the row above.
  • A subtask dragged out between two top-level rows becomes a task.
  • Dragging a parent moves its subtasks with it. Dropping it into another section moves the subtasks into that section too.
  • Each nest, un-nest or move is one undo entry and one changelog event.
  • A keyboard path to match, such as Alt+Right / Alt+Left to indent and outdent, next to the existing Alt+Up / Alt+Down. Tab and Shift+Tab already walk fields, so they're taken.

Subtasks are full tasks

Subtasks have their own dates, owner, status, effort, tags and dependencies. Auto-schedule, Critical, the filters and Analytics treat them like any other task.

Data

An optional parent on a task, holding the parent task's id, the same way deps names tasks. When parent is absent, the row is a top-level task, so existing plans don't change. A subtask always sits in its parent's section.

Open questions

  • Depth: only one level (task, then subtask), or nested subtasks as ClickUp allows? One level covers this request.
  • Parent dates: a hard rollup, where the parent always spans its subtasks and can't be dragged narrower, or only shown that way when collapsed?
  • Hours: when a parent and its subtasks both carry effort, should Analytics count only the subtasks so nothing is counted twice?
  • Deleting a parent: delete its subtasks too, or promote them to tasks?
  • Filters: when a subtask matches the owner filter but its parent does not, show the parent dimmed for context?
  • Import/export: a parent column in CSV. MS Project XML outline levels and Jira's parent field could map onto it.

1 Reply

Drew Owens ·

Built in 0.79.0 and live on the team plan since 0.80.0 (2026-11-05), following ClickUp's model.

  • Subtasks nest up to 3 levels under a task. Drag a row onto another to nest it, or use Alt+Right and Alt+Left. It works in the chart and the Table.
  • Subtasks start folded, and each person's folds are their own.
  • A parent keeps its own dates. Folded, its bar shows the span of its subtasks.
  • Hours count each task's own effort once. The Table also shows a parent's total including its subtasks.
  • Deleting a parent deletes its subtasks, and one undo restores them all. A row someone nested in the meantime is promoted, not deleted.
  • When a filter matches a subtask, its parent stays visible, dimmed.
  • CSV import and export carry a parent column. The ClickUp import keeps subtasks nested.
  • Each row now has its own parent and position, as in Figma and ClickUp, so moves and nests from several people at once can't conflict.

Not built: ClickUp's optional "sync dates with subtasks". Open a new issue if you want it.

Drew Owens closed this ·

Log in to reply.