Entries in the agenda buffer are linked back to the Org file or diary file where they originate. You are not allowed to edit the agenda buffer itself, but commands are provided to show and jump to the original entry location, and to edit the Org files “remotely” from the agenda buffer. In this way, all information is stored only once, removing the risk that your agenda and note files may diverge.
Some commands can be executed with mouse clicks on agenda lines. For the other commands, the cursor needs to be in the desired line.
org-agenda-current-spandays. For example, if the display covers a week, switch to the following week. With prefix arg, go forward that many times
org-log-done) are shown in the agenda, as are entries that have been clocked on that day. You can configure the entry types that should be included in log mode using the variable
org-agenda-log-mode-items. When called with a C-u prefix, show all possible logbook entries, including state changes. When called with two prefix args C-u C-u, show only logging information, nothing else. v L is equivalent to C-u v l.
ARCHIVEDare also scanned when producing the agenda. When you use the capital A, even all archive files are included. To exit archives mode, press v a again.
org-agenda-start-with-clockreport-mode. By using a prefix argument when toggling this mode (i.e., C-u R), the clock table will not show contributions from entries that are hidden by agenda filtering1. See also the variable
org-agenda-clock-consistency-checksfor information on how to customize the definition of what constituted a clocking problem. To return to normal agenda display, press l to exit Logbook mode.
org-agenda-entry-text-maxlines. Calling this command with a numeric prefix argument will temporarily modify that number to the prefix value.
#+COLUMNSline, or from the default variable
org-columns-default-format), will be used in the agenda.
<another time will remove this filter. You can add a filter preset through the option
You will be prompted for a tag selection letter; <SPC> will mean any tag at all. Pressing <TAB> at that prompt will offer use completion to select a tag (including any tags that do not have a selection character). The command then hides all entries that do not contain or inherit this tag. When called with prefix arg, remove the entries that do have the tag. A second / at the prompt will turn off the filter and unhide any hidden entries. If the first key you press is either + or -, the previous filter will be narrowed by requiring or forbidding the selected additional tag. Instead of pressing + or - after /, you can also immediately use the \ command.
In order to filter for effort estimates, you should set up allowed efforts globally, for example
(setq org-global-properties '(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00")))
You can then filter for an effort by first typing an operator, one of
<, >, and =, and then the one-digit index of an effort
estimate in your array of allowed values, where 0 means the 10th value.
The filter will then restrict to entries with effort smaller-or-equal, equal,
or larger-or-equal than the selected value. If the digits 0–9 are not used
as fast access keys to tags, you can also simply press the index digit
directly without an operator. In this case, < will be assumed. For
application of the operator, entries without a defined effort will be treated
according to the value of
org-sort-agenda-noeffort-is-high. To filter
for tasks without effort definition, press ? as the operator.
Org also supports automatic, context-aware tag filtering. If the variable
org-agenda-auto-exclude-function is set to a user-defined function,
that function can decide which tags should be excluded from the agenda
automatically. Once this is set, the / command then accepts RET
as a sub-option key and runs the auto exclusion logic. For example, let's
say you use a
Net tag to identify tasks which need network access, an
Errand tag for errands in town, and a
Call tag for making phone
calls. You could auto-exclude these tags based on the availability of the
Internet, and outside of business hours, with something like this:
(defun org-my-auto-exclude-function (tag) (and (cond ((string= tag "Net") (/= 0 (call-process "/sbin/ping" nil nil nil "-c1" "-q" "-t1" "mail.gnu.org"))) ((or (string= tag "Errand") (string= tag "Call")) (let ((hour (nth 2 (decode-time)))) (or (< hour 8) (> hour 21))))) (concat "-" tag))) (setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function)
org-archive-default-command. When using the
akey, confirmation will be required.
org-agenda-show-inherited-tags, but still want to see all tags of a headline occasionally.
org-log-into-drawer, this may be inside a drawer.
org-capture, but use the date at point as the default date for the capture template. See org-capture-use-agenda-date to make this the default behavior of
tor hit p at the prompt.
* Toggle persistent marks. $ Archive all selected entries. A Archive entries by moving them to their respective archive siblings. t Change TODO state. This prompts for a single TODO keyword and changes the state of all selected entries, bypassing blocking and suppressing logging notes (but not timestamps). + Add a tag to all selected entries. - Remove a tag from all selected entries. s Schedule all items to a new date. To shift existing schedule dates by a fixed number of days, use something starting with double plus at the prompt, for example ‘++8d’ or ‘++2w’. d Set deadline to a specific date. r Prompt for a single refile target and move all entries. The entries will no longer be in the agenda; refresh (g) to bring them back. S Reschedule randomly into the coming N days. N will be prompted for. With prefix arg (C-u B S), scatter only across weekdays. f Apply a function3 to marked entries. For example, the function below sets the CATEGORY property of the entries to web. (defun set-category () (interactive "P") (let* ((marker (or (org-get-at-bol 'org-hd-marker) (org-agenda-error))) (buffer (marker-buffer marker))) (with-current-buffer buffer (save-excursion (save-restriction (widen) (goto-char marker) (org-back-to-heading t) (org-set-property "CATEGORY" "web"))))))
If you configure
org-agenda-diary-file to point to an Org mode file,
Org will create entries (in Org mode syntax) in that file instead. Most
entries will be stored in a date-based outline tree that will later make it
easy to archive appointments from previous months/years. The tree will be
built under an entry with a
DATE_TREE property, or else with years as
top-level entries. Emacs will prompt you for the entry text—if you specify
it, the entry will be created in
org-agenda-diary-file without further
interaction. If you directly press <RET> at the prompt without typing
text, the target file will be shown in another window for you to finish the
entry there. See also the k r command.
org-agenda-exporter-settingsto set options for ps-print and for htmlize to be used during export.
 Only tags filtering will be respected here, effort filtering is ignored.
 Custom commands can preset a filter by
binding the variable
org-agenda-tag-filter-preset as an option. This
filter will then be applied to the view and persist as a basic filter through
refreshes and more secondary filtering. The filter is a global property of
the entire agenda view—in a block agenda, you should only set this in the
global options section, not in the section of an individual block.
 You can also create persistent custom functions through
 This file is parsed for the agenda when
org-agenda-include-diary is set.