Hi Paul, On Sep 25, 2008, at 1:16 AM, Paul Holcomb wrote: > > I'm pretty new to elisp and I'm having difficulty figuring out how > to implement two things in org-agenda-custom-commands: > > *) Is there a simple way to construct an agenda view that: > -shows all past scheduled events for one TODO keyword only > -skips for all others > > The only way I could figure out it could work is to write a large > org-agenda-skip function that explicitly looks at subtrees and > duplicates the org-scheduled-past-days check code. > > Unless I'm mistaken a block view won't work because the value of > org-scheduled-past-days is local to the agenda command and not each > block inside of it. I have not tested this, but you might be able to use the general tags/ property/todo matcher on `C-c a m' like this: SCHEDULED<""/!+MYTODOKEYWORD > *) Using a defconst symbol or function that evaluates to a stringp > in place of an actual string in for the match field. > > ex: > ("A" "" tags-todo 'org-pah-todo-exclude nil nil) > > > (type-of org-pah-todo-exclude) > ==> stringp > > I also tried using concat and format for that argument. The error > is always: > > Debugger entered--Lisp error: (wrong-type-argument stringp (quote > org-pah-todo-exclude)) > string-match("/+" (quote org-pah-todo-exclude)) > org-make-tags-matcher((quote org-pah-todo-exclude)) > org-tags-view((4) (quote org-pah-todo-exclude)) > > It seems like the evaluation order is at fault, but I couldn't get > further. indeed, currently the match entry is not evaluated. I guess we could do that, but it would involve changing several functions. I would need a convincing use case before I invest the time. How would you want to use this? - Carsten