J. Klymak --- PlannerMode

JMK Home

Publications

Curriculum Vitae

Teaching

OtherStuff

Work Calendar

Jody Klymak's 
citations

Planner Mode
Creating Tasks
Creating a note
Adding a diary entry.
Planner Mode
Planner mode and OS X

Planner Mode

This page documents how I use Planner Mode for emacs as my part of my personal information management. The nice thing about it is that it is fairly free-form so organization is up to the user. For my use, I have two types of pages: daily pages and project pages.

An example of a daily page is shown below. Right now, I have four subheadings, Tasks, Schedule, Diary, and Notes. Tasks are kept track of using Planner's excellent task-making mechanisms. The Schedule is a nice way to keep track of what you have been up to (but I admit to not exploiting it like I should). The Diary is a repeat of my entries from ~/diary for the day, and Notes are notes for the day.

My Daily Page
My Daily Page

The other kind of page I keep is a project page. The project page is a running log of what I have been up to on a project. For instance, I am working on the Hawaiian Ocean Mixing Experiment, or HOME. So, I have a file called HomeLog. There are numbered and timestamped entries in HomeLog. The nice thing, is that the timestamp refers back to the date the entry was made. On that day, the headline of the note has been made. At the top of this page, there is also a list of tasks associated with this project.

My Project Page
My Project Page

I use planner mode to do three things

When called from an emacs buffer, all three automatically put a link to the file I was working on into the task, note, of diary entry. This is very useful because it allows me to keep a running log of what I am doing with quick reference to the files.

Creating Tasks

Tasks are to-do items that get carried through from day to day by planner mode (if you have set planner-carry-tasks-forward to t). The function planner-create-task-from-buffer (I bind this to C-c C-t) creates a task. You are prompted to describe the task, enter a date, and to assign it to a planner page.

For example, From this buffer, I used planner-create-task. I called it Test task and told it to take place on 2004.03.27. I then assigned it to my planner page called <nop>ComputerStuff<\nop>. In my daily page (2004.03.27), I now have an entry like:

#A0  _ Test task from [[/Users/jklymak/wikiwebpage/PlannerMode]] {{Tasks:104}} (ComputerStuff)

And in ComputerStuff I have a task:

#A0  _ Test task from [[/Users/jklymak/wikiwebpage/PlannerMode]] {{Tasks:104}} (2004.03.27)

In order to do tasks I have:

(require 'planner-id)
(define-key global-map [?\C-x ?\C-t] 'planner-create-task-from-buffer)

Creating a note

The project files can be edited by hand , which is quite useful. However, I often want to jot down a thought without having to rummage around and find the project file. The function remember allows such a jotting to occur. I bind remember to C-x C-n. I supply a headline (i.e. "picked up sticks in the yard") and type a few things, and hit C-c C-c when I am done. I am prompted for a wikiname (with full completion) and the note is written there with a time stamp. The nice thing is that the headline is also duplicated on my daily page. The headline has a hyperlink back to the project page and vice versa, so everything is connected. (i.e. in the image above, clicking on "ComputerStuff#22" takes me to the 22nd note in the project file "ComputerStuff").

If you invoke remember while in an emacs buffer, remember is smart enough to add a hyperlink to the file you are currently visiting if you do:

(require 'remember);
;; remember-planner - a must have...
(require 'remember-planner)
(setq remember-handler-functions '(remember-planner-append))
(setq remember-annotation-functions planner-annotation-functions)

To get annotations from gnus and bbdb:

(require 'planner-gnus)
(planner-gnus-insinuate)
(require 'planner-bbdb);

Adding a diary entry.

Because my diary entries appear in my planner page, the same hyperlinking was desirable there as well. So I wrote a little function to snarf that hyper link in as well, which Sacha cleaned up quite a bit. This is particularly nice if you are reading mail and need to make an appointment from it (see the Daily page above). Typing C-x C-d will take an annotation from the current buffer and put it into a diary entry. You are prompted for a date and time, as well as a message. You can then edit your diary file as well.
  (defun planner-diary-add-entry (date time text)
    "Prompt for a diary entry to add to `diary-file'.  Will run
    planner-annotations to make hyper links"
    (interactive (list (planner-read-date)
  		     (read-string "Time: ")
                     (read-string "Diary entry: ")))
    (save-excursion
      (save-window-excursion
        (make-diary-entry
         (concat
          (let ((cal-date (planner-filename-to-calendar-date date)))
            (if european-calendar-style
                (format "%d/%d/%d"
                        (elt cal-date 1)
                        (elt cal-date 0)
                        (elt cal-date 2))
              (format "%d/%d/%d"
                      (elt cal-date 0)
                      (elt cal-date 1)
                      (elt cal-date 2))))
          " " time " " text " "
          (run-hook-with-args-until-success
           'planner-annotation-functions))))))

   (define-key global-map [?\C-x ?\C-d] 'planner-diary-add-entry)

Displaying diary entries is done via planner-diary.el:

(require 'planner-diary)
(setq planner-diary-use-diary t)
(planner-insinuate-diary)
(planner-insinuate-calendar)
(setq planner-diary-number-of-days 7)
(setq planner-diary-number-of-diary-entries 7)
(setq planner-diary-file diary-file)

Planner Mode

Planner mode is available from http://www.emacswiki.org/cgi-bin/wiki/PlannerMode

Planner mode and OS X

I've moved to using OS X and have started to collect scripts to make interacting with Mail.app and iCal better. See here.


Last Modified: July 31, 2011
Powered by Emacs Muse Jody Klymak - jklymak@uvic.ca