Thanks to everyone for the hints and tips. It's much appreciated. Cheers. Fil On 8 April 2011 12:59, Carsten Dominik wrote: > > On 8.4.2011, at 05: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--- > > Also useful can be > > (org-entry-properties marker) > > Kind of slow for *many* entries, but perfectly good for a limited number... > > - Carsten > > -- 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/