On 2025-03-12 9:16 a.m., Michael P. Soulier wrote:
I just can't seem to get this working.
During the work hours I want to include in my agenda only TODO items that have
the @work, @calls or @errands tags. I tried one tag initially and I can't get
that working. Looking at the docs, regexp seems to be the only option.
CONDITIONS is a list of symbols, boolean OR is used to combine the results
from different tests. Valid conditions are:
scheduled Check if there is a scheduled cookie
notscheduled Check if there is no scheduled cookie
deadline Check if there is a deadline
notdeadline Check if there is no deadline
timestamp Check if there is a timestamp (also deadline or scheduled)
nottimestamp Check if there is no timestamp (also deadline or scheduled)
regexp Check if regexp matches
notregexp Check if regexp does not match.
todo Check if TODO keyword matches
nottodo Check if TODO keyword does not match
For some reason there is no tag/notag options here. So I tried regexp.
("w" "Work day report"
((agenda ""
((org-agenda-overriding-header "Today's schedule")
(org-agenda-skip-function
'(org-agenda-skip-entry-if 'tags '(("@work"))))
(org-agenda-span 'day)))
But it's not working. They're still there in the agenda view.
What am I doing wrong?
I did eventually get this working.
like so
("w" "Work day report"
((agenda ""
((org-agenda-overriding-header "Today's Work
schedule")
(org-agenda-skip-function
(lambda ()
(let* ((tags (org-get-tags))
(skip-tags '("@fun" "@personal"
"@home")))
(when (cl-intersection tags skip-tags
:test #'equal)
(org-end-of-subtree t)))))
I think this could be greatly simplified by supporting filtering the
agenda view on tags.
Cheers,
Mike