9

Weekly, I try to make sure that there are no TODOs I want to have scheduled that I've missed. So I look through the list of all TODO entries (C-c a t). This is great; it shows only open TODOs, so I don't have to waste time skipping past all the stuff I've already done.

But really, I don't want the list of all TODOs; If something is scheduled, or recurring, I don't want to see it in this list. I'd rather only see things that I could be missing, and I'm not missing something scheduled tomorrow that repeats every two days.

One can run org-agenda-filter-by-tag with /, but either it can't filter by scheduled/recurring status, or I'm not sure of the way to use it that way. Given that the list of tags that show up when you press TAB doesn't include anything like "unscheduled", I'd bet this isn't the tool I want.

So there are two possible solutions. While I'd prefer the first, having the second is also a possible solution for this problem.

  1. How can I view all unscheduled open TODOs?

  2. How can I view all open TODOs (scheduled or not) that are not recurring?

2 Answers 2

13

You can create a custom agenda view which sets org-agenda-skip-function using org-agenda-skip-entry-if. Something like this:

(setq org-agenda-custom-commands
      '(("c" . "My Custom Agendas")
        ("cu" "Unscheduled TODO"
         ((todo ""
                ((org-agenda-overriding-header "\nUnscheduled TODO")
                 (org-agenda-skip-function '(org-agenda-skip-entry-if 'timestamp)))))
         nil
         nil)))
10
  • 2
    This will skip anything with a timestamp. (org-agenda-skip-entry-if 'notscheduled) will skip only scheduled items.
    – erikstokes
    Commented Sep 12, 2015 at 16:24
  • 4
    @erikstokes -- I think you mean (org-agenda-skip-entry-if 'scheduled), not 'notscheduled.
    – zck
    Commented Sep 13, 2015 at 1:57
  • This answer is great, but I would suggest not using setq, but instead push to just add a new entry to the list, rather than setting it entirely afresh. Also, I'm not sure why the todo symbol and its arguments need to be doubly-nested; it seems to work fine if they're at the top level of the quoted list.
    – zck
    Commented Sep 13, 2015 at 2:00
  • 1
    @zck Yes, that's what I meant. The double nesting thing is if you want multiple blocks in one agenda view. This one only has one block, so it's the same as being at the top level.
    – erikstokes
    Commented Sep 13, 2015 at 2:07
  • 1
    @zck I couldn't make it work with push instead of setq. What was your code?
    – emonigma
    Commented Sep 13, 2019 at 8:24
8

You can now satisfy these requirements without a custom agenda by customizing org-agenda-todo-ignore-scheduled. It also comes in these flavours: org-agenda-todo-ignore-with-date org-agenda-todo-ignore-deadlines and others.

1
  • 1
    Specifically you can set org-agenda-todo-ignore-scheduled to 'all to ignore any item that has a schedule (and likewise for deadlines). 'past and 'future are also valid settings.
    – erikstokes
    Commented Nov 18, 2017 at 18:45

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.