comparison man/org.texi @ 68033:59e35f6b8ff4

(Agenda Views): Chapter reorganized.
author Carsten Dominik <dominik@science.uva.nl>
date Thu, 05 Jan 2006 08:06:36 +0000
parents fb1d73360521
children b76904a36e7e
comparison
equal deleted inserted replaced
68032:f3a9c72833ec 68033:59e35f6b8ff4
2 @c %**start of header 2 @c %**start of header
3 @c @setfilename org 3 @c @setfilename org
4 @setfilename ../info/org 4 @setfilename ../info/org
5 @settitle Org Mode Manual 5 @settitle Org Mode Manual
6 6
7 @set VERSION 4.01 7 @set VERSION 4.02
8 @set DATE December 2005 8 @set DATE January 2006
9 9
10 @dircategory Emacs 10 @dircategory Emacs
11 @direntry 11 @direntry
12 * Org Mode: (org). outline-based notes management and organizer. 12 * Org Mode: (org). outline-based notes management and organizer
13
13 @end direntry 14 @end direntry
14 15
15 @c Version and Contact Info 16 @c Version and Contact Info
16 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage} 17 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
17 @set MAINTAINER Carsten Dominik 18 @set MAINTAINER Carsten Dominik
33 @end macro 34 @end macro
34 35
35 @copying 36 @copying
36 This manual is for Org-mode (version @value{VERSION}). 37 This manual is for Org-mode (version @value{VERSION}).
37 38
38 Copyright @copyright{} 2004, 2005 Free Software Foundation 39 Copyright @copyright{} 2004, 2005, 2006 Free Software Foundation
39 40
40 @quotation 41 @quotation
41 Permission is granted to copy, distribute and/or modify this document 42 Permission is granted to copy, distribute and/or modify this document
42 under the terms of the GNU Free Documentation License, Version 1.1 or 43 under the terms of the GNU Free Documentation License, Version 1.1 or
43 any later version published by the Free Software Foundation; with no 44 any later version published by the Free Software Foundation; with no
103 * Visibility cycling:: Show and hide, much simplified 104 * Visibility cycling:: Show and hide, much simplified
104 * Motion:: Jumping to other headlines 105 * Motion:: Jumping to other headlines
105 * Structure editing:: Changing sequence and level of headlines 106 * Structure editing:: Changing sequence and level of headlines
106 * Archiving:: Move done task trees to a different place 107 * Archiving:: Move done task trees to a different place
107 * Sparse trees:: Matches embedded in context 108 * Sparse trees:: Matches embedded in context
108 * Tags:: 109 * Tags:: Tagging headlines and matching sets of tags
109 * Plain Lists:: Editing hand-formatted lists 110 * Plain Lists:: Editing hand-formatted lists
110 111
111 Tables 112 Tables
112 113
113 * Built-in table editor:: Simple tables 114 * Built-in table editor:: Simple tables
150 * Time stamps:: Assigning a time to a tree entry 151 * Time stamps:: Assigning a time to a tree entry
151 * Creating timestamps:: Commands which insert timestamps 152 * Creating timestamps:: Commands which insert timestamps
152 153
153 Agenda Views 154 Agenda Views
154 155
155 * Agenda:: Your weekly planner 156 * Agenda files:: Files being searched for agenda information
156 * Global TODO list:: Overview over all things to do 157 * Agenda dispatcher:: Keyboard access to agenda views
157 * Matching headline tags:: Select information based on tags 158 * Weekly/Daily Agenda:: The calendar page with current tasks
159 * Global TODO list:: All infinished action items
160 * Matching headline tags:: Structured information with fine-tuned search
158 * Timeline:: Time-sorted view for single file 161 * Timeline:: Time-sorted view for single file
159 * Agenda commands:: Remote editing of org trees 162 * Agenda commands:: Remote editing of org trees
163
164 Weekly/Daily Agenda
165
166 * Categories:: Not all tasks are equal
167 * Time-of-day specifications:: How the agenda knows the time
160 * Calendar/Diary integration:: Integrating Anniversaries and more 168 * Calendar/Diary integration:: Integrating Anniversaries and more
161 169 * Sorting of agenda items:: The order of things
162 Calendar/Diary integration
163
164 * Diary to agenda:: Agenda incorporates the diary
165 * Agenda to diary:: Diary incorporates the agenda
166 170
167 Exporting 171 Exporting
168 172
169 * ASCII export:: Export as a structured ASCII file 173 * ASCII export:: Export as a structured ASCII file
170 * HTML export:: Export as an HTML file 174 * HTML export:: Export as an HTML file
331 * Visibility cycling:: Show and hide, much simplified 335 * Visibility cycling:: Show and hide, much simplified
332 * Motion:: Jumping to other headlines 336 * Motion:: Jumping to other headlines
333 * Structure editing:: Changing sequence and level of headlines 337 * Structure editing:: Changing sequence and level of headlines
334 * Archiving:: Move done task trees to a different place 338 * Archiving:: Move done task trees to a different place
335 * Sparse trees:: Matches embedded in context 339 * Sparse trees:: Matches embedded in context
336 * Tags:: 340 * Tags:: Tagging headlines and matching sets of tags
337 * Plain Lists:: Editing hand-formatted lists 341 * Plain Lists:: Editing hand-formatted lists
338 @end menu 342 @end menu
339 343
340 @node Outlines, Headlines, Document Structure, Document Structure 344 @node Outlines, Headlines, Document Structure, Document Structure
341 @section Outlines 345 @section Outlines
561 565
562 An important feature of Org-mode is the ability to construct 566 An important feature of Org-mode is the ability to construct
563 @emph{sparse trees} for selected information in an outline tree. A 567 @emph{sparse trees} for selected information in an outline tree. A
564 sparse tree means that the entire document is folded as much as 568 sparse tree means that the entire document is folded as much as
565 possible, but the selected information is made visible along with the 569 possible, but the selected information is made visible along with the
566 headline structure above it@footnote{See also the variable 570 headline structure above it@footnote{See also the variables
571 @code{org-show-hierarchy-above} and
567 @code{org-show-following-heading}.}. Just try it out and you will see 572 @code{org-show-following-heading}.}. Just try it out and you will see
568 immediately how it works. 573 immediately how it works.
569 574
570 Org-mode contains several commands creating such trees. The most 575 Org-mode contains several commands creating such trees. The most
571 basic one is @command{org-occur}: 576 basic one is @command{org-occur}:
579 In order to provide minimal context, also the full hierarchy of 584 In order to provide minimal context, also the full hierarchy of
580 headlines above the match is shown, as well as the headline following 585 headlines above the match is shown, as well as the headline following
581 the match. Each match is also highlighted, the highlights disappear 586 the match. Each match is also highlighted, the highlights disappear
582 when the buffer is changed with an editing command. 587 when the buffer is changed with an editing command.
583 @end table 588 @end table
584 589 @noindent
585 Other commands are using this feature as well. For example @kbd{C-c 590 For frequently used sparse trees of specific search strings, you can
591 use the variable @code{org-agenda-custom-commands} to define fast
592 keyboard access to specific sparse trees. These commands will then be
593 accessible through the agenda dispatcher (@pxref{Agenda dispatcher}).
594 For example
595 @lisp
596 (setq org-agenda-custom-commands
597 '(("f" occur-tree "FIXME")))
598 @end lisp
599 @noindent will define the key @kbd{C-c a f} as a shortcut for creating
600 a sparse tree matching the string @samp{FIXME}.
601
602 Other commands are using sparse trees as well. For example @kbd{C-c
586 C-v} creates a sparse TODO tree (@pxref{TODO basics}). 603 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
587 604
588 @kindex C-c C-x v 605 @kindex C-c C-x v
589 @cindex printing sparse trees 606 @cindex printing sparse trees
590 @cindex visible text, printing 607 @cindex visible text, printing
653 Create a sparse tree with all headlines matching a tags search. 670 Create a sparse tree with all headlines matching a tags search.
654 @kindex C-c a m 671 @kindex C-c a m
655 @item C-c a m 672 @item C-c a m
656 Create a global list of tag matches from all agenda files. 673 Create a global list of tag matches from all agenda files.
657 @xref{Matching headline tags}. 674 @xref{Matching headline tags}.
675 @kindex C-c a M
676 @item C-c a M
677 Create a global list of tag matches from all agenda files, but check
678 only TODO items and force checking subitems (see variable
679 @code{org-tags-match-list-sublevels}).
658 @end table 680 @end table
659 681
660 A tags search string can use Boolean operators @samp{&} for AND and 682 A tags search string can use Boolean operators @samp{&} for AND and
661 @samp{|} for OR. @samp{&} binds more strongly than 683 @samp{|} for OR. @samp{&} binds more strongly than
662 @samp{|}. Parenthesis are currently no implemented. A tag may also be 684 @samp{|}. Parenthesis are currently no implemented. A tag may also be
1648 numerical prefix N, show the tree for the Nth keyword in the variable 1670 numerical prefix N, show the tree for the Nth keyword in the variable
1649 @code{org-todo-keywords}. 1671 @code{org-todo-keywords}.
1650 @kindex C-c a t 1672 @kindex C-c a t
1651 @item C-c a t 1673 @item C-c a t
1652 Show the global TODO list. This collects the TODO items from all 1674 Show the global TODO list. This collects the TODO items from all
1653 agenda files (@pxref{Agenda}) into a single buffer. The buffer is in 1675 agenda files (@pxref{Agenda Views}) into a single buffer. The buffer is in
1654 @code{agenda-mode}, so there are commands to examine and manipulate 1676 @code{agenda-mode}, so there are commands to examine and manipulate
1655 the TODO entries directly from that buffer (@pxref{Agenda commands}). 1677 the TODO entries directly from that buffer (@pxref{Agenda commands}).
1656 @xref{Global TODO list}, for more information. 1678 @xref{Global TODO list}, for more information.
1657 @item @code{org-agenda-include-all-todo} 1679 @item @code{org-agenda-include-all-todo}
1658 If you would like to have all your TODO items listed as part of your 1680 If you would like to have all your TODO items listed as part of your
1672 Then each time you turn a TODO entry into DONE using either @kbd{C-c 1694 Then each time you turn a TODO entry into DONE using either @kbd{C-c
1673 C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line 1695 C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line
1674 @samp{CLOSED: [timestamp]} will be inserted just after the headline. 1696 @samp{CLOSED: [timestamp]} will be inserted just after the headline.
1675 If you turn the entry back into a TODO item again through further 1697 If you turn the entry back into a TODO item again through further
1676 state cycling, that line will be removed again. In the timeline 1698 state cycling, that line will be removed again. In the timeline
1677 (@pxref{Timeline}) and in the agenda (@pxref{Agenda}), you can then 1699 (@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily Agenda}),
1678 use the @kbd{L} key to display the TODO items closed on each day, 1700 you can then use the @kbd{L} key to display the TODO items closed on
1679 giving you an overview of what has been done on a day. 1701 each day, giving you an overview of what has been done on a day.
1680 1702
1681 @node TODO extensions, Priorities, Progress Logging, TODO items 1703 @node TODO extensions, Priorities, Progress Logging, TODO items
1682 @section Extended use of TODO keywords 1704 @section Extended use of TODO keywords
1683 @cindex extended TODO keywords 1705 @cindex extended TODO keywords
1684 1706
1812 1834
1813 @noindent 1835 @noindent
1814 With its standard setup, Org-mode supports priorities @samp{A}, 1836 With its standard setup, Org-mode supports priorities @samp{A},
1815 @samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry 1837 @samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry
1816 without a cookie is treated as priority @samp{B}. Priorities make a 1838 without a cookie is treated as priority @samp{B}. Priorities make a
1817 difference only in the agenda (@pxref{Agenda}). 1839 difference only in the agenda (@pxref{Weekly/Daily Agenda}).
1818 1840
1819 @table @kbd 1841 @table @kbd
1820 @kindex @kbd{C-c ,} 1842 @kindex @kbd{C-c ,}
1821 @item @kbd{C-c ,} 1843 @item @kbd{C-c ,}
1822 Set the priority of the current item. The command prompts for a 1844 Set the priority of the current item. The command prompts for a
1857 1879
1858 A time stamp is a specification of a date (possibly with time) in a 1880 A time stamp is a specification of a date (possibly with time) in a
1859 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 1881 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1860 Tue 09:39>}. A time stamp can appear anywhere in the headline or body 1882 Tue 09:39>}. A time stamp can appear anywhere in the headline or body
1861 of an org-tree entry. Its presence allows to show entries on specific 1883 of an org-tree entry. Its presence allows to show entries on specific
1862 dates in the agenda (@pxref{Agenda}). We distinguish: 1884 dates in the agenda (@pxref{Weekly/Daily Agenda}). We distinguish:
1863 1885
1864 @table @var 1886 @table @var
1865 @cindex timestamp 1887 @cindex timestamp
1866 @item TIMESTAMP 1888 @item TIMESTAMP
1867 A simple time stamp just assigns a date/time to an item. In the 1889 A simple time stamp just assigns a date/time to an item. In the
1942 instead. 1964 instead.
1943 1965
1944 @kindex C-c C-o 1966 @kindex C-c C-o
1945 @item C-c C-o 1967 @item C-c C-o
1946 Access the agenda for the date given by the time stamp at point 1968 Access the agenda for the date given by the time stamp at point
1947 (@pxref{Agenda}). 1969 (@pxref{Weekly/Daily Agenda}).
1948 1970
1949 @kindex C-c C-d 1971 @kindex C-c C-d
1950 @item C-c C-d 1972 @item C-c C-d
1951 Insert @samp{DEADLINE} keyword along with a stamp. 1973 Insert @samp{DEADLINE} keyword along with a stamp.
1952 @kindex C-c C-w 1974 @kindex C-c C-w
2033 2055
2034 @node Agenda Views, Exporting, Timestamps, Top 2056 @node Agenda Views, Exporting, Timestamps, Top
2035 @chapter Agenda Views 2057 @chapter Agenda Views
2036 @cindex agenda views 2058 @cindex agenda views
2037 2059
2038 Org-mode can select items based of various criteria, and display them 2060 Due to the way Org-mode works, TODO items and time-stamped items can
2039 in a separate buffer. The information to be shown is collected from 2061 be scattered throughout a file or even a number of files. To get an
2040 all @emph{agenda files}, the files listed in the variable 2062 overview over open action items, or over events that are important for
2041 @code{org-agenda-files}. Thus even if you only work with a single 2063 a particular date, this information must be collected, sorted and
2042 Org-mode file, this file must be put into that list@footnote{When 2064 displayed in an organized way.
2043 using the dispatcher pressing @kbd{1} before selecting a command will 2065
2044 actually limit the command to the current file, and ignore 2066 Org-mode can select items based on various criteria, and display them
2045 @code{org-agenda-files} until the next dispatcher command.}. You can 2067 in a separate buffer. Three different views are provided:
2046 customize @code{org-agenda-files}, but the easiest way to maintain it 2068 @itemize @bullet
2047 is through the following commands 2069 @item
2070 an @emph{agenda} that is like a calendar and shows information
2071 for specific dates
2072 @item
2073 a @emph{TODO list} that covers all unfinished
2074 action items, and
2075 @item
2076 a @emph{tags view} that shows information based on
2077 the tags associated with headlines in the outline tree.
2078 @end itemize
2079 @noindent
2080 The extracted information is displayed in a special @emph{agenda
2081 buffer}. This buffer is read-only, but provides commands to visit the
2082 corresponding locations in the original Org-mode files, and even to
2083 edit these files remotely.
2084
2085 @menu
2086 * Agenda files:: Files being searched for agenda information
2087 * Agenda dispatcher:: Keyboard access to agenda views
2088 * Weekly/Daily Agenda:: The calendar page with current tasks
2089 * Global TODO list:: All unfinished action items
2090 * Matching headline tags:: Structured information with fine-tuned search
2091 * Timeline:: Time-sorted view for single file
2092 * Agenda commands:: Remote editing of org trees
2093 @end menu
2094
2095 @node Agenda files, Agenda dispatcher, Agenda Views, Agenda Views
2096 @section Agenda files
2097
2098 The information to be shown is collected from all @emph{agenda files},
2099 the files listed in the variable @code{org-agenda-files}. Thus even
2100 if you only work with a single Org-mode file, this file should be put
2101 into that list@footnote{When using the dispatcher pressing @kbd{1}
2102 before selecting a command will actually limit the command to the
2103 current file, and ignore @code{org-agenda-files} until the next
2104 dispatcher command.}. You can customize @code{org-agenda-files}, but
2105 the easiest way to maintain it is through the following commands
2048 2106
2049 @cindex files, adding to agenda list 2107 @cindex files, adding to agenda list
2050 @table @kbd 2108 @table @kbd
2051 @kindex C-c [ 2109 @kindex C-c [
2052 @item C-c [ 2110 @item C-c [
2059 @kindex C-, 2117 @kindex C-,
2060 @item C-, 2118 @item C-,
2061 Cycle through agenda file list. 2119 Cycle through agenda file list.
2062 @end table 2120 @end table
2063 @noindent 2121 @noindent
2064 The Org menu always contains the current list of files and can be used 2122 The Org menu contains the current list of files and can be used
2065 to quickly visit any of them. 2123 to visit any of them.
2066 2124
2067 Org-mode provides three different views on the information in these 2125 @node Agenda dispatcher, Weekly/Daily Agenda, Agenda files, Agenda Views
2068 files: 2126 @section The agenda dispatcher
2069 @itemize @bullet 2127 @cindex agenda dispatcher
2070 @item 2128 @cindex dispatching agenda commands
2071 an @emph{agenda} that is like a calendar and shows information
2072 for specific dates
2073 @item
2074 a @emph{TODO list} that covers all unfinished
2075 action items, and
2076 @item
2077 a @emph{tags view} that show information based on
2078 the tags associated with headlines in the outline tree.
2079 @end itemize
2080 @noindent
2081 The extracted information is displayed in a special @emph{agenda
2082 buffer}. This buffer is read-only, but provides commands to visit the
2083 corresponding locations in the original Org-mode files, and even to
2084 edit these files remotely.
2085
2086 @cindex custom agenda commands 2129 @cindex custom agenda commands
2087 @cindex agenda commands, custom 2130 @cindex agenda commands, custom
2088 The views are created through a dispatcher that should be bound to a 2131 The views are created through a dispatcher that should be bound to a
2089 global key, for example @kbd{C-c a} (@pxref{Installation and 2132 global key, for example @kbd{C-c a} (@pxref{Installation and
2090 Activation}). In the following we will assume that @kbd{C-c a} is 2133 Activation}). In the following we will assume that @kbd{C-c a} is
2091 indeed how the dispatcher is accessed and list keyboard access to 2134 indeed how the dispatcher is accessed and list keyboard access to
2092 commands accordingly. The dispatcher offers a number of default 2135 commands accordingly. After pressing @kbd{C-c a}, an additional
2093 commands, for example to create a TODO list or a the calendar-like 2136 letter is required to execute a command. The dispatcher offers the
2094 agenda. You can also define a number of custom searches for tags and 2137 following default commands:
2095 specific TODO keywords through the variable 2138 @table @kbd
2096 @code{org-agenda-custom-commands}. 2139 @item a
2140 Create the calendar-like agenda (@pxref{Weekly/Daily Agenda}).
2141 @item t / T
2142 Create a list of all TODO items (@pxref{Global TODO list}).
2143 @item m / M
2144 Create a list of headline matching a TAGS expression (@pxref{Matching
2145 headline tags}).
2146 @end table
2147
2148 You can also define custom commands that will be accessible through
2149 the dispatcher, just like the default commands. Custom commands are
2150 global searches for tags and specific TODO keywords, or a variety of
2151 sparse tree creating commands (@pxref{Sparse trees}). As sparse trees
2152 are only defined for a single org-mode file, these latter commands act
2153 on the current buffer instead of the list of agenda files.
2154
2097 @kindex C-c a C 2155 @kindex C-c a C
2098 These commands will be offered by the dispatcher just like the default 2156 Custom commands are configured in the variable
2099 commands. If you press @kbd{C-c a C}, you will get a customization 2157 @code{org-agenda-custom-commands}. You can customize this variable,
2100 buffer for this variable. 2158 for example by pressing @kbd{C-c a C}. You can also directly set it
2101 2159 with Emacs Lisp in @file{.emacs}. For example:
2102 @menu 2160 @lisp
2103 * Agenda:: Your weekly planner 2161 (setq org-agenda-custom-commands
2104 * Global TODO list:: Overview over all things to do 2162 '(("w" todo "WAITING")
2105 * Matching headline tags:: Select information based on tags 2163 ("u" tags "+BOSS-URGENT")
2106 * Timeline:: Time-sorted view for single file 2164 ("U" tags-tree "+BOSS-URGENT")
2107 * Agenda commands:: Remote editing of org trees 2165 ("f" occur-tree "\\<FIXME\\>")))
2108 * Calendar/Diary integration:: Integrating Anniversaries and more 2166 @end lisp
2109 @end menu 2167 @noindent will define @kbd{C-c a w} as a global search for
2110 2168 TODO entries with @samp{WAITING} as todo keyword, @kbd{C-c a u} as a
2111 @node Agenda, Global TODO list, Agenda Views, Agenda Views 2169 global tags search for headlines marked @samp{:BOSS:} but not
2112 @section Agenda 2170 @samp{:URGENT:}, @kbd{C-c a U} to do the same search but only in the
2171 current buffer and display the result as a sparse tree, and @kbd{C-c a
2172 f} to create a sparse tree with all entries containing the word
2173 @samp{FIXME}. For more information, look at the documentation string
2174 of the variable @code{org-agenda-custom-commands}.
2175
2176 @node Weekly/Daily Agenda, Global TODO list, Agenda dispatcher, Agenda Views
2177 @section The weekly/daily agenda
2113 @cindex agenda 2178 @cindex agenda
2114 2179
2115 The purpose of the @emph{agenda} is to act like a week/day page of a 2180 The purpose of the weekly/daily @emph{agenda} is to act like a page of
2116 paper agenda, showing you all the tasks for the current week or day. 2181 a paper agenda, showing all the tasks for the current week or day.
2117 2182
2118 @table @kbd 2183 @table @kbd
2119 @cindex org-agenda, command 2184 @cindex org-agenda, command
2120 @kindex C-c a a 2185 @kindex C-c a a
2121 @item C-c a a 2186 @item C-c a a
2122 Compile an agenda for the current week from a list of org files. The 2187 Compile an agenda for the current week from a list of org files. The
2123 agenda shows the entries for each day. With a @kbd{C-u} prefix (or 2188 agenda shows the entries for each day. With a @kbd{C-u} prefix (or
2124 when the variable @code{org-agenda-include-all-todo} is @code{t}), all 2189 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
2125 unfinished TODO items (also those without a date) are also listed at 2190 unfinished TODO items (also those without a date) are also listed at
2126 the beginning of the buffer, before the first date.@* 2191 the beginning of the buffer, before the first date.@*
2127 The key binding @kbd{C-c a a} is only a suggestion - see
2128 @ref{Installation and Activation}.
2129 @end table 2192 @end table
2130 2193
2131 Remote editing from the agenda buffer means for example that you can 2194 Remote editing from the agenda buffer means for example that you can
2132 change the dates of deadlines and appointments from the agenda buffer. 2195 change the dates of deadlines and appointments from the agenda buffer.
2133 The commands available in the Agenda buffer are listed in @ref{Agenda 2196 The commands available in the Agenda buffer are listed in @ref{Agenda
2134 commands}. 2197 commands}.
2135 2198
2136 2199 @menu
2200 * Categories:: Not all tasks are equal
2201 * Time-of-day specifications:: How the agenda knows the time
2202 * Calendar/Diary integration:: Integrating Anniversaries and more
2203 * Sorting of agenda items:: The order of things
2204 @end menu
2205
2206 @node Categories, Time-of-day specifications, Weekly/Daily Agenda, Weekly/Daily Agenda
2137 @subsection Categories 2207 @subsection Categories
2138 2208
2139 @cindex category 2209 @cindex category
2140 In the agenda buffer, each entry is preceded by a @emph{category}, 2210 In the agenda buffer, each entry is preceded by a @emph{category},
2141 which is derived from the file name. The category can also be set 2211 which is derived from the file name. The category can also be set
2145 @end example 2215 @end example
2146 If there are several such lines in a file, each specifies the category 2216 If there are several such lines in a file, each specifies the category
2147 for the text below it. The display in the agenda buffer looks best if 2217 for the text below it. The display in the agenda buffer looks best if
2148 the category is not longer than 10 characters. 2218 the category is not longer than 10 characters.
2149 2219
2220 @node Time-of-day specifications, Calendar/Diary integration, Categories, Weekly/Daily Agenda
2150 @subsection Time-of-Day Specifications 2221 @subsection Time-of-Day Specifications
2151 2222
2152 Org-mode checks each agenda item for a time-of-day specification. The 2223 Org-mode checks each agenda item for a time-of-day specification. The
2153 time can be part of the time stamp that triggered inclusion into the 2224 time can be part of the time stamp that triggered inclusion into the
2154 agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time 2225 agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
2192 The time grid can be turned on and off with the variable 2263 The time grid can be turned on and off with the variable
2193 @code{org-agenda-use-time-grid}, and can be configured with 2264 @code{org-agenda-use-time-grid}, and can be configured with
2194 @code{org-agenda-time-grid}. 2265 @code{org-agenda-time-grid}.
2195 2266
2196 2267
2268 @node Calendar/Diary integration, Sorting of agenda items, Time-of-day specifications, Weekly/Daily Agenda
2269 @subsection Calendar/Diary integration
2270 @cindex calendar integration
2271 @cindex diary integration
2272
2273 Emacs contains the calendar and diary by Edward M. Reingold. The
2274 calendar displays a three-month calendar with holidays from different
2275 countries and cultures. The diary allows to keep track of
2276 anniversaries, lunar phases, sunrise/set, recurrent appointments
2277 (weekly, monthly) and more. In this way, it is quite complementary to
2278 Org-mode. It can be very useful to combine output from Org-mode with
2279 the diary.
2280
2281 In order to include entries from the Emacs diary into Org-mode's
2282 agenda, you only need to customize the variable
2283
2284 @lisp
2285 (setq org-agenda-include-diary t)
2286 @end lisp
2287 @noindent
2288
2289 @noindent After that, everything will happen automatically. All diary
2290 entries including holidays, anniversaries etc will be included in the
2291 agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
2292 @key{RET} can be used from the agenda buffer to jump to the diary
2293 file, in order to edit existing diary entries. The @kbd{i} command to
2294 insert new entries for the current date works in the agenda buffer, as
2295 well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display
2296 Sunrise/Sunset times, show lunar phases and to convert to other
2297 calendars, respectively. @kbd{c} can be used to switch back and forth
2298 between calendar and agenda.
2299
2300 @node Sorting of agenda items, , Calendar/Diary integration, Weekly/Daily Agenda
2197 @subsection Sorting of agenda items 2301 @subsection Sorting of agenda items
2198 @cindex sorting, of agenda items 2302 @cindex sorting, of agenda items
2199 @cindex priorities, of agenda items 2303 @cindex priorities, of agenda items
2200 The entries for each day are sorted. The default order is to first 2304 The entries for each day are sorted. The default order is to first
2201 collect all items containing an explicit time-of-day specification. 2305 collect all items containing an explicit time-of-day specification.
2209 plus additional increments for overdue scheduled or deadline items. 2313 plus additional increments for overdue scheduled or deadline items.
2210 2314
2211 Sorting can be customized using the variable 2315 Sorting can be customized using the variable
2212 @code{org-agenda-sorting-strategy}. 2316 @code{org-agenda-sorting-strategy}.
2213 2317
2214 @node Global TODO list, Matching headline tags, Agenda, Agenda Views 2318
2319 @node Global TODO list, Matching headline tags, Weekly/Daily Agenda, Agenda Views
2215 @section The global TODO list 2320 @section The global TODO list
2216 @cindex global TODO list 2321 @cindex global TODO list
2217 @cindex TODO list, global 2322 @cindex TODO list, global
2218 2323
2219 The global TODO list contains all unfinished TODO items, formatted and 2324 The global TODO list contains all unfinished TODO items, formatted and
2221 2326
2222 @table @kbd 2327 @table @kbd
2223 @kindex C-c a t 2328 @kindex C-c a t
2224 @item C-c a t 2329 @item C-c a t
2225 Show the global TODO list. This collects the TODO items from all 2330 Show the global TODO list. This collects the TODO items from all
2226 agenda files (@pxref{Agenda}) into a single buffer. The buffer is in 2331 agenda files (@pxref{Agenda Views}) into a single buffer. The buffer is in
2227 @code{agenda-mode}, so there are commands to examine and manipulate 2332 @code{agenda-mode}, so there are commands to examine and manipulate
2228 the TODO entries directly from that buffer (@pxref{Agenda commands}). 2333 the TODO entries directly from that buffer (@pxref{Agenda commands}).
2229 @xref{Global TODO list}, for more information. 2334 @xref{Global TODO list}, for more information.
2230 @kindex C-c a T 2335 @kindex C-c a T
2231 @item C-c a T 2336 @item C-c a T
2232 Like the above, but allow to select a specific TODO keyword. You can 2337 Like the above, but allow to select a specific TODO keyword. You can
2233 also do this by specifying a prefix argument. With a @kbd{C-u} prefix 2338 also do this by specifying a prefix argument to @kbd{C-c a t}. With a
2234 you are prompted for a keyword. With a numeric prefix, the Nth 2339 @kbd{C-u} prefix you are prompted for a keyword. With a numeric
2235 keyword in @code{org-todo-keywords} is selected. 2340 prefix, the Nth keyword in @code{org-todo-keywords} is selected.
2236 @kindex r 2341 @kindex r
2237 The @kbd{r} key in the agenda buffer regenerates it, and you can give 2342 The @kbd{r} key in the agenda buffer regenerates it, and you can give
2238 a prefix argument to this command to change the selected TODO keyword, 2343 a prefix argument to this command to change the selected TODO keyword,
2239 for example @kbd{3 r}. 2344 for example @kbd{3 r}. If you often need a search for a specific
2345 keyword, define a custom command for it (@pxref{Agenda dispatcher}).
2240 @end table 2346 @end table
2241 2347
2242 Remote editing of TODO items means that you can change the state of a 2348 Remote editing of TODO items means that you can change the state of a
2243 TODO entry with a single key press. The commands available in the 2349 TODO entry with a single key press. The commands available in the
2244 TODO list are described in @ref{Agenda commands}. 2350 TODO list are described in @ref{Agenda commands}.
2256 @kindex C-c a m 2362 @kindex C-c a m
2257 @item C-c a m 2363 @item C-c a m
2258 Produce a list of all headlines that match a given set of tags. The 2364 Produce a list of all headlines that match a given set of tags. The
2259 command prompts for a selection criterion, which is a boolean logic 2365 command prompts for a selection criterion, which is a boolean logic
2260 expression with tags, like @samp{+WORK+URGENT-WITHBOSS} or 2366 expression with tags, like @samp{+WORK+URGENT-WITHBOSS} or
2261 @samp{WORK|HOME} (@pxref{Tags}). 2367 @samp{WORK|HOME} (@pxref{Tags}). If you often need a specific search,
2368 define a custom command for it (@pxref{Agenda dispatcher}).
2262 @kindex C-c a M 2369 @kindex C-c a M
2263 @item C-c a M 2370 @item C-c a M
2264 Like @kbd{C-c a m}, but only select headlines that are also TODO 2371 Like @kbd{C-c a m}, but only select headlines that are also TODO items
2265 items. 2372 and force checking subitems (see variable
2373 @code{org-tags-match-list-sublevels}.
2266 @end table 2374 @end table
2267 2375
2268 The commands available in the tags list are described in @ref{Agenda 2376 The commands available in the tags list are described in @ref{Agenda
2269 commands}. 2377 commands}.
2270 2378
2292 @noindent 2400 @noindent
2293 2401
2294 The commands available in the timeline buffer are listed in 2402 The commands available in the timeline buffer are listed in
2295 @ref{Agenda commands}. 2403 @ref{Agenda commands}.
2296 2404
2297 @node Agenda commands, Calendar/Diary integration, Timeline, Agenda Views 2405 @node Agenda commands, , Timeline, Agenda Views
2298 @section Commands in the agenda buffer 2406 @section Commands in the agenda buffer
2299 @cindex commands, in agenda buffer 2407 @cindex commands, in agenda buffer
2300 2408
2301 Entries in the agenda buffer are linked back to the org file or diary 2409 Entries in the agenda buffer are linked back to the org file or diary
2302 file where they originate. You are not allowed to edit the agenda 2410 file where they originate. You are not allowed to edit the agenda
2304 original entry location, and to edit the org-files ``remotely'' from 2412 original entry location, and to edit the org-files ``remotely'' from
2305 the agenda buffer. In this way, all information is stored only once, 2413 the agenda buffer. In this way, all information is stored only once,
2306 and you don't risk that your agenda and note files diverge. 2414 and you don't risk that your agenda and note files diverge.
2307 2415
2308 Some commands can be executed with mouse clicks on agenda lines. For 2416 Some commands can be executed with mouse clicks on agenda lines. For
2309 the other commands, the cursor needs to be in the desired line. Most 2417 the other commands, the cursor needs to be in the desired line.
2310 commands are available for both timelines and the agenda. The
2311 exceptions are marked.
2312 2418
2313 @table @kbd 2419 @table @kbd
2314 @tsubheading{Motion} 2420 @tsubheading{Motion}
2315 @kindex n 2421 @kindex n
2316 @item n 2422 @item n
2382 2488
2383 @kindex @key{right} 2489 @kindex @key{right}
2384 @item @key{right} 2490 @item @key{right}
2385 Display the following @code{org-agenda-ndays} days. For example, if 2491 Display the following @code{org-agenda-ndays} days. For example, if
2386 the display covers a week, switch to the following week. With prefix 2492 the display covers a week, switch to the following week. With prefix
2387 arg, go forward that many times @code{org-agenda-ndays} days. Not 2493 arg, go forward that many times @code{org-agenda-ndays} days.
2388 available in timelines.
2389 2494
2390 @kindex @key{left} 2495 @kindex @key{left}
2391 @item @key{left} 2496 @item @key{left}
2392 Display the previous dates. Not available in timelines. 2497 Display the previous dates.
2393 2498
2394 @kindex . 2499 @kindex .
2395 @item . 2500 @item .
2396 Goto today. 2501 Goto today.
2397 2502
2489 Show holidays for three month around the cursor date. 2594 Show holidays for three month around the cursor date.
2490 2595
2491 @kindex C-c C-x C-c 2596 @kindex C-c C-x C-c
2492 @item C-c C-x C-c 2597 @item C-c C-x C-c
2493 Export a single iCalendar file containing entries from all agenda files. 2598 Export a single iCalendar file containing entries from all agenda files.
2494 Not available in timelines.
2495 2599
2496 @tsubheading{Quit and Exit} 2600 @tsubheading{Quit and Exit}
2497 @kindex q 2601 @kindex q
2498 @item q 2602 @item q
2499 Quit Agenda, remove the agenda buffer. 2603 Quit Agenda, remove the agenda buffer.
2504 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs 2608 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
2505 for the compilation of the agenda. Buffers created by the user to 2609 for the compilation of the agenda. Buffers created by the user to
2506 visit org files will not be removed. 2610 visit org files will not be removed.
2507 2611
2508 @end table 2612 @end table
2509
2510 @node Calendar/Diary integration, , Agenda commands, Agenda Views
2511 @section Calendar/Diary integration
2512 @cindex calendar integration
2513 @cindex diary integration
2514
2515 Emacs contains the calendar and diary by Edward M. Reingold. The
2516 calendar displays a three-month calendar with holidays from different
2517 countries and cultures. The diary allows to keep track of
2518 anniversaries, lunar phases, sunrise/set, recurrent appointments
2519 (weekly, monthly) and more. In this way, it is quite complementary to
2520 Org-mode. It can be very useful to combine output from Org-mode with
2521 the diary.
2522
2523 The interaction between Org-mode and diary works both ways: You can
2524 list entries from the diary in the Org-mode agenda, from which many
2525 calendar and diary commands are directly accessible. Or you can
2526 display entries from the org agenda in the Emacs diary.
2527
2528 @menu
2529 * Diary to agenda:: Agenda incorporates the diary
2530 * Agenda to diary:: Diary incorporates the agenda
2531 @end menu
2532
2533 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
2534 @subsection Including the diary into the agenda
2535 @cindex diary to agenda
2536
2537 In order to include entries from the Emacs diary into Org-mode's
2538 agenda, you only need to customize the variable
2539
2540 @lisp
2541 (setq org-agenda-include-diary t)
2542 @end lisp
2543 @noindent
2544
2545 @noindent After that, everything will happen automatically. All diary
2546 entries including holidays, anniversaries etc will be included in the
2547 agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
2548 @key{RET} can be used from the agenda buffer to jump to the diary
2549 file, in order to edit existing diary entries. The @kbd{i} command to
2550 insert new entries for the current date works in the agenda buffer, as
2551 well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display
2552 Sunrise/Sunset times, show lunar phases and to convert to other
2553 calendars, respectively. @kbd{c} can be used to switch back and forth
2554 between calendar and agenda.
2555
2556 @node Agenda to diary, , Diary to agenda, Calendar/Diary integration
2557 @subsection Including the agenda into the diary
2558 @cindex agenda to diary
2559
2560 If you prefer to use the Emacs diary as your main instrument and if
2561 you wish to include the Org-mode agenda into it, the following steps
2562 are necessary: Autoload the function @command{org-diary} as shown
2563 above under @ref{Installation and Activation}. You also need to use
2564 @emph{fancy diary display} by setting in @file{.emacs}:
2565
2566 @lisp
2567 (add-hook 'diary-display-hook 'fancy-diary-display)
2568 @end lisp
2569
2570 Then include the following line into your @file{~/diary} file, in
2571 order to get the entries from all files listed in the variable
2572 @code{org-agenda-files}:
2573
2574 @example
2575 &%%(org-diary)
2576 @end example
2577 @noindent
2578 You may also select specific files with
2579
2580 @example
2581 &%%(org-diary) ~/path/to/some/org-file.org
2582 &%%(org-diary) ~/path/to/another/org-file.org
2583 @end example
2584
2585 If you now launch the calendar and press @kbd{d} to display a diary,
2586 the headlines of entries containing a timestamp, date range, schedule,
2587 or deadline referring to the selected date will be listed. Just like
2588 in Org-mode's agenda view, the diary for @emph{today} contains
2589 additional entries for overdue deadlines and scheduled items. See
2590 also the documentation of the @command{org-diary} function.
2591 2613
2592 @node Exporting, Miscellaneous, Agenda Views, Top 2614 @node Exporting, Miscellaneous, Agenda Views, Top
2593 @chapter Exporting 2615 @chapter Exporting
2594 @cindex exporting 2616 @cindex exporting
2595 2617
3018 @item @b{How can I change the indentation of an entire table without 3040 @item @b{How can I change the indentation of an entire table without
3019 fixing every line by hand?}@* 3041 fixing every line by hand?}@*
3020 @cindex indentation, of tables 3042 @cindex indentation, of tables
3021 The indentation of a table is set by the first line. So just fix the 3043 The indentation of a table is set by the first line. So just fix the
3022 indentation of the first line and realign with @key{TAB}. 3044 indentation of the first line and realign with @key{TAB}.
3045
3046 @item @b{Is it possible to include entries from org-mode files into my
3047 emacs diary?}@*
3048 Since the org-mode agenda is much more powerful and can contain the
3049 diary (@pxref{Calendar/Diary integration}), you should think twice
3050 before deciding to do this. Inegrating org-mode information into the
3051 diary is, however, possible. The following steps are necessary:
3052 Autoload the function @command{org-diary} as shown above under
3053 @ref{Installation and Activation}. You also need to use @emph{fancy
3054 diary display} by setting in @file{.emacs}:
3055
3056 @lisp
3057 (add-hook 'diary-display-hook 'fancy-diary-display)
3058 @end lisp
3059
3060 Then include the following line into your @file{~/diary} file, in
3061 order to get the entries from all files listed in the variable
3062 @code{org-agenda-files}:
3063
3064 @example
3065 &%%(org-diary)
3066 @end example
3067 @noindent
3068 You may also select specific files with
3069
3070 @example
3071 &%%(org-diary) ~/path/to/some/org-file.org
3072 &%%(org-diary) ~/path/to/another/org-file.org
3073 @end example
3074
3075 If you now launch the calendar and press @kbd{d} to display a diary,
3076 the headlines of entries containing a timestamp, date range, schedule,
3077 or deadline referring to the selected date will be listed. Just like
3078 in Org-mode's agenda view, the diary for @emph{today} contains
3079 additional entries for overdue deadlines and scheduled items. See
3080 also the documentation of the @command{org-diary} function.
3023 3081
3024 @end enumerate 3082 @end enumerate
3025 3083
3026 3084
3027 @node Interaction, TTY keys, FAQ, Miscellaneous 3085 @node Interaction, TTY keys, FAQ, Miscellaneous