Today I got this question in my comments for a video of my old orgmode tutorial series:
„would love to get a copy of your template files you use for both your journal entry and for your weekly review.“
So let me answer these questions.
The journaling part of life
This might sound sad for some of my followers, but a few months ago I switched my journaling system to Obsidian. I tried a while with org-roam to create a personal knowledge management system like Tiago Forte was describing it in „Building a scond brain„, but I always had too much fricton and so I rarely used this system. Now after switching to Obsidian I use this every day for journaling and note taking.
The weekly review part of life
Orgmode is still and will be also in the future my favorite personal productivity system. Its best suited to keep in control of all my tasks and responsibilities. But, if you want your system to run perfectly like an engine, you need frequent maintenance. In this case the maintenance job is called „weekly review“.
When I was recording the video linked above in 2016 I had the (at this time great) idea, that I create a template with a checklist for my weekly review and whenever I need to do that review I create an entry in a log file where I then check off all items of that checklist and at the end the weekly review is perfectly done.
The dark side of this is that I ended up with a constantly growing logfile that has nothing else than completed checklists in it. So either do some housekeeping stuff there too or find another solution.
Now, some years later the weekly review is a recurring task in my org file. This task looks like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
** REPEAT Weekly Review privat SCHEDULED: <2024-01-07 So ++1w> :PROPERTIES: :ID: 2d47045a-c960-489f-8d71-de35ea036a19 :Effort: 0:30 :LOGGING: nil :RESET_CHECK_BOXES: t :END: Desired outcome: WR done on a frequent schedule :LOGBOOK: - Added: [2017-09-17 So 15:49] :END: - You might use clock-in & clock-out to record the time for this WR BOOTUP ========= - [ ] Remove all NEW tags from the tasks in the backlog GET CLEAN ========= Inbox Zero (Create new tasks if needed): - [ ] Snail Mail - [ ] Email - [ ] Journal - [ ] Voicemail, Others - [ ] Meeting minutes of meetings last week - [ ] Other reference material Braindump 1: - [ ] Set a timer for 5 minutes and write down whats in your mind CHECK CURRENT ============= Check WAITING actions and do this for each item: - [ ] Did something get delivered? If so change status to NEXT - [ ] Postpone reminder if still waiting and its overdue Check DELEGATED actions and do this for each item: - [ ] Is the task finished? If so mark it as DONE - [ ] Is the task overdue? If so schedule a supportive action Check your projects and tasks in detail: - [ ] Review Project List, is something stuck? - [ ] Check your rotten tasks and do something about it - [ ] See your goals list and the associated actions - [ ] Browse hrough your actions and mark finished things DONE or CANCELLED - [ ] Schedule tasks with no date - [ ] See your schedule for the next 2 weeks an reschedule if its too full Rate your performance, energy and write a journal entry: - [ ] Check last weeks daily plan on how good the performace was - [ ] Create short Journal entry of what was bad & good last week FUTURE ACTIONS ============== Prepare for the future: - [ ] Is a Someday/Maybe becoming a task/project? - [ ] If a Someday is no longer of interest set it to "Cancelled". Braindump 2: - [ ] Set timer to 5 minutes and start dreaming - [ ] Put the results into Actions/Someday/Maybe WR SHUTDOWN & ARCHIVING ======================= - [ ] Go through REPEAT actions and shorten the logbook if needed - [ ] Select finished tasks in agenda view and do a bulk archive action |
So you see the empty checklist with all my checkpoints. The schedule is repeating, so that it is due every Sunday. So when I do the review I just see what checkpoint is next and then I do this step and check it off by positioning the cursor on the line and pressing CTRL-C twice.
For some of the steps I created custom views that help me to see only those parts of my org-system that I need. So in Lisp code part in my custome-agenda-settings looks like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
("W" . "Weekly Review Helper") ("Wn" "New tasks" tags "NEW" ((org-agenda-overriding-header "NEW Tasks"))) ("Wd" "Check DELEGATED tasks" todo "DELEGATED" ((org-agenda-overriding-header "DELEGATED tasks"))) ("Ww" "Check WAITING tasks" todo "WAITING" ((org-agenda-overriding-header "WAITING tasks"))) ("Ws" "Check SOMEDAY tasks" todo "SOMEDAY" ((org-agenda-overriding-header "SOMEDAY tasks"))) ("Wf" "Check finished tasks" todo "DONE|CANCELLED|FORWARDED" ((org-agenda-overriding-header "Finished tasks"))) ("WP" "Planing ToDos (unscheduled) only" tags-todo "-HOBBY+TODO=\"TODO\"|-HOBBY+TODO=\"NEXT\"" ((org-agenda-overriding-header "Planungsübersicht") (org-agenda-skip-function (quote (org-agenda-skip-entry-if (quote scheduled) (quote deadline)))))) ("WR" "Rotten tasks (more than 10x rescheduled)" tags-todo "ROTTEN>10" ((org-agenda-overriding-header "Rotten tasks that you always reschedule"))) |
The most complicated part is the „Planing ToDos“, here I want to display every „TODO“ or „NEXT“ task to set a scheduled date, except the tasks that I consider as a hobby, because I don’t want to force myself with tight schedules.
The part on the „rotten tasks“ is a way to fight procrastination, which is described here.
Back to the weekly review task. So when the task is finished, I mark it „DONE“ and due to the recurring schedule it will be scheduled for the next week Sunday again. To get rid of all noch checked checkboxes there is this setting in the PROPERTIES drawer:
1 2 |
:RESET_CHECK_BOXES: t |
Of course this setting alone won’t do the job. You need some lisp code in your Emacs init file:
1 2 3 4 5 6 7 8 9 10 |
(defun org-reset-checkbox-state-maybe () "Reset all checkboxes in an entry if the `RESET_CHECK_BOXES' property is set" (interactive "*") (if (org-entry-get (point) "RESET_CHECK_BOXES") (org-reset-checkbox-state-subtree))) (defun org-checklist () (when (member org-state org-done-keywords) ;; org-state dynamically bound in org.el/org-todo (org-reset-checkbox-state-maybe))) |
So with this code snippet we call the „org-reset-checkbox-state-maybe“ function whenever a task gets a keyword that consideres this task as „done“. And then it checks for that „RESET_CHECK_BOXES“ property and if it is set to „t“ (true) it will clear all checkboxes in that task entry.
So now I dont’t need a template or an extra log file for my weekly reviews. I just do them when they need to be done, the checklist helps me not to forget anything and when I’m finished everything is ready again for the next week.
Additonal note: The checklist above is for my „private“ stuff. I have a similar weekly review for my work stuff that is due every Thursday. And there I might have other things, e.g. under „GET CLEAN“ I have checks for all my inboxes, e.g. „Bugzilla“, „Jira“, „Redmine“ and so on. So what you see here fits my needs, if you have other things that you need to check in your weekly review you can do so by just modifying the checklist.
Maybe add one more line to your last code snippet:
(add-hook ‚org-after-todo-state-change-hook ‚org-checklist)
Those were meant to be apostrophes, not commas. They must have gotten messed up in the submission.
Hello,
thank you for sharing your enthusiasm with like minded fellows!
have you tried Logseq with Orgmode files? for me is a wonderful setup combining a daily journal with a knowledge management system …