This is the official manual for the latest Org-mode release.
It is often advisable to break down large tasks into smaller, manageable subtasks. You can do this by creating an outline tree below a TODO item, with detailed subtasks on the tree1. To keep the overview over the fraction of subtasks that are already completed, insert either ‘[/]’ or ‘[%]’ anywhere in the headline. These cookies will be updated each time the TODO status of a child changes, or when pressing C-c C-c on the cookie. For example:
* Organize Party [33%] ** TODO Call people [1/2] *** TODO Peter *** DONE Sarah ** TODO Buy food ** DONE Talk to neighbor
If a heading has both checkboxes and TODO children below it, the meaning of
the statistics cookie become ambiguous. Set the property
COOKIE_DATA to either ‘checkbox’ or ‘todo’ to resolve
If you would like to have the statistics cookie count any TODO entries in the
subtree (not just direct children), configure
org-hierarchical-todo-statistics. To do this for a single subtree,
include the word ‘recursive’ into the value of the
* Parent capturing statistics [2/20] :PROPERTIES: :COOKIE_DATA: todo recursive :END:
If you would like a TODO entry to automatically change to DONE when all children are done, you can use the following setup:
(defun org-summary-todo (n-done n-not-done) "Switch entry to DONE when all subentries are done, to TODO otherwise." (let (org-log-done org-log-states) ; turn off logging (org-todo (if (= n-not-done 0) "DONE" "TODO")))) (add-hook 'org-after-todo-statistics-hook 'org-summary-todo)
Another possibility is the use of checkboxes to identify (a hierarchy of) a large number of subtasks (see Checkboxes).
 To keep subtasks out of the
global TODO list, see the