Michael Hoffman
Michael Hoffman

Reputation: 34314

Making org-agenda-list hide items scheduled for the future

I use the org-mode weekly/daily agenda and want to be able to use the SCHEDULED keyword to hide items until the scheduled time comes up. I don't want to think about them until then. How can I set up org-agenda-list to do this?

This is the list of agenda items, not the TODO list. I already have org-agenda-todo-ignore-scheduled set to future. It does not help.

Upvotes: 14

Views: 5235

Answers (3)

Moyamo
Moyamo

Reputation: 368

You can probably get what you want using org-modes confusing set of parameters but it's probably just easier creating a custom filter function

  (defun my/org-skip-function (part)
    "Partitions things to decide if they should go into the agenda '(agenda future-scheduled done)"
    (let* ((skip (save-excursion (org-entry-end-position)))
           (dont-skip nil)
           (scheduled-time (org-get-scheduled-time (point)))
           (result
            (or (and scheduled-time
                     (time-less-p (current-time) scheduled-time)
                     'future-scheduled)  ; This is scheduled for a future date
                (and (org-entry-is-done-p) ; This entry is done and should probably be ignored
                     'done)
                'agenda)))                 ; Everything else should go in the agenda
      (if (eq result part) dont-skip skip)))
   (setq org-agenda-skip-function '(my/org-skip-function 'agenda))

If you want other filters just add them to the or-block with a different tag.

Upvotes: 2

asiegf
asiegf

Reputation: 99

This worked for me:

(setq org-agenda-todo-ignore-with-date t)

From http://orgmode.org/manual/Global-TODO-list.html

Upvotes: 0

fniessen
fniessen

Reputation: 4506

Set

(setq org-agenda-todo-ignore-scheduled 'future)

and

(setq org-agenda-tags-todo-honor-ignore-options t)

Upvotes: 10

Related Questions