One day with Planner
The daily rituals I described yesterday can also be done with Planner, another personal information manager for Emacs. In fact, I spent about four years managing my tasks using Planner before I tried out Org. My process then was similar to my Org process now in that I wrote the tasks down before I tried to organize or do them, and I built in some time for a review. The difference was that I didn't organize most of my tasks into separate projects (or plan pages, as Planner calls them). Instead, I tended to organize them according to day. This was helpful when publishing my blog, as I could post my task list along with it. I also liked the greater control I had over my daily task list, and I often used blank lines or extra notes to keep things organized.
The core of the process was the same, though:
- Get the tasks out of your head.
- Schedule the tasks.
- Do the tasks.
- Review the tasks.
Get the tasks out of your head
The first thing I did each day was to put all of my tasks into my Planner. I briefly scanned through my mail looking for action items, and whenever I found something I needed to do that would take more than two minutes, I created a task for it using planner-create-task-from-buffer. This automatically created a hyperlink back to the e-mail or file I was reading, and included useful information such as the e-mail author.
I treated appointments just like tasks, although I added a timestamp like @13:00 to make it easier to see and sort my appointments.
planner-create-task-from-buffer helped me keep track of reactive tasks, or things that I needed to do because someone else asked me to do them. However, I also made a point of reviewing my goals and making up my own tasks so that I could work on my personal projects. For example, I had a plan page where I put all my writing ideas, and I added those tasks to today's page once in a while.
I also scanned the last few day pages to see if I'd missed anything, and the next few days to see if I needed to plan for anything. Although the M-x plan command automatically brings tasks forward, I didn't use it to start my day. Instead, I reviewed the last three days or so, marking tasks that I'd completed but not updated, cancelling tasks I no longer wanted or needed to do, and rescheduling other tasks forward using C-c C-c (planner-copy-or-move-task). I also reviewed the next three days or so. C-c C-j C-y (planner-goto-yesterday) and C-c C-j C-t (planner-goto-tomorrow) were handy for flipping through pages. To make the shortcuts shorter and more natural, I bound them to F9 F8 and F9 F10 with:
(global-set-key (kbd "<f9> <f8>") 'planner-goto-yesterday) (global-set-key (kbd "<f9> <f10>") 'planner-goto-tomorrow)
At the end of this step, I had all the things I needed to do scheduled for today.
So the first thing you need to do is get used to creating tasks quickly. Get them out of your head and into Planner, where you can then schedule, organize, act on, and review them. You can bind planner-create-task-from-buffer to a convenient shortcut key such as C-c t SPC by using the following code in your ~/.emacs:
(global-set-key (kbd "C-c t SPC") 'planner-create-task-from-buffer)
By default, planner-create-task-from-buffer asks you for a date and a plan page when you create tasks. You can either slow down and think about this, hit RET twice to accept the defaults, or modify Planner so that it doesn't prompt you at all. Being lazy, I chose to let Planner put all the tasks on today's page and a copy on the TaskPool plan page for backup. If I knew I had to do something on a specific date, I could tell it to prompt for the date by using the prefix argument (C-u before the command).
Here's the code that makes that happen:
(defun sacha/planner-read-task ()
"Do not prompt for date unless the prefix argument is given."
(let ((planner-expand-name-favor-future-p t))
(list (read-string "Describe task: ")
(if current-prefix-arg (planner-read-date) (planner-today))
"TaskPool"
planner-default-task-status)))
(defalias 'planner-read-task 'sacha/planner-read-task)
Organize the tasks
Getting the tasks out of my head often resulted in a long list of tasks, not all of which I needed to do or could even do that day. Then it was time to ruthlessly use C-c C-c (planner-copy-or-move-task) and M-x planner-copy-or-move-region to trim my task list down to a manageable size. I moved tasks that didn't need to be done on a certain date to the TaskPool, which I checked whenever I had some free time.
If I wanted to assign a task to a specific time, I just added a timestamp such as @14:30 to the task. I had some code which automatically sorted the tasks by time, so it would go to the right place.
I also used M-down and M-up (planner-lower-task and planner-raise-task) to move tasks around. To visually group tasks, I added blank lines and explanatory text. For example, I put errands together and I moved the tasks up and down into a logical order for doing things.
If there were a lot of small items in my day, I also separated the "must-be-dones" from the "nice-to-dos". This wasn't related to the importance of the task, just the urgency. Urgent items went in the first group, and non-urgent items went in the second group of tasks.
At the end of this step, I had a daily plan page which showed me my tasks and appointments for the day, in the rough order in which I planned to do them. I also had some tasks on future days, and some tasks in my TaskPool.
Do the tasks
Now that all my tasks were on the page, it was easy to go through them. To start working on a task, I marked it as in-progress with C-c C-i (planner-task-in-progress). If I needed to postpone it, I used C-c C-p (planner-task-pending). To mark it finished, I used C-c C-x (planner-task-done). To mark it cancelled, I used C-c C-S-x (planner-task-cancelled; does not work in some terminals).
Because I had loaded planner-timeclock.el using code like this:
(require 'planner-timeclock)
the clock automatically started when I marked tasks as in-progress and stopped when I marked tasks as pending or done. I could also clock out of a task manually by using C-c C-o (timeclock-out).
Review the tasks
To review what I did that day, all I had to do was go to the day page using planner-goto-today, which I bound to F9 F9 with:
(global-set-key (kbd "<f9> <f9>") 'planner-goto-today)
I checked my timeclock reports with M-x planner-timeclock-summary-show, which gave me reports that looked like this:
Timeclock summary report for 2007.11.25 Project | Time | Ratio | Task Not Planned | 0:28:38 | 38.6% | Do weekly review . | 0:45:37 | 61.4% | Figure out how to set up syndicated blog on Wordpress Total: | 1:14:15 | 100.0% | . Day began: 21:01:20, Day ended: 22:16:06 Time elapsed: 1:14:46, Time clocked: 1:14:15 Time clocked ratio: 99.3%
It's easy to configure planner-timeclock-summary to add that report to day pages automatically, but I rarely checked my time usage then, so I didn't set that up. I also didn't usually need to see my time summary for a particular project, but you could get that with planner-timeclock-summary-proj.el.
So at the end of this step, I had a warm and fuzzy feeling from seeing many checked-off tasks on my task list. I published my task list to the Net, too, which made it easy for other people to keep up to date with what I was doing. Good stuff.
Planner helped me keep track of the different things I wanted to do. Working with the other Planner geeks was also an incredible experience. I've switched to Org for my task management because Org does timeclocking better, but I still miss being able to easily organize, publish, and tweak my daily task list. =) If you're new to Emacs planning, I suggest giving both OrgMode and PlannerMode a try!
On Technorati: emacs, wickedcoolemacs, book
Save to - del.icio.us - Digg it - reddit - StumbleUpon
You can also do (global-set-key [f8] 'function-name) - it makes it a bit more clear, in my opinion.
Hey, thanks for two great posts!
As an undergrad (1st year), I'm learning that I've to plan, and get a grip on my life and time. I'm a real mess right now, but I'm already aspiring to becoming a tidy org-mode user.
Happy new year, from Portugal.
I'd be very interested to know why you switched from Planner to Org mode. I use Org mode a little, but I've thought about using it much more. Is there any particularly reason to choose one mode over the other?
Thanks. Great set of articles by the way.
Jeremiah: Thanks for catching that. PRE ate my brackets again. I really should look into why the example tag isn't escaping all these literals… =)
rtra: Good for you! Glad to hear you're learning to plan early. =) (Never too late!)
Hey, nice article! Thank you for the workflow
PS.: Great blog, I liked the new design
Marcelo: You're welcome. I'd love to hear your tips! =)