Next: , Previous: Modifying Tasks, Up: Organizing Your Tasks


6.2.2.4 Carrying Over Unfinished Tasks

Sometimes you won't be able to cross off all the tasks on your list. Planner makes it easy for you to keep track of things you still have to do by automatically rescheduling unfinished tasks from the past few days. By default, the plan command searches for unfinished tasks from the last three days and reschedules them onto today. If you open Planner every day, this should cover weekends easily.

It's a good idea to start Planner whenever you start Emacs. That way, Planner can help remind you about today's tasks, appointments, and other things. To automatically start Planner whenever you start up Emacs, add the following code to the end of your ~/.emacs:

     (plan)

Now, every time you start Emacs (which should be more or less once a day), you'll see today's page. If you don't finish all the tasks today, you'll see them again tomorrow.

It's a good idea to start Planner every time you start Emacs so that you get reminded about your task list. If you prefer to start Planner manually, remember to call M-x plan every so often to make sure that you don't forget any unfinished tasks. Safe in the knowledge that Planner tasks won't slip through the cracks (unlike little slips of paper that will invariably get mislaid), you can then get on with the rest of your life.

If your increased productivity with Planner leads to a well-deserved two-week vacation, then you'll need to tell Planner to search more days for unfinished tasks. By using M-x plan, you can automatically bring forward tasks over a given number of days or even scan all the days since time immemorial. C-u 15 M-x plan reschedules all unfinished tasks from the last 15 days. C-u -1 M-x plan checks all of your past day pages for unfinished tasks.

Like everything else in Planner, you can adapt M-x plan to your particular way of life. For example, if you find yourself starting up Emacs and Planner every day–including weekends–because it's just so much fun, you can set the planner-carry-tasks-forward to 1. This can make your Emacs startup marginally faster. On the other hand, if you normally start Emacs once a week, you can set it to 7 or 8. If you're worried about tasks dropping off your radar, you can set it to 0. You can set the value of planner-carry-tasks-forward either with <M-x customize-variable RET planner-carry-tasks-forward RET>, or by putting (setq planner-carry-tasks-forward 3) (replacing 3 with the value appropriate for what you want) in your ~/.emacs file.

On the other hand, you might prefer to reschedule tasks yourself. If you set planner-carry-tasks-forward to nil, then M-x plan and (plan) will bring you to the most recent page with unfinished tasks if there is no page for today. You can then use planner-copy-or-move-task and planner-copy-or-move-region to reschedule tasks. This is probably more hassle than it's worth, though, so let Planner take care of this for you.

Options

— User Option: planner-carry-tasks-forward

If non-nil, carry unfinished tasks forward automatically. If a positive integer, scan that number of days in the past. If 0, scan all days for unfinished tasks. If t, scan one day in the past (old behavior). If nil, do not carry unfinished tasks forward.

Functions

— Function: plan &optional force-days

Start your planning for the day, carrying unfinished tasks forward.

If force-days is a positive integer, search that many days in the past for unfinished tasks. If force-days is 0 or t, scan all days. If force-days is nil, use the value of planner-carry-tasks-forward instead, except t means scan only yesterday

— Function: planner-copy-or-move-task date force

Reschedule the task for date. If force is non-nil, the task is moved regardless of status. It also works for creating tasks from a Note. Use planner-replan-task if you want to change the plan page in order to get better completion.

— Function: planner-copy-or-move-region beg end date muffle-errors

Move all tasks from beg to end to date. planner-copy-or-move-region will copy or move all tasks from the line containing beg to the line just before end. If muffle-errors is non-nil, no errors will be reported.