Publishing my Org agenda to my blog

Some people like reading my task list.

No, I don't know why, either. =)

But it's up again, just in case you want to see it. This one is based on Org-mode for Emacs, so it's not the same task list that used to show up on my Planner wiki.

Expect this to change a lot as I figure out how I want it to fit in. The downside of using WordPress as my front-end is that it looks like it's going to be difficult to get the kind of day view I have with my Planner version. How do I get it to display future pages?

I may end up writing yet another layer on top of this... =(

Anyway, here's my highly idiosyncratic config, just in case you want to get started hacking this onto your system:

(defvar sacha/org-publish-agenda-directory "~/notebook/org/" "*Directory to save the published agenda to.")
(org-defkey org-agenda-mode-map  "p" 'sacha/org-publish-agenda)
(defun sacha/org-publish-agenda ()
  "Copy the agenda buffer to a file in `sacha/org-publish-agenda-directory'."
  ;; Take the entire contents of the agenda and dump it into a text file labeled with the date.
  (let ((agenda (with-current-buffer org-agenda-buffer-name
                  (unless org-agenda-show-log (org-agenda-log-mode))
        (filename (format-time-string "%Y-%m-%d.txt" (if org-starting-day (calendar-time-from-absolute (1+ org-starting-day) 0)
      (insert agenda)
      (write-file (expand-file-name filename

(defun sacha/org-publish-agenda-today (interactive)
  "Publish today's agenda. Suitable for ~/.emacs, we hope."
  (let ((entry (assoc "a" org-agenda-custom-commands)))
    (if entry
        (org-run-agenda-series (nth 1 entry) (cddr entry))
      (call-interactively 'org-agenda-list))

On Technorati: , ,

Random Emacs symbol: hack-local-variables - Function: Parse and put into effect this buffer's local variables spec.

  • Eduardo Mercovich

    Dear Sacha, how can we make Emacs write this to a file each time we exit?
    In this way, we could show that file contents in the desktop using Conky. :)

    Thanks a lot for such warm sharing.