That's a good start! Thanks! Cheers. Fil On 7 April 2011 23:34, Bernt Hansen wrote: > "Filippo A. Salustri" writes: > > > Hi, > > I'm thinking I might like to try some programming to do things to the > > agenda from an elisp function. > > I tried 'apropos agenda' but I didn't really see the kind of thing > > I'm looking for. > > What I'm hoping is for some way to iterate over each item in the > > agenda, and be able to access the content of the item in some > > structured way. > > I think I've seen functions that can pull info like TODO state and > > priority from the item under the cursor, so it's the iteration part > > that I'm really interested in. > > > > Any advice? > > Hi Fil, > > I just found the B f code to execute an arbitrary function on marked > entries in the agenda. Maybe this will help? > > This following code visits the marked entries and just displays the > heading for the task. > > Mark multiple entries in the agenda with 'm' and then 'B f bh/test RET' > should display the heading of each marked task in the *Messages* buffer. > > --8<---------------cut here---------------start------------->8--- > (defun bh/test () > (interactive) > (let* ((marker (or (org-get-at-bol 'org-marker) > (org-agenda-error))) > (buffer (marker-buffer marker)) > (pos (marker-position marker))) > (with-current-buffer buffer > (if (org-mode-p) > (save-excursion > (goto-char pos) > (message "%s" (nth 4 (org-heading-components)))))))) > --8<---------------cut here---------------end--------------->8--- > > Depending on what you want to do you can either act on marked entries or > create a custom agenda skip function that can visit the tasks as the > agenda is built. > > HTH, > Bernt > -- Filippo A. Salustri, Ph.D., P.Eng. Mechanical and Industrial Engineering Ryerson University 350 Victoria St, Toronto, ON M5B 2K3, Canada Tel: 416/979-5000 ext 7749 Fax: 416/979-5265 Email: salustri@ryerson.ca http://deseng.ryerson.ca/~fil/