I often work in projects where all TODO items are bundled in one separate file. Often, I have quite a bit of TODO items which are then cluttering the agenda, while what I actually want is just a line meaning something like 'Still TODO items left in this-and-this-project'. Is there an elegant, built-in way to show such a kind of summarized status in the agenda? I imagine a line like TODO this-file.org.

One possible way to go would be to construct something like a summary item, which is then updated each time something in the file's todo tree is changed. That does feel quite hacky, though, and seems to require a bit of discipline (e.g. in organizing the layout of the project file, and not scheduling any sub-items, etc.). I would prefer a solution which relies on built-in functionality as much as possible. Any ideas?

  • I don't think there is anything built-in that comes even close, so this will require some hashing out and discussion which probably makes this site inappropriate for the question. I would suggest asking on Reddit perhaps, or, better, on the Org mode mailing list.
    – NickD
    Commented Jun 24, 2022 at 17:43
  • Thanks, that's probably true. I just thought I might give a shout-out to those who are in the know. Sometimes it is surprising what actually is built-in... Commented Jun 26, 2022 at 13:26

1 Answer 1


I do not believe there is a built-in to summarize based on a category and TODO keywords for org-agenda views.[1]

However, if you structure projects as subtrees or nest the headings of the file in question with a parent header, you could utilize a combination of special TODO keywords and org tracking cookies to offer a summary line.

  1. Define a todo-keyword like PROJ to signify a project (among other keywords you need to track work).
(setq org-todo-keywords
      '((sequence "PROJ" "TODO" "|" "DONE")))
  1. At the first level of any projects, add your PROJ keyword to the front and add a [ / ] or [ % ] to the end.
#+TITLE: project1.org
* PROJ Make a widget [ / ]
  1. Add second level headers using a todo keyword.
#+TITLE: project1.org
* PROJ Make a widget [0/2]
** TODO Reticulate a spline
** TODO Save your work regularly
  1. Call org-agenda either with the default n view for all todos, or with m and match your PROJ keyword. Your agenda view should contain the summary heading with the tracker cookie at the end.

[1]: That being said, if non-built-ins are acceptable, you may be able to use a group formatting string on a header if you utilized org-super-agenda. But this package is beyond my scope of knowledge.

  • That's the perfect solution! I actually do already organize the project-specific todo's in one big tree, so the only thing I need to change is to use the more specific PROJ keyword. That's indeed a nice idea I did not think about. So the idea is basically to have a "aggregated TODO" keyword. Thanks, I'll use that solution! Commented Jul 11, 2022 at 9:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.