Russell Adams <RLAdams@AdamsInfoServ.Com> writes:

On Thu, Nov 04, 2021 at 12:16:19PM +0800, stardiviner wrote:
How to use elisp code to generate an org-agenda view for clocked tasks and logs etc which are sorted by timestamps? I want to view my daily done tasks and attach them as part of diary (maybe use org source block elisp code to generate output?)

So how to setup `org-agenda-custom-commands` to archive this purpose?

I routinely export my agenda to HTML with logbook mode enabled and inactive timestamps. This shows a complete timeline of my actions. I save timestamps on changing TODO to DONE, use active timestamps for appointments, and I constantly add inactive timestamps while taking notes. I use this to justify billing to clients.

I open the agenda, v m to make a monthly view, L for logbook, ] to enable inactive timestamps, and then C-x C-w to save. You may be able to just use elisp to trigger these actions.

I don't do it often enough to automate it. I love being able to flatten my tree of notes into a timeline this way.

-------------------------------------------------------------–— Russell Adams RLAdams@AdamsInfoServ.com

PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/

Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3

Russell, Thanks for your hint.

I have a prototype code now, but still have problem.

(add-to-list
 'org-agenda-custom-commands
 '("c" "Tody [c]locked tasks."
   ((agenda ""
            ((org-agenda-ndays 1)
             (org-agenda-span-1)
             (org-agenda-use-time-grid t)
             (org-agenda-include-diary nil)
             (org-agenda-show-log (quote clockcheck))
             (org-agenda-clockreport t))))))
(let* ((org-agenda-sticky t)
       ;; FIXME how to run it in background instead of switch to agenda buffer.
       (_ (org-agenda nil "c"))
       (origin-buffer (current-buffer))
       (origin-buffer-point (point))
       (agenda-buffer (with-current-buffer "*Org Agenda(c)*"
                        (buffer-substring (point-min) (point-max)))))
  (switch-to-buffer origin-buffer)
  (with-current-buffer origin-buffer
    (goto-char origin-buffer-point)
    (insert agenda-buffer)))

In the source code comment "FIXME" org-agenda always in frontend and popup buffer. I can't generate org-agenda in background then get the buffer content.

Does anybody knows some tricky method for my code?