Track when you have done a review in org mode.
Tasks typically have Scheduled and Deadline time stamps, which define when the task has to be done. Org-review lets you attach an additional review time stamp to a task, which can be used to schedule a review of the task.
TLDR This is what I use in my elpaca configuration.
(use-package org-review
:ensure (:fetcher github :repo "brabalan/org-review")
:bind (:map org-agenda-mode-map
("C-c C-r" . org-review-insert-last-review)))
- Copy
org-review.el
to a path known to emacs and add the following to your emacs configuration file.(require 'org-review)
- Configure an agenda view that shows the projects that are available for review. You could for instance add the following in your emacs configuration file.
(setq org-agenda-custom-commands '(("R" "Review projects" tags-todo "-CANCELLED/" ((org-agenda-overriding-header "Reviews Scheduled") (org-agenda-skip-function 'org-review-agenda-skip) (org-agenda-cmp-user-defined 'org-review-compare) (org-agenda-sorting-strategy '(user-defined-down))))))
- If you want to mark a project reviewed when you are in an agenda view, you can do so by assigning a key binding for the
org-review-insert-last-review
function.(add-hook 'org-agenda-mode-hook (lambda () (local-set-key (kbd "C-c C-r") 'org-review-insert-last-review)))
Entries will be scheduled for review if their NEXT_REVIEW
or
their LAST_REVIEW
property is set. The next review date is
the NEXT_REVIEW
date, if it is present, otherwise it is computed
from the LAST_REVIEW
property and the REVIEW_DELAY
period, such
as +1m
. If REVIEW_DELAY
is absent, a default period is used. Note
that the LAST_REVIEW
property is not considered as inherited,
but REVIEW_DELAY
is, allowing to set it for whole subtrees.
To set these properties, you may use the org-set-property
command
(bound to C-c C-x p
by default). For the NEXT_REVIEW
property,
a command org-review-insert-next-review
is provided, that prompts
for a date and inserts it.
Checking of review dates is done through an agenda view, using
the org-review-agenda-skip
skipping function. This function is based
on org-review-toreview-p
, that returns nil
if no review is
necessary (no review planned or it happened recently), otherwise it
returns the date the review was first necessary (NEXT_REVIEW
,
or LAST_REVIEW + REVIEW_DELAY
, if it is in the past).
To mark an entry as reviewed, use the
function org-review-insert-last-review
to set the LAST_REVIEW
date
to the current date. If org-review-sets-next-date
is set (which is
the default), this function also computes the date of the next review
and inserts it as NEXT_REVIEW
.
Several options, such as the format of the time stamps, may be set
using the customize-group
command for the org-review
group.