I struggled to get union of cases in an agenda block. I was able to work from examples by Bernt Hansen at

    http://doc.norang.ca/org-mode.html#CustomAgendaViewSetup

and

    http://doc.norang.ca/org-mode.html#Projects,

and make the following small example, which may be useful to folks just getting into Org-mode and Emacs, and want to be aware of how you can combine cases into your agenda block. (Union as opposed to intersection, OR vs AND.)

It should be straightforward to make various cases, or even finally get familiar with the agenda filtering commands at

    http://orgmode.org/manual/Filtering_002flimiting-agenda-items.html.


#+BEGIN_SRC emacs-lisp
(defun appts-nil-not-appt-next-headline ()
  (let ((next-headline (save-excursion (outline-next-heading))))
    (if (or ;; (string= "circus-act" (org-get-org-file))
            (string= "circus-act" (org-get-category))
            (member "appt" (org-get-tags-at))
            (member "plans" (org-get-tags-at))
            (member "social" (org-get-tags-at)))
        nil
      next-headline)))
#+END_SRC

(You may need this so that function org-add-agenda-custom-commands does not create error.)
#+BEGIN_SRC emacs-lisp
(require 'org-agenda)
#+END_SRC

#+BEGIN_SRC emacs-lisp
(org-add-agenda-custom-command
 '("c" "calendar"
   agenda ""
   ((org-agenda-skip-function 'appts-nil-not-appt-next-headline)
    )))
#+END_SRC

Please let me know if you see any changes I should make in my strategy or code. (I've not made it a priority, but I think I shouldn't have the three occurrences of `(member "<a tag>" (org-get-tags-at))'.)

Also, no telling when I'll get the chance to understand the examples at


http://stackoverflow.com/questions/20715106/org-agenda-regexp-search-categories



Brady


Reply via email to