annotate man/calendar.texi @ 83804:dbfe44e28260

(Qterm_environment_variable): Remove. (syms_of_frame): Don't init and staticpro it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 31 Aug 2007 07:34:50 +0000
parents 7742aa399ad3
children ea54580c374d f55f9811f5d7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
75348
3d45362f1d38 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74909
diff changeset
3 @c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @node Calendar/Diary, Gnus, Dired, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @chapter The Calendar and the Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @findex calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 Emacs provides the functions of a desk calendar, with a diary of
36145
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
11 planned or past events. It also has facilities for managing your
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
12 appointments, and keeping track of how much time you spend working on
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
13 certain projects.
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
14
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
15 To enter the calendar, type @kbd{M-x calendar}; this displays a
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
16 three-month calendar centered on the current month, with point on the
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
17 current date. With a numeric argument, as in @kbd{C-u M-x calendar}, it
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
18 prompts you for the month and year to be the center of the three-month
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
19 calendar. The calendar uses its own buffer, whose major mode is
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
20 Calendar mode.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
21
Dave Love <fx@gnu.org>
parents:
diff changeset
22 @kbd{Mouse-2} in the calendar brings up a menu of operations on a
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
23 particular date; @kbd{Mouse-3} brings up a menu of commonly used
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
24 calendar features that are independent of any particular date. To exit
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
25 the calendar, type @kbd{q}.
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
26
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
27 @iftex
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
28 This chapter describes the basic calendar features.
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
29 @inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
30 about more specialized features.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
31 @end iftex
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
34 * Calendar Motion:: Moving through the calendar; selecting a date.
Dave Love <fx@gnu.org>
parents:
diff changeset
35 * Scroll Calendar:: Bringing earlier or later months onto the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
36 * Counting Days:: How many days are there between two dates?
Dave Love <fx@gnu.org>
parents:
diff changeset
37 * General Calendar:: Exiting or recomputing the calendar.
73521
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
38 * Writing Calendar Files:: Writing calendars to files of various formats.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
39 * Holidays:: Displaying dates of holidays.
Dave Love <fx@gnu.org>
parents:
diff changeset
40 * Sunrise/Sunset:: Displaying local times of sunrise and sunset.
Dave Love <fx@gnu.org>
parents:
diff changeset
41 * Lunar Phases:: Displaying phases of the moon.
Dave Love <fx@gnu.org>
parents:
diff changeset
42 * Other Calendars:: Converting dates to other calendar systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
43 * Diary:: Displaying events from your diary.
Dave Love <fx@gnu.org>
parents:
diff changeset
44 * Appointments:: Reminders when it's time to do something.
60790
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
45 * Importing Diary:: Converting diary events to/from other formats.
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
46 * Daylight Saving:: How to specify when daylight saving time is active.
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
47 * Time Intervals:: Keeping track of time intervals.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
48 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
49 * Advanced Calendar/Diary Usage:: Advanced Calendar/Diary customization.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
50 @end ifnottex
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
51 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
52
Dave Love <fx@gnu.org>
parents:
diff changeset
53 @node Calendar Motion
Dave Love <fx@gnu.org>
parents:
diff changeset
54 @section Movement in the Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
55
Dave Love <fx@gnu.org>
parents:
diff changeset
56 @cindex moving inside the calendar
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
57 Calendar mode provides commands to move through the calendar in
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
58 logical units of time such as days, weeks, months, and years. If you
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
59 move outside the three months originally displayed, the calendar
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
60 display ``scrolls'' automatically through time to make the selected
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
61 date visible. Moving to a date lets you view its holidays or diary
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
62 entries, or convert it to other calendars; moving by long time periods
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
63 is also useful simply to scroll the calendar.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
64
Dave Love <fx@gnu.org>
parents:
diff changeset
65 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
66 * Calendar Unit Motion:: Moving by days, weeks, months, and years.
Dave Love <fx@gnu.org>
parents:
diff changeset
67 * Move to Beginning or End:: Moving to start/end of weeks, months, and years.
Dave Love <fx@gnu.org>
parents:
diff changeset
68 * Specified Dates:: Moving to the current date or another
Dave Love <fx@gnu.org>
parents:
diff changeset
69 specific date.
Dave Love <fx@gnu.org>
parents:
diff changeset
70 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
71
Dave Love <fx@gnu.org>
parents:
diff changeset
72 @node Calendar Unit Motion
Dave Love <fx@gnu.org>
parents:
diff changeset
73 @subsection Motion by Standard Lengths of Time
Dave Love <fx@gnu.org>
parents:
diff changeset
74
Dave Love <fx@gnu.org>
parents:
diff changeset
75 The commands for movement in the calendar buffer parallel the
Dave Love <fx@gnu.org>
parents:
diff changeset
76 commands for movement in text. You can move forward and backward by
Dave Love <fx@gnu.org>
parents:
diff changeset
77 days, weeks, months, and years.
Dave Love <fx@gnu.org>
parents:
diff changeset
78
Dave Love <fx@gnu.org>
parents:
diff changeset
79 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
80 @item C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
81 Move point one day forward (@code{calendar-forward-day}).
Dave Love <fx@gnu.org>
parents:
diff changeset
82 @item C-b
Dave Love <fx@gnu.org>
parents:
diff changeset
83 Move point one day backward (@code{calendar-backward-day}).
Dave Love <fx@gnu.org>
parents:
diff changeset
84 @item C-n
Dave Love <fx@gnu.org>
parents:
diff changeset
85 Move point one week forward (@code{calendar-forward-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
86 @item C-p
Dave Love <fx@gnu.org>
parents:
diff changeset
87 Move point one week backward (@code{calendar-backward-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
88 @item M-@}
Dave Love <fx@gnu.org>
parents:
diff changeset
89 Move point one month forward (@code{calendar-forward-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
90 @item M-@{
Dave Love <fx@gnu.org>
parents:
diff changeset
91 Move point one month backward (@code{calendar-backward-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
92 @item C-x ]
Dave Love <fx@gnu.org>
parents:
diff changeset
93 Move point one year forward (@code{calendar-forward-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
94 @item C-x [
Dave Love <fx@gnu.org>
parents:
diff changeset
95 Move point one year backward (@code{calendar-backward-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
96 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
97
Dave Love <fx@gnu.org>
parents:
diff changeset
98 @kindex C-f @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
99 @findex calendar-forward-day
Dave Love <fx@gnu.org>
parents:
diff changeset
100 @kindex C-b @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
101 @findex calendar-backward-day
Dave Love <fx@gnu.org>
parents:
diff changeset
102 @kindex C-n @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
103 @findex calendar-forward-week
Dave Love <fx@gnu.org>
parents:
diff changeset
104 @kindex C-p @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
105 @findex calendar-backward-week
Dave Love <fx@gnu.org>
parents:
diff changeset
106 The day and week commands are natural analogues of the usual Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
107 commands for moving by characters and by lines. Just as @kbd{C-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
108 usually moves to the same column in the following line, in Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
109 mode it moves to the same day in the following week. And @kbd{C-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
110 moves to the same day in the previous week.
Dave Love <fx@gnu.org>
parents:
diff changeset
111
Dave Love <fx@gnu.org>
parents:
diff changeset
112 The arrow keys are equivalent to @kbd{C-f}, @kbd{C-b}, @kbd{C-n} and
Dave Love <fx@gnu.org>
parents:
diff changeset
113 @kbd{C-p}, just as they normally are in other modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
114
Dave Love <fx@gnu.org>
parents:
diff changeset
115 @kindex M-@} @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
116 @findex calendar-forward-month
Dave Love <fx@gnu.org>
parents:
diff changeset
117 @kindex M-@{ @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
118 @findex calendar-backward-month
Dave Love <fx@gnu.org>
parents:
diff changeset
119 @kindex C-x ] @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
120 @findex calendar-forward-year
Dave Love <fx@gnu.org>
parents:
diff changeset
121 @kindex C-x [ @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
122 @findex calendar-forward-year
Dave Love <fx@gnu.org>
parents:
diff changeset
123 The commands for motion by months and years work like those for
Dave Love <fx@gnu.org>
parents:
diff changeset
124 weeks, but move a larger distance. The month commands @kbd{M-@}} and
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
125 @kbd{M-@{} move forward or backward by an entire month. The year
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
126 commands @kbd{C-x ]} and @w{@kbd{C-x [}} move forward or backward a
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
127 whole year.
Dave Love <fx@gnu.org>
parents:
diff changeset
128
Dave Love <fx@gnu.org>
parents:
diff changeset
129 The easiest way to remember these commands is to consider months and
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
130 years analogous to paragraphs and pages of text, respectively. But
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
131 the commands themselves are not quite analogous. The ordinary Emacs
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
132 paragraph commands move to the beginning or end of a paragraph,
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
133 whereas these month and year commands move by an entire month or an
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
134 entire year, keeping the same date within the month or year.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
135
Dave Love <fx@gnu.org>
parents:
diff changeset
136 All these commands accept a numeric argument as a repeat count.
Dave Love <fx@gnu.org>
parents:
diff changeset
137 For convenience, the digit keys and the minus sign specify numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
138 arguments in Calendar mode even without the Meta modifier. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
139 @kbd{100 C-f} moves point 100 days forward from its present location.
Dave Love <fx@gnu.org>
parents:
diff changeset
140
Dave Love <fx@gnu.org>
parents:
diff changeset
141 @node Move to Beginning or End
Dave Love <fx@gnu.org>
parents:
diff changeset
142 @subsection Beginning or End of Week, Month or Year
Dave Love <fx@gnu.org>
parents:
diff changeset
143
Dave Love <fx@gnu.org>
parents:
diff changeset
144 A week (or month, or year) is not just a quantity of days; we think of
Dave Love <fx@gnu.org>
parents:
diff changeset
145 weeks (months, years) as starting on particular dates. So Calendar mode
Dave Love <fx@gnu.org>
parents:
diff changeset
146 provides commands to move to the beginning or end of a week, month or
Dave Love <fx@gnu.org>
parents:
diff changeset
147 year:
Dave Love <fx@gnu.org>
parents:
diff changeset
148
Dave Love <fx@gnu.org>
parents:
diff changeset
149 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
150 @kindex C-a @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
151 @findex calendar-beginning-of-week
Dave Love <fx@gnu.org>
parents:
diff changeset
152 @item C-a
Dave Love <fx@gnu.org>
parents:
diff changeset
153 Move point to start of week (@code{calendar-beginning-of-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
154 @kindex C-e @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
155 @findex calendar-end-of-week
Dave Love <fx@gnu.org>
parents:
diff changeset
156 @item C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
157 Move point to end of week (@code{calendar-end-of-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
158 @kindex M-a @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
159 @findex calendar-beginning-of-month
Dave Love <fx@gnu.org>
parents:
diff changeset
160 @item M-a
Dave Love <fx@gnu.org>
parents:
diff changeset
161 Move point to start of month (@code{calendar-beginning-of-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
162 @kindex M-e @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
163 @findex calendar-end-of-month
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @item M-e
Dave Love <fx@gnu.org>
parents:
diff changeset
165 Move point to end of month (@code{calendar-end-of-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
166 @kindex M-< @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
167 @findex calendar-beginning-of-year
Dave Love <fx@gnu.org>
parents:
diff changeset
168 @item M-<
Dave Love <fx@gnu.org>
parents:
diff changeset
169 Move point to start of year (@code{calendar-beginning-of-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
170 @kindex M-> @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
171 @findex calendar-end-of-year
Dave Love <fx@gnu.org>
parents:
diff changeset
172 @item M->
Dave Love <fx@gnu.org>
parents:
diff changeset
173 Move point to end of year (@code{calendar-end-of-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
174 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
175
Dave Love <fx@gnu.org>
parents:
diff changeset
176 These commands also take numeric arguments as repeat counts, with the
Dave Love <fx@gnu.org>
parents:
diff changeset
177 repeat count indicating how many weeks, months, or years to move
Dave Love <fx@gnu.org>
parents:
diff changeset
178 backward or forward.
Dave Love <fx@gnu.org>
parents:
diff changeset
179
Dave Love <fx@gnu.org>
parents:
diff changeset
180 @vindex calendar-week-start-day
Dave Love <fx@gnu.org>
parents:
diff changeset
181 @cindex weeks, which day they start on
Dave Love <fx@gnu.org>
parents:
diff changeset
182 @cindex calendar, first day of week
Dave Love <fx@gnu.org>
parents:
diff changeset
183 By default, weeks begin on Sunday. To make them begin on Monday
Dave Love <fx@gnu.org>
parents:
diff changeset
184 instead, set the variable @code{calendar-week-start-day} to 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
185
Dave Love <fx@gnu.org>
parents:
diff changeset
186 @node Specified Dates
Dave Love <fx@gnu.org>
parents:
diff changeset
187 @subsection Specified Dates
Dave Love <fx@gnu.org>
parents:
diff changeset
188
Dave Love <fx@gnu.org>
parents:
diff changeset
189 Calendar mode provides commands for moving to a particular date
Dave Love <fx@gnu.org>
parents:
diff changeset
190 specified in various ways.
Dave Love <fx@gnu.org>
parents:
diff changeset
191
Dave Love <fx@gnu.org>
parents:
diff changeset
192 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
193 @item g d
Dave Love <fx@gnu.org>
parents:
diff changeset
194 Move point to specified date (@code{calendar-goto-date}).
52229
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
195 @item g D
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
196 Move point to specified day of year (@code{calendar-goto-day-of-year}).
60421
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
197 @item g w
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
198 Move point to specified week of year (@code{calendar-goto-iso-week}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
199 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
200 Center calendar around specified month (@code{calendar-other-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
201 @item .
Dave Love <fx@gnu.org>
parents:
diff changeset
202 Move point to today's date (@code{calendar-goto-today}).
Dave Love <fx@gnu.org>
parents:
diff changeset
203 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
204
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @kindex g d @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
206 @findex calendar-goto-date
Dave Love <fx@gnu.org>
parents:
diff changeset
207 @kbd{g d} (@code{calendar-goto-date}) prompts for a year, a month, and a day
Dave Love <fx@gnu.org>
parents:
diff changeset
208 of the month, and then moves to that date. Because the calendar includes all
Dave Love <fx@gnu.org>
parents:
diff changeset
209 dates from the beginning of the current era, you must type the year in its
Dave Love <fx@gnu.org>
parents:
diff changeset
210 entirety; that is, type @samp{1990}, not @samp{90}.
Dave Love <fx@gnu.org>
parents:
diff changeset
211
52229
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
212 @kindex g D @r{(Calendar mode)}
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
213 @findex calendar-goto-day-of-year
60421
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
214 @kindex g w @r{(Calendar mode)}
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
215 @findex calendar-goto-iso-week
52229
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
216 @kbd{g D} (@code{calendar-goto-day-of-year}) prompts for a year and
60421
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
217 day number, and moves to that date. Negative day numbers count
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
218 backward from the end of the year. @kbd{g w}
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
219 (@code{calendar-goto-iso-week}) prompts for a year and week number,
f9a10d926c4e (Specified Dates): Mention `g w'.
Richard M. Stallman <rms@gnu.org>
parents: 60384
diff changeset
220 and moves to that week.
52229
fec3d4a11b70 Edward M. Reingold <reingold@emr.cs.iit.edu>
Glenn Morris <rgm@gnu.org>
parents: 52120
diff changeset
221
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
222 @kindex o @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
223 @findex calendar-other-month
Dave Love <fx@gnu.org>
parents:
diff changeset
224 @kbd{o} (@code{calendar-other-month}) prompts for a month and year,
Dave Love <fx@gnu.org>
parents:
diff changeset
225 then centers the three-month calendar around that month.
Dave Love <fx@gnu.org>
parents:
diff changeset
226
Dave Love <fx@gnu.org>
parents:
diff changeset
227 @kindex . @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
228 @findex calendar-goto-today
Dave Love <fx@gnu.org>
parents:
diff changeset
229 You can return to today's date with @kbd{.}@:
Dave Love <fx@gnu.org>
parents:
diff changeset
230 (@code{calendar-goto-today}).
Dave Love <fx@gnu.org>
parents:
diff changeset
231
Dave Love <fx@gnu.org>
parents:
diff changeset
232 @node Scroll Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
233 @section Scrolling in the Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
234
Dave Love <fx@gnu.org>
parents:
diff changeset
235 @cindex scrolling in the calendar
38745
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
236 The calendar display scrolls automatically through time when you
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
237 move out of the visible portion. You can also scroll it manually.
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
238 Imagine that the calendar window contains a long strip of paper with
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
239 the months on it. Scrolling the calendar means moving the strip
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
240 horizontally, so that new months become visible in the window.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
241
Dave Love <fx@gnu.org>
parents:
diff changeset
242 @table @kbd
74853
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
243 @item >
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
244 Scroll calendar one month forward (@code{scroll-calendar-left}).
74853
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
245 @item <
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
246 Scroll calendar one month backward (@code{scroll-calendar-right}).
Dave Love <fx@gnu.org>
parents:
diff changeset
247 @item C-v
Dave Love <fx@gnu.org>
parents:
diff changeset
248 @itemx @key{NEXT}
Dave Love <fx@gnu.org>
parents:
diff changeset
249 Scroll calendar three months forward
Dave Love <fx@gnu.org>
parents:
diff changeset
250 (@code{scroll-calendar-left-three-months}).
Dave Love <fx@gnu.org>
parents:
diff changeset
251 @item M-v
Dave Love <fx@gnu.org>
parents:
diff changeset
252 @itemx @key{PRIOR}
Dave Love <fx@gnu.org>
parents:
diff changeset
253 Scroll calendar three months backward
Dave Love <fx@gnu.org>
parents:
diff changeset
254 (@code{scroll-calendar-right-three-months}).
Dave Love <fx@gnu.org>
parents:
diff changeset
255 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
256
74853
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
257 @kindex > @r{(Calendar mode)}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
258 @findex scroll-calendar-left
74853
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
259 @kindex < @r{(Calendar mode)}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
260 @findex scroll-calendar-right
Dave Love <fx@gnu.org>
parents:
diff changeset
261 The most basic calendar scroll commands scroll by one month at a
Dave Love <fx@gnu.org>
parents:
diff changeset
262 time. This means that there are two months of overlap between the
74853
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
263 display before the command and the display after. @kbd{>} scrolls the
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
264 calendar contents one month forward in time. @kbd{<} scrolls the
f8a60ae8223b (Scroll Calendar): < and > are switched.
Chong Yidong <cyd@stupidchicken.com>
parents: 73521
diff changeset
265 contents one month backwards in time.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
266
Dave Love <fx@gnu.org>
parents:
diff changeset
267 @kindex C-v @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
268 @findex scroll-calendar-left-three-months
Dave Love <fx@gnu.org>
parents:
diff changeset
269 @kindex M-v @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
270 @findex scroll-calendar-right-three-months
Dave Love <fx@gnu.org>
parents:
diff changeset
271 The commands @kbd{C-v} and @kbd{M-v} scroll the calendar by an entire
Dave Love <fx@gnu.org>
parents:
diff changeset
272 ``screenful''---three months---in analogy with the usual meaning of
Dave Love <fx@gnu.org>
parents:
diff changeset
273 these commands. @kbd{C-v} makes later dates visible and @kbd{M-v} makes
Dave Love <fx@gnu.org>
parents:
diff changeset
274 earlier dates visible. These commands take a numeric argument as a
Dave Love <fx@gnu.org>
parents:
diff changeset
275 repeat count; in particular, since @kbd{C-u} multiplies the next command
Dave Love <fx@gnu.org>
parents:
diff changeset
276 by four, typing @kbd{C-u C-v} scrolls the calendar forward by a year and
Dave Love <fx@gnu.org>
parents:
diff changeset
277 typing @kbd{C-u M-v} scrolls the calendar backward by a year.
Dave Love <fx@gnu.org>
parents:
diff changeset
278
Dave Love <fx@gnu.org>
parents:
diff changeset
279 The function keys @key{NEXT} and @key{PRIOR} are equivalent to
Dave Love <fx@gnu.org>
parents:
diff changeset
280 @kbd{C-v} and @kbd{M-v}, just as they are in other modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
281
Dave Love <fx@gnu.org>
parents:
diff changeset
282 @node Counting Days
Dave Love <fx@gnu.org>
parents:
diff changeset
283 @section Counting Days
Dave Love <fx@gnu.org>
parents:
diff changeset
284
Dave Love <fx@gnu.org>
parents:
diff changeset
285 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
286 @item M-=
Dave Love <fx@gnu.org>
parents:
diff changeset
287 Display the number of days in the current region
Dave Love <fx@gnu.org>
parents:
diff changeset
288 (@code{calendar-count-days-region}).
Dave Love <fx@gnu.org>
parents:
diff changeset
289 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
290
Dave Love <fx@gnu.org>
parents:
diff changeset
291 @kindex M-= @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
292 @findex calendar-count-days-region
Dave Love <fx@gnu.org>
parents:
diff changeset
293 To determine the number of days in the region, type @kbd{M-=}
38870
d44abb4e68b2 Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents: 38745
diff changeset
294 (@code{calendar-count-days-region}). The numbers of days shown is
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
295 @emph{inclusive}; that is, it includes the days specified by mark and
Dave Love <fx@gnu.org>
parents:
diff changeset
296 point.
Dave Love <fx@gnu.org>
parents:
diff changeset
297
Dave Love <fx@gnu.org>
parents:
diff changeset
298 @node General Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
299 @section Miscellaneous Calendar Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
300
Dave Love <fx@gnu.org>
parents:
diff changeset
301 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
302 @item p d
Dave Love <fx@gnu.org>
parents:
diff changeset
303 Display day-in-year (@code{calendar-print-day-of-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
304 @item C-c C-l
Dave Love <fx@gnu.org>
parents:
diff changeset
305 Regenerate the calendar window (@code{redraw-calendar}).
Dave Love <fx@gnu.org>
parents:
diff changeset
306 @item SPC
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
307 Scroll the next window up (@code{scroll-other-window}).
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
308 @item DEL
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
309 Scroll the next window down (@code{scroll-other-window-down}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
310 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
311 Exit from calendar (@code{exit-calendar}).
Dave Love <fx@gnu.org>
parents:
diff changeset
312 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
313
Dave Love <fx@gnu.org>
parents:
diff changeset
314 @kindex p d @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
315 @cindex day of year
Dave Love <fx@gnu.org>
parents:
diff changeset
316 @findex calendar-print-day-of-year
38870
d44abb4e68b2 Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents: 38745
diff changeset
317 To display the number of days elapsed since the start of the year, or
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
318 the number of days remaining in the year, type the @kbd{p d} command
Dave Love <fx@gnu.org>
parents:
diff changeset
319 (@code{calendar-print-day-of-year}). This displays both of those
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
320 numbers in the echo area. The count of days elapsed includes the
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
321 selected date. The count of days remaining does not include that
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
322 date.
Dave Love <fx@gnu.org>
parents:
diff changeset
323
Dave Love <fx@gnu.org>
parents:
diff changeset
324 @kindex C-c C-l @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
325 @findex redraw-calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
326 If the calendar window text gets corrupted, type @kbd{C-c C-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
327 (@code{redraw-calendar}) to redraw it. (This can only happen if you use
Dave Love <fx@gnu.org>
parents:
diff changeset
328 non-Calendar-mode editing commands.)
Dave Love <fx@gnu.org>
parents:
diff changeset
329
Dave Love <fx@gnu.org>
parents:
diff changeset
330 @kindex SPC @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
331 In Calendar mode, you can use @kbd{SPC} (@code{scroll-other-window})
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
332 and @kbd{DEL} (@code{scroll-other-window-down}) to scroll the other
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
333 window up or down, respectively. This is handy when you display a list
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
334 of holidays or diary entries in another window.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
335
Dave Love <fx@gnu.org>
parents:
diff changeset
336 @kindex q @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
337 @findex exit-calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
338 To exit from the calendar, type @kbd{q} (@code{exit-calendar}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
339 buries all buffers related to the calendar, selecting other buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
340 (If a frame contains a dedicated calendar window, exiting from the
Dave Love <fx@gnu.org>
parents:
diff changeset
341 calendar iconifies that frame.)
Dave Love <fx@gnu.org>
parents:
diff changeset
342
73521
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
343 @node Writing Calendar Files
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
344 @section Writing Calendar Files
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
345
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
346 These packages produce files of various formats containing calendar
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
347 and diary entries, for display purposes.
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
348
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
349 @cindex calendar and HTML
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
350 The Calendar HTML commands produce files of HTML code that contain
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
351 calendar and diary entries. Each file applies to one month, and has a
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
352 name of the format @file{@var{yyyy}-@var{mm}.html}, where @var{yyyy} and
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
353 @var{mm} are the four-digit year and two-digit month, respectively. The
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
354 variable @code{cal-html-directory} specifies the default output
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
355 directory for the HTML files.
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
356
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
357 @vindex cal-html-css-default
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
358 Diary entries enclosed by @code{<} and @code{>} are interpreted as
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
359 HTML tags (for example: this is a diary entry with <font
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
360 color=''red''>some red text</font>). You can change the overall
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
361 appearance of the displayed HTML pages (for example, the color of
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
362 various page elements, header styles) via a stylesheet @file{cal.css} in
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
363 the directory containing the HTML files (see the value of the variable
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
364 @code{cal-html-css-default} for relevant style settings).
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
365
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
366 @kindex t @r{(Calendar mode)}
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
367 @table @kbd
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
368 @item H m
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
369 Generate a one-month calendar (@code{cal-html-cursor-month}).
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
370 @item H y
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
371 Generate a calendar file for each month of a year, as well as an index
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
372 page (@code{cal-html-cursor-year}). By default, this command writes
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
373 files to a @var{yyyy} subdirectory - if this is altered some hyperlinks
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
374 between years will not work.
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
375 @end table
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
376
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
377 If the variable @code{cal-html-print-day-number-flag} is
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
378 non-@code{nil}, then the monthly calendars show the day-of-the-year
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
379 number. The variable @code{cal-html-year-index-cols} specifies the
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
380 number of columns in the yearly index page.
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
381
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
382 @cindex calendar and La@TeX{}
73521
293c5068db48 (Writing Calendar Files): Rename section (was "LaTeX Calendar").
Glenn Morris <rgm@gnu.org>
parents: 73183
diff changeset
383 The Calendar La@TeX{} commands produce a buffer of La@TeX{} code that
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
384 prints as a calendar. Depending on the command you use, the printed
Dave Love <fx@gnu.org>
parents:
diff changeset
385 calendar covers the day, week, month or year that point is in.
Dave Love <fx@gnu.org>
parents:
diff changeset
386
Dave Love <fx@gnu.org>
parents:
diff changeset
387 @kindex t @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
388 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
389 @item t m
Dave Love <fx@gnu.org>
parents:
diff changeset
390 Generate a one-month calendar (@code{cal-tex-cursor-month}).
Dave Love <fx@gnu.org>
parents:
diff changeset
391 @item t M
Dave Love <fx@gnu.org>
parents:
diff changeset
392 Generate a sideways-printing one-month calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
393 (@code{cal-tex-cursor-month-landscape}).
Dave Love <fx@gnu.org>
parents:
diff changeset
394 @item t d
Dave Love <fx@gnu.org>
parents:
diff changeset
395 Generate a one-day calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
396 (@code{cal-tex-cursor-day}).
Dave Love <fx@gnu.org>
parents:
diff changeset
397 @item t w 1
Dave Love <fx@gnu.org>
parents:
diff changeset
398 Generate a one-page calendar for one week
Dave Love <fx@gnu.org>
parents:
diff changeset
399 (@code{cal-tex-cursor-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
400 @item t w 2
Dave Love <fx@gnu.org>
parents:
diff changeset
401 Generate a two-page calendar for one week
Dave Love <fx@gnu.org>
parents:
diff changeset
402 (@code{cal-tex-cursor-week2}).
Dave Love <fx@gnu.org>
parents:
diff changeset
403 @item t w 3
Dave Love <fx@gnu.org>
parents:
diff changeset
404 Generate an ISO-style calendar for one week
Dave Love <fx@gnu.org>
parents:
diff changeset
405 (@code{cal-tex-cursor-week-iso}).
Dave Love <fx@gnu.org>
parents:
diff changeset
406 @item t w 4
Dave Love <fx@gnu.org>
parents:
diff changeset
407 Generate a calendar for one Monday-starting week
Dave Love <fx@gnu.org>
parents:
diff changeset
408 (@code{cal-tex-cursor-week-monday}).
Dave Love <fx@gnu.org>
parents:
diff changeset
409 @item t f w
Dave Love <fx@gnu.org>
parents:
diff changeset
410 Generate a Filofax-style two-weeks-at-a-glance calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
411 (@code{cal-tex-cursor-filofax-2week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
412 @item t f W
Dave Love <fx@gnu.org>
parents:
diff changeset
413 Generate a Filofax-style one-week-at-a-glance calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
414 (@code{cal-tex-cursor-filofax-week}).
Dave Love <fx@gnu.org>
parents:
diff changeset
415 @item t y
Dave Love <fx@gnu.org>
parents:
diff changeset
416 Generate a calendar for one year
Dave Love <fx@gnu.org>
parents:
diff changeset
417 (@code{cal-tex-cursor-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
418 @item t Y
Dave Love <fx@gnu.org>
parents:
diff changeset
419 Generate a sideways-printing calendar for one year
Dave Love <fx@gnu.org>
parents:
diff changeset
420 (@code{cal-tex-cursor-year-landscape}).
Dave Love <fx@gnu.org>
parents:
diff changeset
421 @item t f y
Dave Love <fx@gnu.org>
parents:
diff changeset
422 Generate a Filofax-style calendar for one year
Dave Love <fx@gnu.org>
parents:
diff changeset
423 (@code{cal-tex-cursor-filofax-year}).
Dave Love <fx@gnu.org>
parents:
diff changeset
424 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
425
Dave Love <fx@gnu.org>
parents:
diff changeset
426 Some of these commands print the calendar sideways (in ``landscape
Dave Love <fx@gnu.org>
parents:
diff changeset
427 mode''), so it can be wider than it is long. Some of them use Filofax
Dave Love <fx@gnu.org>
parents:
diff changeset
428 paper size (3.75in x 6.75in). All of these commands accept a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
429 argument which specifies how many days, weeks, months or years to print
Dave Love <fx@gnu.org>
parents:
diff changeset
430 (starting always with the selected one).
Dave Love <fx@gnu.org>
parents:
diff changeset
431
Dave Love <fx@gnu.org>
parents:
diff changeset
432 If the variable @code{cal-tex-holidays} is non-@code{nil} (the default),
Dave Love <fx@gnu.org>
parents:
diff changeset
433 then the printed calendars show the holidays in @code{calendar-holidays}.
Dave Love <fx@gnu.org>
parents:
diff changeset
434 If the variable @code{cal-tex-diary} is non-@code{nil} (the default is
78207
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
435 @code{nil}), diary entries are included also (in monthly, filofax, and
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
436 iso-week calendars only). If the variable @code{cal-tex-rules} is
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
437 non-@code{nil} (the default is @code{nil}), the calendar displays ruled
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
438 pages in styles that have sufficient room. Consult the documentation of
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
439 the individual cal-tex functions to see which calendars support which
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
440 features.
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
441
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
442 You can use the variable @code{cal-tex-preamble-extra} to insert extra
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
443 La@TeX{} commands in the preamble of the generated document if you need
7742aa399ad3 (Writing Calendar Files): cal-tex-diary etc only work
Glenn Morris <rgm@gnu.org>
parents: 77129
diff changeset
444 to.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
445
Dave Love <fx@gnu.org>
parents:
diff changeset
446 @node Holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
447 @section Holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
448 @cindex holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
449
Dave Love <fx@gnu.org>
parents:
diff changeset
450 The Emacs calendar knows about all major and many minor holidays,
Dave Love <fx@gnu.org>
parents:
diff changeset
451 and can display them.
Dave Love <fx@gnu.org>
parents:
diff changeset
452
Dave Love <fx@gnu.org>
parents:
diff changeset
453 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
454 @item h
Dave Love <fx@gnu.org>
parents:
diff changeset
455 Display holidays for the selected date
Dave Love <fx@gnu.org>
parents:
diff changeset
456 (@code{calendar-cursor-holidays}).
Dave Love <fx@gnu.org>
parents:
diff changeset
457 @item Mouse-2 Holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
458 Display any holidays for the date you click on.
Dave Love <fx@gnu.org>
parents:
diff changeset
459 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
460 Mark holidays in the calendar window (@code{mark-calendar-holidays}).
Dave Love <fx@gnu.org>
parents:
diff changeset
461 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
462 Unmark calendar window (@code{calendar-unmark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
463 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
464 List all holidays for the displayed three months in another window
Dave Love <fx@gnu.org>
parents:
diff changeset
465 (@code{list-calendar-holidays}).
Dave Love <fx@gnu.org>
parents:
diff changeset
466 @item M-x holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
467 List all holidays for three months around today's date in another
Dave Love <fx@gnu.org>
parents:
diff changeset
468 window.
Dave Love <fx@gnu.org>
parents:
diff changeset
469 @item M-x list-holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
470 List holidays in another window for a specified range of years.
Dave Love <fx@gnu.org>
parents:
diff changeset
471 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
472
Dave Love <fx@gnu.org>
parents:
diff changeset
473 @kindex h @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
474 @findex calendar-cursor-holidays
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
475 @vindex view-calendar-holidays-initially
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
476 To see if any holidays fall on a given date, position point on that
Dave Love <fx@gnu.org>
parents:
diff changeset
477 date in the calendar window and use the @kbd{h} command. Alternatively,
Dave Love <fx@gnu.org>
parents:
diff changeset
478 click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays}
Dave Love <fx@gnu.org>
parents:
diff changeset
479 from the menu that appears. Either way, this displays the holidays for
Dave Love <fx@gnu.org>
parents:
diff changeset
480 that date, in the echo area if they fit there, otherwise in a separate
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
481 window.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
482
Dave Love <fx@gnu.org>
parents:
diff changeset
483 @kindex x @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
484 @findex mark-calendar-holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
485 @kindex u @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
486 @findex calendar-unmark
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
487 @vindex mark-holidays-in-calendar
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
488 To view the distribution of holidays for all the dates shown in the
Dave Love <fx@gnu.org>
parents:
diff changeset
489 calendar, use the @kbd{x} command. This displays the dates that are
Dave Love <fx@gnu.org>
parents:
diff changeset
490 holidays in a different face (or places a @samp{*} after these dates, if
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
491 display with multiple faces is not available).
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
492 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
493 @inforef{Calendar Customizing, calendar-holiday-marker, emacs-xtra}.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
494 @end iftex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
495 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
496 @xref{Calendar Customizing, calendar-holiday-marker}.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
497 @end ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
498 The command applies both to the currently visible months and to
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
499 other months that subsequently become visible by scrolling. To turn
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
500 marking off and erase the current marks, type @kbd{u}, which also
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
501 erases any diary marks (@pxref{Diary}). If the variable
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
502 @code{mark-holidays-in-calendar} is non-@code{nil}, creating or
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
503 updating the calendar marks holidays automatically.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
504
Dave Love <fx@gnu.org>
parents:
diff changeset
505 @kindex a @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
506 @findex list-calendar-holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
507 To get even more detailed information, use the @kbd{a} command, which
Dave Love <fx@gnu.org>
parents:
diff changeset
508 displays a separate buffer containing a list of all holidays in the
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
509 current three-month range. You can use @key{SPC} and @key{DEL} in the
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
510 calendar window to scroll that list up and down, respectively.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
511
Dave Love <fx@gnu.org>
parents:
diff changeset
512 @findex holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
513 The command @kbd{M-x holidays} displays the list of holidays for the
Dave Love <fx@gnu.org>
parents:
diff changeset
514 current month and the preceding and succeeding months; this works even
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
515 if you don't have a calendar window. If the variable
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
516 @code{view-calendar-holidays-initially} is non-@code{nil}, creating
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
517 the calendar displays holidays in this way. If you want the list of
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
518 holidays centered around a different month, use @kbd{C-u M-x
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
519 holidays}, which prompts for the month and year.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
520
Dave Love <fx@gnu.org>
parents:
diff changeset
521 The holidays known to Emacs include United States holidays and the
37142
e107572ba2dd Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents: 36909
diff changeset
522 major Christian, Jewish, and Islamic holidays; also the solstices and
e107572ba2dd Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents: 36909
diff changeset
523 equinoxes.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
524
Dave Love <fx@gnu.org>
parents:
diff changeset
525 @findex list-holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
526 The command @kbd{M-x list-holidays} displays the list of holidays for
Dave Love <fx@gnu.org>
parents:
diff changeset
527 a range of years. This function asks you for the starting and stopping
Dave Love <fx@gnu.org>
parents:
diff changeset
528 years, and allows you to choose all the holidays or one of several
Dave Love <fx@gnu.org>
parents:
diff changeset
529 categories of holidays. You can use this command even if you don't have
Dave Love <fx@gnu.org>
parents:
diff changeset
530 a calendar window.
Dave Love <fx@gnu.org>
parents:
diff changeset
531
Dave Love <fx@gnu.org>
parents:
diff changeset
532 The dates used by Emacs for holidays are based on @emph{current
74909
0a6dd13fe067 (Holidays): Holiday listing is based on current practice, but DST is not.
Richard M. Stallman <rms@gnu.org>
parents: 74872
diff changeset
533 practice}, not historical fact. For example Veteran's Day began in
0a6dd13fe067 (Holidays): Holiday listing is based on current practice, but DST is not.
Richard M. Stallman <rms@gnu.org>
parents: 74872
diff changeset
534 1919, but is shown in earlier years.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
535
Dave Love <fx@gnu.org>
parents:
diff changeset
536 @node Sunrise/Sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
537 @section Times of Sunrise and Sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
538 @cindex sunrise and sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
539
Dave Love <fx@gnu.org>
parents:
diff changeset
540 Special calendar commands can tell you, to within a minute or two, the
Dave Love <fx@gnu.org>
parents:
diff changeset
541 times of sunrise and sunset for any date.
Dave Love <fx@gnu.org>
parents:
diff changeset
542
Dave Love <fx@gnu.org>
parents:
diff changeset
543 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
544 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
545 Display times of sunrise and sunset for the selected date
Dave Love <fx@gnu.org>
parents:
diff changeset
546 (@code{calendar-sunrise-sunset}).
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
547 @item Mouse-2 Sunrise/sunset
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
548 Display times of sunrise and sunset for the date you click on.
Dave Love <fx@gnu.org>
parents:
diff changeset
549 @item M-x sunrise-sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
550 Display times of sunrise and sunset for today's date.
Dave Love <fx@gnu.org>
parents:
diff changeset
551 @item C-u M-x sunrise-sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
552 Display times of sunrise and sunset for a specified date.
Dave Love <fx@gnu.org>
parents:
diff changeset
553 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
554
Dave Love <fx@gnu.org>
parents:
diff changeset
555 @kindex S @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
556 @findex calendar-sunrise-sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
557 @findex sunrise-sunset
Dave Love <fx@gnu.org>
parents:
diff changeset
558 Within the calendar, to display the @emph{local times} of sunrise and
Dave Love <fx@gnu.org>
parents:
diff changeset
559 sunset in the echo area, move point to the date you want, and type
Dave Love <fx@gnu.org>
parents:
diff changeset
560 @kbd{S}. Alternatively, click @kbd{Mouse-2} on the date, then choose
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
561 @samp{Sunrise/sunset} from the menu that appears. The command @kbd{M-x
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
562 sunrise-sunset} is available outside the calendar to display this
Dave Love <fx@gnu.org>
parents:
diff changeset
563 information for today's date or a specified date. To specify a date
Dave Love <fx@gnu.org>
parents:
diff changeset
564 other than today, use @kbd{C-u M-x sunrise-sunset}, which prompts for
Dave Love <fx@gnu.org>
parents:
diff changeset
565 the year, month, and day.
Dave Love <fx@gnu.org>
parents:
diff changeset
566
Dave Love <fx@gnu.org>
parents:
diff changeset
567 You can display the times of sunrise and sunset for any location and
Dave Love <fx@gnu.org>
parents:
diff changeset
568 any date with @kbd{C-u C-u M-x sunrise-sunset}. This asks you for a
Dave Love <fx@gnu.org>
parents:
diff changeset
569 longitude, latitude, number of minutes difference from Coordinated
Dave Love <fx@gnu.org>
parents:
diff changeset
570 Universal Time, and date, and then tells you the times of sunrise and
Dave Love <fx@gnu.org>
parents:
diff changeset
571 sunset for that location on that date.
Dave Love <fx@gnu.org>
parents:
diff changeset
572
Dave Love <fx@gnu.org>
parents:
diff changeset
573 Because the times of sunrise and sunset depend on the location on
Dave Love <fx@gnu.org>
parents:
diff changeset
574 earth, you need to tell Emacs your latitude, longitude, and location
Dave Love <fx@gnu.org>
parents:
diff changeset
575 name before using these commands. Here is an example of what to set:
Dave Love <fx@gnu.org>
parents:
diff changeset
576
Dave Love <fx@gnu.org>
parents:
diff changeset
577 @vindex calendar-location-name
Dave Love <fx@gnu.org>
parents:
diff changeset
578 @vindex calendar-longitude
Dave Love <fx@gnu.org>
parents:
diff changeset
579 @vindex calendar-latitude
Dave Love <fx@gnu.org>
parents:
diff changeset
580 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
581 (setq calendar-latitude 40.1)
Dave Love <fx@gnu.org>
parents:
diff changeset
582 (setq calendar-longitude -88.2)
Dave Love <fx@gnu.org>
parents:
diff changeset
583 (setq calendar-location-name "Urbana, IL")
Dave Love <fx@gnu.org>
parents:
diff changeset
584 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
585
Dave Love <fx@gnu.org>
parents:
diff changeset
586 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
587 Use one decimal place in the values of @code{calendar-latitude} and
Dave Love <fx@gnu.org>
parents:
diff changeset
588 @code{calendar-longitude}.
Dave Love <fx@gnu.org>
parents:
diff changeset
589
Dave Love <fx@gnu.org>
parents:
diff changeset
590 Your time zone also affects the local time of sunrise and sunset.
Dave Love <fx@gnu.org>
parents:
diff changeset
591 Emacs usually gets time zone information from the operating system, but
Dave Love <fx@gnu.org>
parents:
diff changeset
592 if these values are not what you want (or if the operating system does
Dave Love <fx@gnu.org>
parents:
diff changeset
593 not supply them), you must set them yourself. Here is an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
594
Dave Love <fx@gnu.org>
parents:
diff changeset
595 @vindex calendar-time-zone
Dave Love <fx@gnu.org>
parents:
diff changeset
596 @vindex calendar-standard-time-zone-name
Dave Love <fx@gnu.org>
parents:
diff changeset
597 @vindex calendar-daylight-time-zone-name
Dave Love <fx@gnu.org>
parents:
diff changeset
598 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
599 (setq calendar-time-zone -360)
Dave Love <fx@gnu.org>
parents:
diff changeset
600 (setq calendar-standard-time-zone-name "CST")
Dave Love <fx@gnu.org>
parents:
diff changeset
601 (setq calendar-daylight-time-zone-name "CDT")
Dave Love <fx@gnu.org>
parents:
diff changeset
602 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
603
Dave Love <fx@gnu.org>
parents:
diff changeset
604 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
605 The value of @code{calendar-time-zone} is the number of minutes
Dave Love <fx@gnu.org>
parents:
diff changeset
606 difference between your local standard time and Coordinated Universal
Dave Love <fx@gnu.org>
parents:
diff changeset
607 Time (Greenwich time). The values of
Dave Love <fx@gnu.org>
parents:
diff changeset
608 @code{calendar-standard-time-zone-name} and
Dave Love <fx@gnu.org>
parents:
diff changeset
609 @code{calendar-daylight-time-zone-name} are the abbreviations used in
Dave Love <fx@gnu.org>
parents:
diff changeset
610 your time zone. Emacs displays the times of sunrise and sunset
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
611 @emph{corrected for daylight saving time}. @xref{Daylight Saving},
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
612 for how daylight saving time is determined.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
613
Dave Love <fx@gnu.org>
parents:
diff changeset
614 As a user, you might find it convenient to set the calendar location
Dave Love <fx@gnu.org>
parents:
diff changeset
615 variables for your usual physical location in your @file{.emacs} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
616 And when you install Emacs on a machine, you can create a
Dave Love <fx@gnu.org>
parents:
diff changeset
617 @file{default.el} file which sets them properly for the typical location
Dave Love <fx@gnu.org>
parents:
diff changeset
618 of most users of that machine. @xref{Init File}.
Dave Love <fx@gnu.org>
parents:
diff changeset
619
Dave Love <fx@gnu.org>
parents:
diff changeset
620 @node Lunar Phases
Dave Love <fx@gnu.org>
parents:
diff changeset
621 @section Phases of the Moon
Dave Love <fx@gnu.org>
parents:
diff changeset
622 @cindex phases of the moon
Dave Love <fx@gnu.org>
parents:
diff changeset
623 @cindex moon, phases of
Dave Love <fx@gnu.org>
parents:
diff changeset
624
Dave Love <fx@gnu.org>
parents:
diff changeset
625 These calendar commands display the dates and times of the phases of
Dave Love <fx@gnu.org>
parents:
diff changeset
626 the moon (new moon, first quarter, full moon, last quarter). This
Dave Love <fx@gnu.org>
parents:
diff changeset
627 feature is useful for debugging problems that ``depend on the phase of
Dave Love <fx@gnu.org>
parents:
diff changeset
628 the moon.''
Dave Love <fx@gnu.org>
parents:
diff changeset
629
Dave Love <fx@gnu.org>
parents:
diff changeset
630 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
631 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
632 Display the dates and times for all the quarters of the moon for the
Dave Love <fx@gnu.org>
parents:
diff changeset
633 three-month period shown (@code{calendar-phases-of-moon}).
Dave Love <fx@gnu.org>
parents:
diff changeset
634 @item M-x phases-of-moon
Dave Love <fx@gnu.org>
parents:
diff changeset
635 Display dates and times of the quarters of the moon for three months around
Dave Love <fx@gnu.org>
parents:
diff changeset
636 today's date.
Dave Love <fx@gnu.org>
parents:
diff changeset
637 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
638
Dave Love <fx@gnu.org>
parents:
diff changeset
639 @kindex M @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
640 @findex calendar-phases-of-moon
Dave Love <fx@gnu.org>
parents:
diff changeset
641 Within the calendar, use the @kbd{M} command to display a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
642 buffer of the phases of the moon for the current three-month range. The
Dave Love <fx@gnu.org>
parents:
diff changeset
643 dates and times listed are accurate to within a few minutes.
Dave Love <fx@gnu.org>
parents:
diff changeset
644
Dave Love <fx@gnu.org>
parents:
diff changeset
645 @findex phases-of-moon
Dave Love <fx@gnu.org>
parents:
diff changeset
646 Outside the calendar, use the command @kbd{M-x phases-of-moon} to
Dave Love <fx@gnu.org>
parents:
diff changeset
647 display the list of the phases of the moon for the current month and the
Dave Love <fx@gnu.org>
parents:
diff changeset
648 preceding and succeeding months. For information about a different
Dave Love <fx@gnu.org>
parents:
diff changeset
649 month, use @kbd{C-u M-x phases-of-moon}, which prompts for the month and
Dave Love <fx@gnu.org>
parents:
diff changeset
650 year.
Dave Love <fx@gnu.org>
parents:
diff changeset
651
Dave Love <fx@gnu.org>
parents:
diff changeset
652 The dates and times given for the phases of the moon are given in
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
653 local time (corrected for daylight saving, when appropriate); but if
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
654 the variable @code{calendar-time-zone} is void, Coordinated Universal
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
655 Time (the Greenwich time zone) is used. @xref{Daylight Saving}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
656
Dave Love <fx@gnu.org>
parents:
diff changeset
657 @node Other Calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
658 @section Conversion To and From Other Calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
659
Dave Love <fx@gnu.org>
parents:
diff changeset
660 @cindex Gregorian calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
661 The Emacs calendar displayed is @emph{always} the Gregorian calendar,
Dave Love <fx@gnu.org>
parents:
diff changeset
662 sometimes called the ``new style'' calendar, which is used in most of
Dave Love <fx@gnu.org>
parents:
diff changeset
663 the world today. However, this calendar did not exist before the
Dave Love <fx@gnu.org>
parents:
diff changeset
664 sixteenth century and was not widely used before the eighteenth century;
Dave Love <fx@gnu.org>
parents:
diff changeset
665 it did not fully displace the Julian calendar and gain universal
Dave Love <fx@gnu.org>
parents:
diff changeset
666 acceptance until the early twentieth century. The Emacs calendar can
Dave Love <fx@gnu.org>
parents:
diff changeset
667 display any month since January, year 1 of the current era, but the
Dave Love <fx@gnu.org>
parents:
diff changeset
668 calendar displayed is the Gregorian, even for a date at which the
Dave Love <fx@gnu.org>
parents:
diff changeset
669 Gregorian calendar did not exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
670
Dave Love <fx@gnu.org>
parents:
diff changeset
671 While Emacs cannot display other calendars, it can convert dates to
Dave Love <fx@gnu.org>
parents:
diff changeset
672 and from several other calendars.
Dave Love <fx@gnu.org>
parents:
diff changeset
673
Dave Love <fx@gnu.org>
parents:
diff changeset
674 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
675 * Calendar Systems:: The calendars Emacs understands
Dave Love <fx@gnu.org>
parents:
diff changeset
676 (aside from Gregorian).
Dave Love <fx@gnu.org>
parents:
diff changeset
677 * To Other Calendar:: Converting the selected date to various calendars.
Dave Love <fx@gnu.org>
parents:
diff changeset
678 * From Other Calendar:: Moving to a date specified in another calendar.
Dave Love <fx@gnu.org>
parents:
diff changeset
679 * Mayan Calendar:: Moving to a date specified in a Mayan calendar.
Dave Love <fx@gnu.org>
parents:
diff changeset
680 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
681
Dave Love <fx@gnu.org>
parents:
diff changeset
682 @node Calendar Systems
Dave Love <fx@gnu.org>
parents:
diff changeset
683 @subsection Supported Calendar Systems
Dave Love <fx@gnu.org>
parents:
diff changeset
684
Dave Love <fx@gnu.org>
parents:
diff changeset
685 @cindex ISO commercial calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
686 The ISO commercial calendar is used largely in Europe.
Dave Love <fx@gnu.org>
parents:
diff changeset
687
Dave Love <fx@gnu.org>
parents:
diff changeset
688 @cindex Julian calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
689 The Julian calendar, named after Julius Caesar, was the one used in Europe
Dave Love <fx@gnu.org>
parents:
diff changeset
690 throughout medieval times, and in many countries up until the nineteenth
Dave Love <fx@gnu.org>
parents:
diff changeset
691 century.
Dave Love <fx@gnu.org>
parents:
diff changeset
692
Dave Love <fx@gnu.org>
parents:
diff changeset
693 @cindex Julian day numbers
Dave Love <fx@gnu.org>
parents:
diff changeset
694 @cindex astronomical day numbers
Dave Love <fx@gnu.org>
parents:
diff changeset
695 Astronomers use a simple counting of days elapsed since noon, Monday,
Dave Love <fx@gnu.org>
parents:
diff changeset
696 January 1, 4713 B.C. on the Julian calendar. The number of days elapsed
36263
11db0318031d Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 36145
diff changeset
697 is called the @dfn{Julian day number} or the @dfn{Astronomical day number}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
698
Dave Love <fx@gnu.org>
parents:
diff changeset
699 @cindex Hebrew calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
700 The Hebrew calendar is used by tradition in the Jewish religion. The
Dave Love <fx@gnu.org>
parents:
diff changeset
701 Emacs calendar program uses the Hebrew calendar to determine the dates
Dave Love <fx@gnu.org>
parents:
diff changeset
702 of Jewish holidays. Hebrew calendar dates begin and end at sunset.
Dave Love <fx@gnu.org>
parents:
diff changeset
703
Dave Love <fx@gnu.org>
parents:
diff changeset
704 @cindex Islamic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
705 The Islamic calendar is used in many predominantly Islamic countries.
Dave Love <fx@gnu.org>
parents:
diff changeset
706 Emacs uses it to determine the dates of Islamic holidays. There is no
Dave Love <fx@gnu.org>
parents:
diff changeset
707 universal agreement in the Islamic world about the calendar; Emacs uses
Dave Love <fx@gnu.org>
parents:
diff changeset
708 a widely accepted version, but the precise dates of Islamic holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
709 often depend on proclamation by religious authorities, not on
Dave Love <fx@gnu.org>
parents:
diff changeset
710 calculations. As a consequence, the actual dates of observance can vary
Dave Love <fx@gnu.org>
parents:
diff changeset
711 slightly from the dates computed by Emacs. Islamic calendar dates begin
Dave Love <fx@gnu.org>
parents:
diff changeset
712 and end at sunset.
Dave Love <fx@gnu.org>
parents:
diff changeset
713
Dave Love <fx@gnu.org>
parents:
diff changeset
714 @cindex French Revolutionary calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
715 The French Revolutionary calendar was created by the Jacobins after the 1789
Dave Love <fx@gnu.org>
parents:
diff changeset
716 revolution, to represent a more secular and nature-based view of the annual
Dave Love <fx@gnu.org>
parents:
diff changeset
717 cycle, and to install a 10-day week in a rationalization measure similar to
Dave Love <fx@gnu.org>
parents:
diff changeset
718 the metric system. The French government officially abandoned this
Dave Love <fx@gnu.org>
parents:
diff changeset
719 calendar at the end of 1805.
Dave Love <fx@gnu.org>
parents:
diff changeset
720
Dave Love <fx@gnu.org>
parents:
diff changeset
721 @cindex Mayan calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
722 The Maya of Central America used three separate, overlapping calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
723 systems, the @emph{long count}, the @emph{tzolkin}, and the @emph{haab}.
Dave Love <fx@gnu.org>
parents:
diff changeset
724 Emacs knows about all three of these calendars. Experts dispute the
Dave Love <fx@gnu.org>
parents:
diff changeset
725 exact correlation between the Mayan calendar and our calendar; Emacs uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
726 Goodman-Martinez-Thompson correlation in its calculations.
Dave Love <fx@gnu.org>
parents:
diff changeset
727
Dave Love <fx@gnu.org>
parents:
diff changeset
728 @cindex Coptic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
729 @cindex Ethiopic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
730 The Copts use a calendar based on the ancient Egyptian solar calendar.
Dave Love <fx@gnu.org>
parents:
diff changeset
731 Their calendar consists of twelve 30-day months followed by an extra
Dave Love <fx@gnu.org>
parents:
diff changeset
732 five-day period. Once every fourth year they add a leap day to this
Dave Love <fx@gnu.org>
parents:
diff changeset
733 extra period to make it six days. The Ethiopic calendar is identical in
Dave Love <fx@gnu.org>
parents:
diff changeset
734 structure, but has different year numbers and month names.
Dave Love <fx@gnu.org>
parents:
diff changeset
735
Dave Love <fx@gnu.org>
parents:
diff changeset
736 @cindex Persian calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
737 The Persians use a solar calendar based on a design of Omar Khayyam.
Dave Love <fx@gnu.org>
parents:
diff changeset
738 Their calendar consists of twelve months of which the first six have 31
Dave Love <fx@gnu.org>
parents:
diff changeset
739 days, the next five have 30 days, and the last has 29 in ordinary years
Dave Love <fx@gnu.org>
parents:
diff changeset
740 and 30 in leap years. Leap years occur in a complicated pattern every
Dave Love <fx@gnu.org>
parents:
diff changeset
741 four or five years.
61174
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
742 The calendar implemented here is the arithmetical Persian calendar
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
743 championed by Birashk, based on a 2,820-year cycle. It differs from
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
744 the astronomical Persian calendar, which is based on astronomical
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
745 events. As of this writing the first future discrepancy is projected
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
746 to occur on March 20, 2025. It is currently not clear what the
0609cac4453f * calendar.texi (Calendar Systems): Say that the Persian calendar
Paul Eggert <eggert@twinsun.com>
parents: 61058
diff changeset
747 official calendar of Iran will be that far into the future.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
748
Dave Love <fx@gnu.org>
parents:
diff changeset
749 @cindex Chinese calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
750 The Chinese calendar is a complicated system of lunar months arranged
Dave Love <fx@gnu.org>
parents:
diff changeset
751 into solar years. The years go in cycles of sixty, each year containing
Dave Love <fx@gnu.org>
parents:
diff changeset
752 either twelve months in an ordinary year or thirteen months in a leap
Dave Love <fx@gnu.org>
parents:
diff changeset
753 year; each month has either 29 or 30 days. Years, ordinary months, and
Dave Love <fx@gnu.org>
parents:
diff changeset
754 days are named by combining one of ten ``celestial stems'' with one of
Dave Love <fx@gnu.org>
parents:
diff changeset
755 twelve ``terrestrial branches'' for a total of sixty names that are
Dave Love <fx@gnu.org>
parents:
diff changeset
756 repeated in a cycle of sixty.
Dave Love <fx@gnu.org>
parents:
diff changeset
757
Dave Love <fx@gnu.org>
parents:
diff changeset
758 @node To Other Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
759 @subsection Converting To Other Calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
760
Dave Love <fx@gnu.org>
parents:
diff changeset
761 The following commands describe the selected date (the date at point)
Dave Love <fx@gnu.org>
parents:
diff changeset
762 in various other calendar systems:
Dave Love <fx@gnu.org>
parents:
diff changeset
763
Dave Love <fx@gnu.org>
parents:
diff changeset
764 @table @kbd
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
765 @item Mouse-2 Other calendars
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
766 Display the date that you click on, expressed in various other calendars.
Dave Love <fx@gnu.org>
parents:
diff changeset
767 @kindex p @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
768 @findex calendar-print-iso-date
Dave Love <fx@gnu.org>
parents:
diff changeset
769 @item p c
Dave Love <fx@gnu.org>
parents:
diff changeset
770 Display ISO commercial calendar equivalent for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
771 (@code{calendar-print-iso-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
772 @findex calendar-print-julian-date
Dave Love <fx@gnu.org>
parents:
diff changeset
773 @item p j
Dave Love <fx@gnu.org>
parents:
diff changeset
774 Display Julian date for selected day (@code{calendar-print-julian-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
775 @findex calendar-print-astro-day-number
Dave Love <fx@gnu.org>
parents:
diff changeset
776 @item p a
Dave Love <fx@gnu.org>
parents:
diff changeset
777 Display astronomical (Julian) day number for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
778 (@code{calendar-print-astro-day-number}).
Dave Love <fx@gnu.org>
parents:
diff changeset
779 @findex calendar-print-hebrew-date
Dave Love <fx@gnu.org>
parents:
diff changeset
780 @item p h
Dave Love <fx@gnu.org>
parents:
diff changeset
781 Display Hebrew date for selected day (@code{calendar-print-hebrew-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
782 @findex calendar-print-islamic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
783 @item p i
Dave Love <fx@gnu.org>
parents:
diff changeset
784 Display Islamic date for selected day (@code{calendar-print-islamic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
785 @findex calendar-print-french-date
Dave Love <fx@gnu.org>
parents:
diff changeset
786 @item p f
Dave Love <fx@gnu.org>
parents:
diff changeset
787 Display French Revolutionary date for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
788 (@code{calendar-print-french-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
789 @findex calendar-print-chinese-date
Dave Love <fx@gnu.org>
parents:
diff changeset
790 @item p C
Dave Love <fx@gnu.org>
parents:
diff changeset
791 Display Chinese date for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
792 (@code{calendar-print-chinese-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
793 @findex calendar-print-coptic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
794 @item p k
Dave Love <fx@gnu.org>
parents:
diff changeset
795 Display Coptic date for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
796 (@code{calendar-print-coptic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
797 @findex calendar-print-ethiopic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
798 @item p e
Dave Love <fx@gnu.org>
parents:
diff changeset
799 Display Ethiopic date for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
800 (@code{calendar-print-ethiopic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
801 @findex calendar-print-persian-date
Dave Love <fx@gnu.org>
parents:
diff changeset
802 @item p p
Dave Love <fx@gnu.org>
parents:
diff changeset
803 Display Persian date for selected day
Dave Love <fx@gnu.org>
parents:
diff changeset
804 (@code{calendar-print-persian-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
805 @findex calendar-print-mayan-date
Dave Love <fx@gnu.org>
parents:
diff changeset
806 @item p m
Dave Love <fx@gnu.org>
parents:
diff changeset
807 Display Mayan date for selected day (@code{calendar-print-mayan-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
808 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
809
Dave Love <fx@gnu.org>
parents:
diff changeset
810 If you are using X, the easiest way to translate a date into other
Dave Love <fx@gnu.org>
parents:
diff changeset
811 calendars is to click on it with @kbd{Mouse-2}, then choose @kbd{Other
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
812 calendars} from the menu that appears. This displays the equivalent
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
813 forms of the date in all the calendars Emacs understands, in the form of
Dave Love <fx@gnu.org>
parents:
diff changeset
814 a menu. (Choosing an alternative from this menu doesn't actually do
Dave Love <fx@gnu.org>
parents:
diff changeset
815 anything---the menu is used only for display.)
Dave Love <fx@gnu.org>
parents:
diff changeset
816
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
817 Otherwise, move point to the date you want to convert, then type the
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
818 appropriate command starting with @kbd{p} from the table above. The
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
819 prefix @kbd{p} is a mnemonic for ``print,'' since Emacs ``prints'' the
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
820 equivalent date in the echo area.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
821
Dave Love <fx@gnu.org>
parents:
diff changeset
822 @node From Other Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
823 @subsection Converting From Other Calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
824
Dave Love <fx@gnu.org>
parents:
diff changeset
825 You can use the other supported calendars to specify a date to move
Dave Love <fx@gnu.org>
parents:
diff changeset
826 to. This section describes the commands for doing this using calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
827 other than Mayan; for the Mayan calendar, see the following section.
Dave Love <fx@gnu.org>
parents:
diff changeset
828
Dave Love <fx@gnu.org>
parents:
diff changeset
829 @kindex g @var{char} @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
830 @findex calendar-goto-iso-date
57322
669cfc393253 From Emilio C. Lopes <eclig@gmx.net>:
Glenn Morris <rgm@gnu.org>
parents: 56279
diff changeset
831 @findex calendar-goto-iso-week
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
832 @findex calendar-goto-julian-date
Dave Love <fx@gnu.org>
parents:
diff changeset
833 @findex calendar-goto-astro-day-number
Dave Love <fx@gnu.org>
parents:
diff changeset
834 @findex calendar-goto-hebrew-date
Dave Love <fx@gnu.org>
parents:
diff changeset
835 @findex calendar-goto-islamic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
836 @findex calendar-goto-french-date
Dave Love <fx@gnu.org>
parents:
diff changeset
837 @findex calendar-goto-chinese-date
Dave Love <fx@gnu.org>
parents:
diff changeset
838 @findex calendar-goto-persian-date
Dave Love <fx@gnu.org>
parents:
diff changeset
839 @findex calendar-goto-coptic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
840 @findex calendar-goto-ethiopic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
841 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
842 @item g c
Dave Love <fx@gnu.org>
parents:
diff changeset
843 Move to a date specified in the ISO commercial calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
844 (@code{calendar-goto-iso-date}).
57322
669cfc393253 From Emilio C. Lopes <eclig@gmx.net>:
Glenn Morris <rgm@gnu.org>
parents: 56279
diff changeset
845 @item g w
669cfc393253 From Emilio C. Lopes <eclig@gmx.net>:
Glenn Morris <rgm@gnu.org>
parents: 56279
diff changeset
846 Move to a week specified in the ISO commercial calendar
669cfc393253 From Emilio C. Lopes <eclig@gmx.net>:
Glenn Morris <rgm@gnu.org>
parents: 56279
diff changeset
847 (@code{calendar-goto-iso-week}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
848 @item g j
Dave Love <fx@gnu.org>
parents:
diff changeset
849 Move to a date specified in the Julian calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
850 (@code{calendar-goto-julian-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
851 @item g a
38156
e46c555b62c8 Minor change.
Richard M. Stallman <rms@gnu.org>
parents: 38125
diff changeset
852 Move to a date specified with an astronomical (Julian) day number
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
853 (@code{calendar-goto-astro-day-number}).
Dave Love <fx@gnu.org>
parents:
diff changeset
854 @item g h
Dave Love <fx@gnu.org>
parents:
diff changeset
855 Move to a date specified in the Hebrew calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
856 (@code{calendar-goto-hebrew-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
857 @item g i
Dave Love <fx@gnu.org>
parents:
diff changeset
858 Move to a date specified in the Islamic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
859 (@code{calendar-goto-islamic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
860 @item g f
Dave Love <fx@gnu.org>
parents:
diff changeset
861 Move to a date specified in the French Revolutionary calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
862 (@code{calendar-goto-french-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
863 @item g C
Dave Love <fx@gnu.org>
parents:
diff changeset
864 Move to a date specified in the Chinese calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
865 (@code{calendar-goto-chinese-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
866 @item g p
Dave Love <fx@gnu.org>
parents:
diff changeset
867 Move to a date specified in the Persian calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
868 (@code{calendar-goto-persian-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
869 @item g k
Dave Love <fx@gnu.org>
parents:
diff changeset
870 Move to a date specified in the Coptic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
871 (@code{calendar-goto-coptic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
872 @item g e
Dave Love <fx@gnu.org>
parents:
diff changeset
873 Move to a date specified in the Ethiopic calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
874 (@code{calendar-goto-ethiopic-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
875 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
876
Dave Love <fx@gnu.org>
parents:
diff changeset
877 These commands ask you for a date on the other calendar, move point to
Dave Love <fx@gnu.org>
parents:
diff changeset
878 the Gregorian calendar date equivalent to that date, and display the
Dave Love <fx@gnu.org>
parents:
diff changeset
879 other calendar's date in the echo area. Emacs uses strict completion
Dave Love <fx@gnu.org>
parents:
diff changeset
880 (@pxref{Completion}) whenever it asks you to type a month name, so you
37142
e107572ba2dd Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents: 36909
diff changeset
881 don't have to worry about the spelling of Hebrew, Islamic, or French names.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
882
Dave Love <fx@gnu.org>
parents:
diff changeset
883 @findex list-yahrzeit-dates
Dave Love <fx@gnu.org>
parents:
diff changeset
884 @cindex yahrzeits
Dave Love <fx@gnu.org>
parents:
diff changeset
885 One common question concerning the Hebrew calendar is the computation
Dave Love <fx@gnu.org>
parents:
diff changeset
886 of the anniversary of a date of death, called a ``yahrzeit.'' The Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
887 calendar includes a facility for such calculations. If you are in the
Dave Love <fx@gnu.org>
parents:
diff changeset
888 calendar, the command @kbd{M-x list-yahrzeit-dates} asks you for a
Dave Love <fx@gnu.org>
parents:
diff changeset
889 range of years and then displays a list of the yahrzeit dates for those
Dave Love <fx@gnu.org>
parents:
diff changeset
890 years for the date given by point. If you are not in the calendar,
Dave Love <fx@gnu.org>
parents:
diff changeset
891 this command first asks you for the date of death and the range of
Dave Love <fx@gnu.org>
parents:
diff changeset
892 years, and then displays the list of yahrzeit dates.
Dave Love <fx@gnu.org>
parents:
diff changeset
893
Dave Love <fx@gnu.org>
parents:
diff changeset
894 @node Mayan Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
895 @subsection Converting from the Mayan Calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
896
Dave Love <fx@gnu.org>
parents:
diff changeset
897 Here are the commands to select dates based on the Mayan calendar:
Dave Love <fx@gnu.org>
parents:
diff changeset
898
Dave Love <fx@gnu.org>
parents:
diff changeset
899 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
900 @item g m l
Dave Love <fx@gnu.org>
parents:
diff changeset
901 Move to a date specified by the long count calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
902 (@code{calendar-goto-mayan-long-count-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
903 @item g m n t
Dave Love <fx@gnu.org>
parents:
diff changeset
904 Move to the next occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
905 tzolkin calendar (@code{calendar-next-tzolkin-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
906 @item g m p t
Dave Love <fx@gnu.org>
parents:
diff changeset
907 Move to the previous occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
908 tzolkin calendar (@code{calendar-previous-tzolkin-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
909 @item g m n h
Dave Love <fx@gnu.org>
parents:
diff changeset
910 Move to the next occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
911 haab calendar (@code{calendar-next-haab-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
912 @item g m p h
Dave Love <fx@gnu.org>
parents:
diff changeset
913 Move to the previous occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
914 haab calendar (@code{calendar-previous-haab-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
915 @item g m n c
Dave Love <fx@gnu.org>
parents:
diff changeset
916 Move to the next occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
917 calendar round (@code{calendar-next-calendar-round-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
918 @item g m p c
Dave Love <fx@gnu.org>
parents:
diff changeset
919 Move to the previous occurrence of a place in the
Dave Love <fx@gnu.org>
parents:
diff changeset
920 calendar round (@code{calendar-previous-calendar-round-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
921 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
922
Dave Love <fx@gnu.org>
parents:
diff changeset
923 @cindex Mayan long count
Dave Love <fx@gnu.org>
parents:
diff changeset
924 To understand these commands, you need to understand the Mayan calendars.
Dave Love <fx@gnu.org>
parents:
diff changeset
925 The @dfn{long count} is a counting of days with these units:
Dave Love <fx@gnu.org>
parents:
diff changeset
926
Dave Love <fx@gnu.org>
parents:
diff changeset
927 @display
Dave Love <fx@gnu.org>
parents:
diff changeset
928 1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal
Dave Love <fx@gnu.org>
parents:
diff changeset
929 1 katun = 20 tun@ @ @ 1 baktun = 20 katun
Dave Love <fx@gnu.org>
parents:
diff changeset
930 @end display
Dave Love <fx@gnu.org>
parents:
diff changeset
931
Dave Love <fx@gnu.org>
parents:
diff changeset
932 @kindex g m @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
933 @findex calendar-goto-mayan-long-count-date
Dave Love <fx@gnu.org>
parents:
diff changeset
934 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
935 Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11
Dave Love <fx@gnu.org>
parents:
diff changeset
936 tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
937 count dates as early as 7.17.18.13.3, but no earlier. When you use the
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
938 @kbd{g m l} command, type the Mayan long count date with the baktun,
Dave Love <fx@gnu.org>
parents:
diff changeset
939 katun, tun, uinal, and kin separated by periods.
Dave Love <fx@gnu.org>
parents:
diff changeset
940
Dave Love <fx@gnu.org>
parents:
diff changeset
941 @findex calendar-previous-tzolkin-date
Dave Love <fx@gnu.org>
parents:
diff changeset
942 @findex calendar-next-tzolkin-date
Dave Love <fx@gnu.org>
parents:
diff changeset
943 @cindex Mayan tzolkin calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
944 The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of
Dave Love <fx@gnu.org>
parents:
diff changeset
945 independent cycles of 13 and 20 days. Since this cycle repeats
Dave Love <fx@gnu.org>
parents:
diff changeset
946 endlessly, Emacs provides commands to move backward and forward to the
Dave Love <fx@gnu.org>
parents:
diff changeset
947 previous or next point in the cycle. Type @kbd{g m p t} to go to the
Dave Love <fx@gnu.org>
parents:
diff changeset
948 previous tzolkin date; Emacs asks you for a tzolkin date and moves point
Dave Love <fx@gnu.org>
parents:
diff changeset
949 to the previous occurrence of that date. Similarly, type @kbd{g m n t}
Dave Love <fx@gnu.org>
parents:
diff changeset
950 to go to the next occurrence of a tzolkin date.
Dave Love <fx@gnu.org>
parents:
diff changeset
951
Dave Love <fx@gnu.org>
parents:
diff changeset
952 @findex calendar-previous-haab-date
Dave Love <fx@gnu.org>
parents:
diff changeset
953 @findex calendar-next-haab-date
Dave Love <fx@gnu.org>
parents:
diff changeset
954 @cindex Mayan haab calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
955 The Mayan haab calendar is a cycle of 365 days arranged as 18 months
Dave Love <fx@gnu.org>
parents:
diff changeset
956 of 20 days each, followed a 5-day monthless period. Like the tzolkin
Dave Love <fx@gnu.org>
parents:
diff changeset
957 cycle, this cycle repeats endlessly, and there are commands to move
Dave Love <fx@gnu.org>
parents:
diff changeset
958 backward and forward to the previous or next point in the cycle. Type
Dave Love <fx@gnu.org>
parents:
diff changeset
959 @kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab
Dave Love <fx@gnu.org>
parents:
diff changeset
960 date and moves point to the previous occurrence of that date.
Dave Love <fx@gnu.org>
parents:
diff changeset
961 Similarly, type @kbd{g m n h} to go to the next occurrence of a haab
Dave Love <fx@gnu.org>
parents:
diff changeset
962 date.
Dave Love <fx@gnu.org>
parents:
diff changeset
963
Dave Love <fx@gnu.org>
parents:
diff changeset
964 @c This is omitted because it is too long for smallbook format.
Dave Love <fx@gnu.org>
parents:
diff changeset
965 @c @findex calendar-previous-calendar-round-date
Dave Love <fx@gnu.org>
parents:
diff changeset
966 @findex calendar-next-calendar-round-date
Dave Love <fx@gnu.org>
parents:
diff changeset
967 @cindex Mayan calendar round
Dave Love <fx@gnu.org>
parents:
diff changeset
968 The Maya also used the combination of the tzolkin date and the haab
Dave Love <fx@gnu.org>
parents:
diff changeset
969 date. This combination is a cycle of about 52 years called a
Dave Love <fx@gnu.org>
parents:
diff changeset
970 @emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for
Dave Love <fx@gnu.org>
parents:
diff changeset
971 both a haab and a tzolkin date and then moves point to the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
972 occurrence of that combination. Use @kbd{g m n c} to move point to the
Dave Love <fx@gnu.org>
parents:
diff changeset
973 next occurrence of a combination. These commands signal an error if the
Dave Love <fx@gnu.org>
parents:
diff changeset
974 haab/tzolkin date combination you have typed is impossible.
Dave Love <fx@gnu.org>
parents:
diff changeset
975
Dave Love <fx@gnu.org>
parents:
diff changeset
976 Emacs uses strict completion (@pxref{Strict Completion}) whenever it
Dave Love <fx@gnu.org>
parents:
diff changeset
977 asks you to type a Mayan name, so you don't have to worry about
Dave Love <fx@gnu.org>
parents:
diff changeset
978 spelling.
Dave Love <fx@gnu.org>
parents:
diff changeset
979
Dave Love <fx@gnu.org>
parents:
diff changeset
980 @node Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
981 @section The Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
982 @cindex diary
Dave Love <fx@gnu.org>
parents:
diff changeset
983
Dave Love <fx@gnu.org>
parents:
diff changeset
984 The Emacs diary keeps track of appointments or other events on a daily
Dave Love <fx@gnu.org>
parents:
diff changeset
985 basis, in conjunction with the calendar. To use the diary feature, you
Dave Love <fx@gnu.org>
parents:
diff changeset
986 must first create a @dfn{diary file} containing a list of events and
Dave Love <fx@gnu.org>
parents:
diff changeset
987 their dates. Then Emacs can automatically pick out and display the
Dave Love <fx@gnu.org>
parents:
diff changeset
988 events for today, for the immediate future, or for any specified
Dave Love <fx@gnu.org>
parents:
diff changeset
989 date.
Dave Love <fx@gnu.org>
parents:
diff changeset
990
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
991 The name of the diary file is specified by the variable
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
992 @code{diary-file}; @file{~/diary} is the default. A sample diary file
61240
7f013d492723 (Diary): Mention shell utility `calendar'.
Glenn Morris <rgm@gnu.org>
parents: 61174
diff changeset
993 is (note that the file format is essentially the same as that used by
7f013d492723 (Diary): Mention shell utility `calendar'.
Glenn Morris <rgm@gnu.org>
parents: 61174
diff changeset
994 the external shell utility @samp{calendar}):
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
995
Dave Love <fx@gnu.org>
parents:
diff changeset
996 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
997 12/22/1988 Twentieth wedding anniversary!!
Dave Love <fx@gnu.org>
parents:
diff changeset
998 &1/1. Happy New Year!
Dave Love <fx@gnu.org>
parents:
diff changeset
999 10/22 Ruth's birthday.
Dave Love <fx@gnu.org>
parents:
diff changeset
1000 * 21, *: Payday
Dave Love <fx@gnu.org>
parents:
diff changeset
1001 Tuesday--weekly meeting with grad students at 10am
Dave Love <fx@gnu.org>
parents:
diff changeset
1002 Supowit, Shen, Bitner, and Kapoor to attend.
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 1/13/89 Friday the thirteenth!!
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 &thu 4pm squash game with Lloyd.
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 mar 16 Dad's birthday
Dave Love <fx@gnu.org>
parents:
diff changeset
1006 April 15, 1989 Income tax due.
Dave Love <fx@gnu.org>
parents:
diff changeset
1007 &* 15 time cards due.
Dave Love <fx@gnu.org>
parents:
diff changeset
1008 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1009
Dave Love <fx@gnu.org>
parents:
diff changeset
1010 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1011 This example uses extra spaces to align the event descriptions of most
Dave Love <fx@gnu.org>
parents:
diff changeset
1012 of the entries. Such formatting is purely a matter of taste.
Dave Love <fx@gnu.org>
parents:
diff changeset
1013
Dave Love <fx@gnu.org>
parents:
diff changeset
1014 Although you probably will start by creating a diary manually, Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 provides a number of commands to let you view, add, and change diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1017
Dave Love <fx@gnu.org>
parents:
diff changeset
1018 @menu
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1019 * Displaying the Diary:: Viewing diary entries and associated calendar dates.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1020 * Format of Diary File:: Entering events in your diary.
Dave Love <fx@gnu.org>
parents:
diff changeset
1021 * Date Formats:: Various ways you can specify dates.
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 * Adding to Diary:: Commands to create diary entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1023 * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
1024 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1025
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1026 @node Displaying the Diary
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1027 @subsection Displaying the Diary
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1028
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1029 Once you have created a diary file, you can use the calendar to view
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1030 it. You can also view today's events outside of Calendar mode.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1031
Dave Love <fx@gnu.org>
parents:
diff changeset
1032 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 Display all diary entries for the selected date
70637
3c9e0c2bdc5b (Displaying the Diary, Format of Diary File):
Glenn Morris <rgm@gnu.org>
parents: 70630
diff changeset
1035 (@code{diary-view-entries}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1036 @item Mouse-2 Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1037 Display all diary entries for the date you click on.
Dave Love <fx@gnu.org>
parents:
diff changeset
1038 @item s
70637
3c9e0c2bdc5b (Displaying the Diary, Format of Diary File):
Glenn Morris <rgm@gnu.org>
parents: 70630
diff changeset
1039 Display the entire diary file (@code{diary-show-all-entries}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1040 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
1041 Mark all visible dates that have diary entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1042 (@code{mark-diary-entries}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1043 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
1044 Unmark the calendar window (@code{calendar-unmark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1045 @item M-x print-diary-entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1046 Print hard copy of the diary display as it appears.
Dave Love <fx@gnu.org>
parents:
diff changeset
1047 @item M-x diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 Display all diary entries for today's date.
Dave Love <fx@gnu.org>
parents:
diff changeset
1049 @item M-x diary-mail-entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1050 Mail yourself email reminders about upcoming diary entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1051 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1052
Dave Love <fx@gnu.org>
parents:
diff changeset
1053 @kindex d @r{(Calendar mode)}
70637
3c9e0c2bdc5b (Displaying the Diary, Format of Diary File):
Glenn Morris <rgm@gnu.org>
parents: 70630
diff changeset
1054 @findex diary-view-entries
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1055 @vindex view-diary-entries-initially
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 Displaying the diary entries with @kbd{d} shows in a separate window
Dave Love <fx@gnu.org>
parents:
diff changeset
1057 the diary entries for the selected date in the calendar. The mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
1058 of the new window shows the date of the diary entries and any holidays
Dave Love <fx@gnu.org>
parents:
diff changeset
1059 that fall on that date. If you specify a numeric argument with @kbd{d},
Dave Love <fx@gnu.org>
parents:
diff changeset
1060 it shows all the diary entries for that many successive days. Thus,
Dave Love <fx@gnu.org>
parents:
diff changeset
1061 @kbd{2 d} displays all the entries for the selected date and for the
61058
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1062 following day.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1063
Dave Love <fx@gnu.org>
parents:
diff changeset
1064 Another way to display the diary entries for a date is to click
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
1065 @kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from
61058
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1066 the menu that appears. If the variable
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1067 @code{view-diary-entries-initially} is non-@code{nil}, creating the
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1068 calendar lists the diary entries for the current date (provided the
61058
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1069 current date is visible).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1070
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 @kindex m @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1072 @findex mark-diary-entries
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1073 @vindex mark-diary-entries-in-calendar
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1074 To get a broader view of which days are mentioned in the diary, use
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1075 the @kbd{m} command. This displays the dates that have diary entries in
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1076 a different face (or places a @samp{+} after these dates, if display
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1077 with multiple faces is not available).
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1078 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
1079 @inforef{Calendar Customizing, diary-entry-marker, emacs-xtra}.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1080 @end iftex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1081 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1082 @xref{Calendar Customizing, diary-entry-marker}.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1083 @end ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1084 The command applies both to the currently visible months and to
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1085 other months that subsequently become visible by scrolling. To turn
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1086 marking off and erase the current marks, type @kbd{u}, which also
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1087 turns off holiday marks (@pxref{Holidays}). If the variable
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1088 @code{mark-diary-entries-in-calendar} is non-@code{nil}, creating or
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1089 updating the calendar marks diary dates automatically.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1090
Dave Love <fx@gnu.org>
parents:
diff changeset
1091 @kindex s @r{(Calendar mode)}
70637
3c9e0c2bdc5b (Displaying the Diary, Format of Diary File):
Glenn Morris <rgm@gnu.org>
parents: 70630
diff changeset
1092 @findex diary-show-all-entries
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1093 To see the full diary file, rather than just some of the entries, use
Dave Love <fx@gnu.org>
parents:
diff changeset
1094 the @kbd{s} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1095
Dave Love <fx@gnu.org>
parents:
diff changeset
1096 Display of selected diary entries uses the selective display feature
61058
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1097 to hide entries that don't apply. The diary buffer as you see it is
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1098 an illusion, so simply printing the buffer does not print what you see
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1099 on your screen. There is a special command to print hard copy of the
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1100 diary buffer @emph{as it appears}; this command is @kbd{M-x
bda17d148485 Minor fixes to previous change.
Richard M. Stallman <rms@gnu.org>
parents: 61009
diff changeset
1101 print-diary-entries}. It sends the data directly to the printer. You
63007
067667dab0f8 (Displaying the Diary): Change Hardcopy xref to Printing.
Eli Zaretskii <eliz@gnu.org>
parents: 61240
diff changeset
1102 can customize it like @code{lpr-region} (@pxref{Printing}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1103
Dave Love <fx@gnu.org>
parents:
diff changeset
1104 @findex diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1105 The command @kbd{M-x diary} displays the diary entries for the current
Dave Love <fx@gnu.org>
parents:
diff changeset
1106 date, independently of the calendar display, and optionally for the next
Dave Love <fx@gnu.org>
parents:
diff changeset
1107 few days as well; the variable @code{number-of-diary-entries} specifies
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1108 how many days to include.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1109 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
1110 @inforef{Diary Customizing,, emacs-xtra}.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1111 @end iftex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1112 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1113 @xref{Diary Customizing, number-of-diary-entries}.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1114 @end ifnottex
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1115
Dave Love <fx@gnu.org>
parents:
diff changeset
1116 If you put @code{(diary)} in your @file{.emacs} file, this
Dave Love <fx@gnu.org>
parents:
diff changeset
1117 automatically displays a window with the day's diary entries, when you
Dave Love <fx@gnu.org>
parents:
diff changeset
1118 enter Emacs. The mode line of the displayed window shows the date and
Dave Love <fx@gnu.org>
parents:
diff changeset
1119 any holidays that fall on that date.
Dave Love <fx@gnu.org>
parents:
diff changeset
1120
Dave Love <fx@gnu.org>
parents:
diff changeset
1121 @findex diary-mail-entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1122 @vindex diary-mail-days
Dave Love <fx@gnu.org>
parents:
diff changeset
1123 Many users like to receive notice of events in their diary as email.
Dave Love <fx@gnu.org>
parents:
diff changeset
1124 To send such mail to yourself, use the command @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
1125 diary-mail-entries}. A prefix argument specifies how many days
Dave Love <fx@gnu.org>
parents:
diff changeset
1126 (starting with today) to check; otherwise, the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1127 @code{diary-mail-days} says how many days.
Dave Love <fx@gnu.org>
parents:
diff changeset
1128
Dave Love <fx@gnu.org>
parents:
diff changeset
1129 @node Format of Diary File
Dave Love <fx@gnu.org>
parents:
diff changeset
1130 @subsection The Diary File
Dave Love <fx@gnu.org>
parents:
diff changeset
1131 @cindex diary file
Dave Love <fx@gnu.org>
parents:
diff changeset
1132
Dave Love <fx@gnu.org>
parents:
diff changeset
1133 @vindex diary-file
Dave Love <fx@gnu.org>
parents:
diff changeset
1134 Your @dfn{diary file} is a file that records events associated with
Dave Love <fx@gnu.org>
parents:
diff changeset
1135 particular dates. The name of the diary file is specified by the
Dave Love <fx@gnu.org>
parents:
diff changeset
1136 variable @code{diary-file}; @file{~/diary} is the default. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1137 @code{calendar} utility program supports a subset of the format allowed
Dave Love <fx@gnu.org>
parents:
diff changeset
1138 by the Emacs diary facilities, so you can use that utility to view the
Dave Love <fx@gnu.org>
parents:
diff changeset
1139 diary file, with reasonable results aside from the entries it cannot
Dave Love <fx@gnu.org>
parents:
diff changeset
1140 understand.
Dave Love <fx@gnu.org>
parents:
diff changeset
1141
Dave Love <fx@gnu.org>
parents:
diff changeset
1142 Each entry in the diary file describes one event and consists of one
Dave Love <fx@gnu.org>
parents:
diff changeset
1143 or more lines. An entry always begins with a date specification at the
Dave Love <fx@gnu.org>
parents:
diff changeset
1144 left margin. The rest of the entry is simply text to describe the
Dave Love <fx@gnu.org>
parents:
diff changeset
1145 event. If the entry has more than one line, then the lines after the
Dave Love <fx@gnu.org>
parents:
diff changeset
1146 first must begin with whitespace to indicate they continue a previous
Dave Love <fx@gnu.org>
parents:
diff changeset
1147 entry. Lines that do not begin with valid dates and do not continue a
Dave Love <fx@gnu.org>
parents:
diff changeset
1148 preceding entry are ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
1149
Dave Love <fx@gnu.org>
parents:
diff changeset
1150 You can inhibit the marking of certain diary entries in the calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1151 window; to do this, insert an ampersand (@samp{&}) at the beginning of
Dave Love <fx@gnu.org>
parents:
diff changeset
1152 the entry, before the date. This has no effect on display of the entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1153 in the diary window; it affects only marks on dates in the calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1154 window. Nonmarking entries are especially useful for generic entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1155 that would otherwise mark many different dates.
Dave Love <fx@gnu.org>
parents:
diff changeset
1156
Dave Love <fx@gnu.org>
parents:
diff changeset
1157 If the first line of a diary entry consists only of the date or day
Dave Love <fx@gnu.org>
parents:
diff changeset
1158 name with no following blanks or punctuation, then the diary window
Dave Love <fx@gnu.org>
parents:
diff changeset
1159 display doesn't include that line; only the continuation lines appear.
Dave Love <fx@gnu.org>
parents:
diff changeset
1160 For example, this entry:
Dave Love <fx@gnu.org>
parents:
diff changeset
1161
Dave Love <fx@gnu.org>
parents:
diff changeset
1162 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1163 02/11/1989
Dave Love <fx@gnu.org>
parents:
diff changeset
1164 Bill B. visits Princeton today
Dave Love <fx@gnu.org>
parents:
diff changeset
1165 2pm Cognitive Studies Committee meeting
Dave Love <fx@gnu.org>
parents:
diff changeset
1166 2:30-5:30 Liz at Lawrenceville
Dave Love <fx@gnu.org>
parents:
diff changeset
1167 4:00pm Dentist appt
Dave Love <fx@gnu.org>
parents:
diff changeset
1168 7:30pm Dinner at George's
Dave Love <fx@gnu.org>
parents:
diff changeset
1169 8:00-10:00pm concert
Dave Love <fx@gnu.org>
parents:
diff changeset
1170 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1171
Dave Love <fx@gnu.org>
parents:
diff changeset
1172 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1173 appears in the diary window without the date line at the beginning.
Dave Love <fx@gnu.org>
parents:
diff changeset
1174 This style of entry looks neater when you display just a single day's
Dave Love <fx@gnu.org>
parents:
diff changeset
1175 entries, but can cause confusion if you ask for more than one day's
Dave Love <fx@gnu.org>
parents:
diff changeset
1176 entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1177
Dave Love <fx@gnu.org>
parents:
diff changeset
1178 You can edit the diary entries as they appear in the window, but it is
Dave Love <fx@gnu.org>
parents:
diff changeset
1179 important to remember that the buffer displayed contains the @emph{entire}
Dave Love <fx@gnu.org>
parents:
diff changeset
1180 diary file, with portions of it concealed from view. This means, for
Dave Love <fx@gnu.org>
parents:
diff changeset
1181 instance, that the @kbd{C-f} (@code{forward-char}) command can put point
Dave Love <fx@gnu.org>
parents:
diff changeset
1182 at what appears to be the end of the line, but what is in reality the
Dave Love <fx@gnu.org>
parents:
diff changeset
1183 middle of some concealed line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1184
Dave Love <fx@gnu.org>
parents:
diff changeset
1185 @emph{Be careful when editing the diary entries!} Inserting
Dave Love <fx@gnu.org>
parents:
diff changeset
1186 additional lines or adding/deleting characters in the middle of a
Dave Love <fx@gnu.org>
parents:
diff changeset
1187 visible line cannot cause problems, but editing at the end of a line may
Dave Love <fx@gnu.org>
parents:
diff changeset
1188 not do what you expect. Deleting a line may delete other invisible
Dave Love <fx@gnu.org>
parents:
diff changeset
1189 entries that follow it. Before editing the diary, it is best to display
70637
3c9e0c2bdc5b (Displaying the Diary, Format of Diary File):
Glenn Morris <rgm@gnu.org>
parents: 70630
diff changeset
1190 the entire file with @kbd{s} (@code{diary-show-all-entries}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1191
Dave Love <fx@gnu.org>
parents:
diff changeset
1192 @node Date Formats
Dave Love <fx@gnu.org>
parents:
diff changeset
1193 @subsection Date Formats
Dave Love <fx@gnu.org>
parents:
diff changeset
1194
Dave Love <fx@gnu.org>
parents:
diff changeset
1195 Here are some sample diary entries, illustrating different ways of
Dave Love <fx@gnu.org>
parents:
diff changeset
1196 formatting a date. The examples all show dates in American order
Dave Love <fx@gnu.org>
parents:
diff changeset
1197 (month, day, year), but Calendar mode supports European order (day,
Dave Love <fx@gnu.org>
parents:
diff changeset
1198 month, year) as an option.
Dave Love <fx@gnu.org>
parents:
diff changeset
1199
Dave Love <fx@gnu.org>
parents:
diff changeset
1200 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1201 4/20/93 Switch-over to new tabulation system
Dave Love <fx@gnu.org>
parents:
diff changeset
1202 apr. 25 Start tabulating annual results
Dave Love <fx@gnu.org>
parents:
diff changeset
1203 4/30 Results for April are due
Dave Love <fx@gnu.org>
parents:
diff changeset
1204 */25 Monthly cycle finishes
Dave Love <fx@gnu.org>
parents:
diff changeset
1205 Friday Don't leave without backing up files
Dave Love <fx@gnu.org>
parents:
diff changeset
1206 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1207
Dave Love <fx@gnu.org>
parents:
diff changeset
1208 The first entry appears only once, on April 20, 1993. The second and
Dave Love <fx@gnu.org>
parents:
diff changeset
1209 third appear every year on the specified dates, and the fourth uses a
Dave Love <fx@gnu.org>
parents:
diff changeset
1210 wildcard (asterisk) for the month, so it appears on the 25th of every
Dave Love <fx@gnu.org>
parents:
diff changeset
1211 month. The final entry appears every week on Friday.
Dave Love <fx@gnu.org>
parents:
diff changeset
1212
Dave Love <fx@gnu.org>
parents:
diff changeset
1213 You can use just numbers to express a date, as in
Dave Love <fx@gnu.org>
parents:
diff changeset
1214 @samp{@var{month}/@var{day}} or @samp{@var{month}/@var{day}/@var{year}}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1215 This must be followed by a nondigit. In the date itself, @var{month}
Dave Love <fx@gnu.org>
parents:
diff changeset
1216 and @var{day} are numbers of one or two digits. The optional @var{year}
Dave Love <fx@gnu.org>
parents:
diff changeset
1217 is also a number, and may be abbreviated to the last two digits; that
Dave Love <fx@gnu.org>
parents:
diff changeset
1218 is, you can use @samp{11/12/1989} or @samp{11/12/89}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1219
Dave Love <fx@gnu.org>
parents:
diff changeset
1220 Dates can also have the form @samp{@var{monthname} @var{day}} or
Dave Love <fx@gnu.org>
parents:
diff changeset
1221 @samp{@var{monthname} @var{day}, @var{year}}, where the month's name can
52120
d03db605b057 (Date Formats): Document changed behaviour of abbreviations.
Glenn Morris <rgm@gnu.org>
parents: 49600
diff changeset
1222 be spelled in full or abbreviated (with or without a period). The
d03db605b057 (Date Formats): Document changed behaviour of abbreviations.
Glenn Morris <rgm@gnu.org>
parents: 49600
diff changeset
1223 preferred abbreviations can be controlled using the variables
d03db605b057 (Date Formats): Document changed behaviour of abbreviations.
Glenn Morris <rgm@gnu.org>
parents: 49600
diff changeset
1224 @code{calendar-abbrev-length}, @code{calendar-month-abbrev-array}, and
d03db605b057 (Date Formats): Document changed behaviour of abbreviations.
Glenn Morris <rgm@gnu.org>
parents: 49600
diff changeset
1225 @code{calendar-day-abbrev-array}. The default is to use the first three
d03db605b057 (Date Formats): Document changed behaviour of abbreviations.
Glenn Morris <rgm@gnu.org>
parents: 49600
diff changeset
1226 letters of a name as its abbreviation. Case is not significant.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1227
Dave Love <fx@gnu.org>
parents:
diff changeset
1228 A date may be @dfn{generic}; that is, partially unspecified. Then the
Dave Love <fx@gnu.org>
parents:
diff changeset
1229 entry applies to all dates that match the specification. If the date
Dave Love <fx@gnu.org>
parents:
diff changeset
1230 does not contain a year, it is generic and applies to any year.
Dave Love <fx@gnu.org>
parents:
diff changeset
1231 Alternatively, @var{month}, @var{day}, or @var{year} can be a @samp{*};
Dave Love <fx@gnu.org>
parents:
diff changeset
1232 this matches any month, day, or year, respectively. Thus, a diary entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1233 @samp{3/*/*} matches any day in March of any year; so does @samp{march
Dave Love <fx@gnu.org>
parents:
diff changeset
1234 *}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1235
Dave Love <fx@gnu.org>
parents:
diff changeset
1236 @vindex european-calendar-style
Dave Love <fx@gnu.org>
parents:
diff changeset
1237 @findex european-calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1238 @findex american-calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1239 If you prefer the European style of writing dates---in which the day
Dave Love <fx@gnu.org>
parents:
diff changeset
1240 comes before the month---type @kbd{M-x european-calendar} while in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1241 calendar, or set the variable @code{european-calendar-style} to @code{t}
73183
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1242 with @kbd{M-x customize}, or @emph{before} using any calendar or diary
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1243 command. This mode interprets all dates in the diary in the European
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1244 manner, and also uses European style for displaying diary dates. (Note
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1245 that there is no comma after the @var{monthname} in the European style.)
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1246 To go back to the (default) American style of writing dates, type
46b59eb5e6f8 (Date Formats): Doc fix for european-calendar-style.
Glenn Morris <rgm@gnu.org>
parents: 71593
diff changeset
1247 @kbd{M-x american-calendar}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1248
Dave Love <fx@gnu.org>
parents:
diff changeset
1249 You can use the name of a day of the week as a generic date which
Dave Love <fx@gnu.org>
parents:
diff changeset
1250 applies to any date falling on that day of the week. You can abbreviate
Dave Love <fx@gnu.org>
parents:
diff changeset
1251 the day of the week to three letters (with or without a period) or spell
Dave Love <fx@gnu.org>
parents:
diff changeset
1252 it in full; case is not significant.
Dave Love <fx@gnu.org>
parents:
diff changeset
1253
Dave Love <fx@gnu.org>
parents:
diff changeset
1254 @node Adding to Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1255 @subsection Commands to Add to the Diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1256
Dave Love <fx@gnu.org>
parents:
diff changeset
1257 While in the calendar, there are several commands to create diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1258 entries:
Dave Love <fx@gnu.org>
parents:
diff changeset
1259
Dave Love <fx@gnu.org>
parents:
diff changeset
1260 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1261 @item i d
Dave Love <fx@gnu.org>
parents:
diff changeset
1262 Add a diary entry for the selected date (@code{insert-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1263 @item i w
Dave Love <fx@gnu.org>
parents:
diff changeset
1264 Add a diary entry for the selected day of the week (@code{insert-weekly-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1265 @item i m
Dave Love <fx@gnu.org>
parents:
diff changeset
1266 Add a diary entry for the selected day of the month (@code{insert-monthly-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1267 @item i y
Dave Love <fx@gnu.org>
parents:
diff changeset
1268 Add a diary entry for the selected day of the year (@code{insert-yearly-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1269 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1270
Dave Love <fx@gnu.org>
parents:
diff changeset
1271 @kindex i d @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1272 @findex insert-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1273 You can make a diary entry for a specific date by selecting that date
Dave Love <fx@gnu.org>
parents:
diff changeset
1274 in the calendar window and typing the @kbd{i d} command. This command
Dave Love <fx@gnu.org>
parents:
diff changeset
1275 displays the end of your diary file in another window and inserts the
Dave Love <fx@gnu.org>
parents:
diff changeset
1276 date; you can then type the rest of the diary entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1277
Dave Love <fx@gnu.org>
parents:
diff changeset
1278 @kindex i w @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1279 @findex insert-weekly-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1280 @kindex i m @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1281 @findex insert-monthly-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1282 @kindex i y @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1283 @findex insert-yearly-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1284 If you want to make a diary entry that applies to a specific day of
Dave Love <fx@gnu.org>
parents:
diff changeset
1285 the week, select that day of the week (any occurrence will do) and type
Dave Love <fx@gnu.org>
parents:
diff changeset
1286 @kbd{i w}. This inserts the day-of-week as a generic date; you can then
Dave Love <fx@gnu.org>
parents:
diff changeset
1287 type the rest of the diary entry. You can make a monthly diary entry in
38125
8bca08a060e8 Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37709
diff changeset
1288 the same fashion: select the day of the month, use the @kbd{i m}
8bca08a060e8 Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37709
diff changeset
1289 command, and type the rest of the entry. Similarly, you can insert a
8bca08a060e8 Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37709
diff changeset
1290 yearly diary entry with the @kbd{i y} command.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1291
Dave Love <fx@gnu.org>
parents:
diff changeset
1292 All of the above commands make marking diary entries by default. To
Dave Love <fx@gnu.org>
parents:
diff changeset
1293 make a nonmarking diary entry, give a numeric argument to the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1294 For example, @kbd{C-u i w} makes a nonmarking weekly diary entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1295
Dave Love <fx@gnu.org>
parents:
diff changeset
1296 When you modify the diary file, be sure to save the file before
60324
eb947dcafb80 (Adding to Diary): Mention redrawing of calendar window.
Glenn Morris <rgm@gnu.org>
parents: 60294
diff changeset
1297 exiting Emacs. Saving the diary file after using any of the above
eb947dcafb80 (Adding to Diary): Mention redrawing of calendar window.
Glenn Morris <rgm@gnu.org>
parents: 60294
diff changeset
1298 insertion commands will automatically update the diary marks in the
eb947dcafb80 (Adding to Diary): Mention redrawing of calendar window.
Glenn Morris <rgm@gnu.org>
parents: 60294
diff changeset
1299 calendar window, if appropriate. You can use the command
eb947dcafb80 (Adding to Diary): Mention redrawing of calendar window.
Glenn Morris <rgm@gnu.org>
parents: 60294
diff changeset
1300 @code{redraw-calendar} to force an update at any time.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1301
Dave Love <fx@gnu.org>
parents:
diff changeset
1302 @node Special Diary Entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1303 @subsection Special Diary Entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1304
Dave Love <fx@gnu.org>
parents:
diff changeset
1305 In addition to entries based on calendar dates, the diary file can
Dave Love <fx@gnu.org>
parents:
diff changeset
1306 contain @dfn{sexp entries} for regular events such as anniversaries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1307 These entries are based on Lisp expressions (sexps) that Emacs evaluates
Dave Love <fx@gnu.org>
parents:
diff changeset
1308 as it scans the diary file. Instead of a date, a sexp entry contains
Dave Love <fx@gnu.org>
parents:
diff changeset
1309 @samp{%%} followed by a Lisp expression which must begin and end with
Dave Love <fx@gnu.org>
parents:
diff changeset
1310 parentheses. The Lisp expression determines which dates the entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1311 applies to.
Dave Love <fx@gnu.org>
parents:
diff changeset
1312
Dave Love <fx@gnu.org>
parents:
diff changeset
1313 Calendar mode provides commands to insert certain commonly used
Dave Love <fx@gnu.org>
parents:
diff changeset
1314 sexp entries:
Dave Love <fx@gnu.org>
parents:
diff changeset
1315
Dave Love <fx@gnu.org>
parents:
diff changeset
1316 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1317 @item i a
Dave Love <fx@gnu.org>
parents:
diff changeset
1318 Add an anniversary diary entry for the selected date
Dave Love <fx@gnu.org>
parents:
diff changeset
1319 (@code{insert-anniversary-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1320 @item i b
Dave Love <fx@gnu.org>
parents:
diff changeset
1321 Add a block diary entry for the current region
Dave Love <fx@gnu.org>
parents:
diff changeset
1322 (@code{insert-block-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1323 @item i c
Dave Love <fx@gnu.org>
parents:
diff changeset
1324 Add a cyclic diary entry starting at the date
Dave Love <fx@gnu.org>
parents:
diff changeset
1325 (@code{insert-cyclic-diary-entry}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1326 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1327
Dave Love <fx@gnu.org>
parents:
diff changeset
1328 @kindex i a @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1329 @findex insert-anniversary-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1330 If you want to make a diary entry that applies to the anniversary of a
Dave Love <fx@gnu.org>
parents:
diff changeset
1331 specific date, move point to that date and use the @kbd{i a} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1332 This displays the end of your diary file in another window and inserts
Dave Love <fx@gnu.org>
parents:
diff changeset
1333 the anniversary description; you can then type the rest of the diary
Dave Love <fx@gnu.org>
parents:
diff changeset
1334 entry. The entry looks like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1335
Dave Love <fx@gnu.org>
parents:
diff changeset
1336 @findex diary-anniversary
Dave Love <fx@gnu.org>
parents:
diff changeset
1337 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1338 %%(diary-anniversary 10 31 1948) Arthur's birthday
Dave Love <fx@gnu.org>
parents:
diff changeset
1339 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1340
Dave Love <fx@gnu.org>
parents:
diff changeset
1341 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1342 This entry applies to October 31 in any year after 1948; @samp{10 31
Dave Love <fx@gnu.org>
parents:
diff changeset
1343 1948} specifies the date. (If you are using the European calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1344 style, the month and day are interchanged.) The reason this expression
Dave Love <fx@gnu.org>
parents:
diff changeset
1345 requires a beginning year is that advanced diary functions can use it to
Dave Love <fx@gnu.org>
parents:
diff changeset
1346 calculate the number of elapsed years.
Dave Love <fx@gnu.org>
parents:
diff changeset
1347
Dave Love <fx@gnu.org>
parents:
diff changeset
1348 A @dfn{block} diary entry applies to a specified range of consecutive
Dave Love <fx@gnu.org>
parents:
diff changeset
1349 dates. Here is a block diary entry that applies to all dates from June
Dave Love <fx@gnu.org>
parents:
diff changeset
1350 24, 1990 through July 10, 1990:
Dave Love <fx@gnu.org>
parents:
diff changeset
1351
Dave Love <fx@gnu.org>
parents:
diff changeset
1352 @findex diary-block
Dave Love <fx@gnu.org>
parents:
diff changeset
1353 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1354 %%(diary-block 6 24 1990 7 10 1990) Vacation
Dave Love <fx@gnu.org>
parents:
diff changeset
1355 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1356
Dave Love <fx@gnu.org>
parents:
diff changeset
1357 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1358 The @samp{6 24 1990} indicates the starting date and the @samp{7 10 1990}
Dave Love <fx@gnu.org>
parents:
diff changeset
1359 indicates the stopping date. (Again, if you are using the European calendar
Dave Love <fx@gnu.org>
parents:
diff changeset
1360 style, the month and day are interchanged.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1361
Dave Love <fx@gnu.org>
parents:
diff changeset
1362 @kindex i b @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1363 @findex insert-block-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1364 To insert a block entry, place point and the mark on the two
Dave Love <fx@gnu.org>
parents:
diff changeset
1365 dates that begin and end the range, and type @kbd{i b}. This command
Dave Love <fx@gnu.org>
parents:
diff changeset
1366 displays the end of your diary file in another window and inserts the
Dave Love <fx@gnu.org>
parents:
diff changeset
1367 block description; you can then type the diary entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1368
Dave Love <fx@gnu.org>
parents:
diff changeset
1369 @kindex i c @r{(Calendar mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1370 @findex insert-cyclic-diary-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1371 @dfn{Cyclic} diary entries repeat after a fixed interval of days. To
Dave Love <fx@gnu.org>
parents:
diff changeset
1372 create one, select the starting date and use the @kbd{i c} command. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1373 command prompts for the length of interval, then inserts the entry,
Dave Love <fx@gnu.org>
parents:
diff changeset
1374 which looks like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1375
Dave Love <fx@gnu.org>
parents:
diff changeset
1376 @findex diary-cyclic
Dave Love <fx@gnu.org>
parents:
diff changeset
1377 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1378 %%(diary-cyclic 50 3 1 1990) Renew medication
Dave Love <fx@gnu.org>
parents:
diff changeset
1379 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1380
Dave Love <fx@gnu.org>
parents:
diff changeset
1381 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1382 This entry applies to March 1, 1990 and every 50th day following;
Dave Love <fx@gnu.org>
parents:
diff changeset
1383 @samp{3 1 1990} specifies the starting date. (If you are using the
Dave Love <fx@gnu.org>
parents:
diff changeset
1384 European calendar style, the month and day are interchanged.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1385
Dave Love <fx@gnu.org>
parents:
diff changeset
1386 All three of these commands make marking diary entries. To insert a
Dave Love <fx@gnu.org>
parents:
diff changeset
1387 nonmarking entry, give a numeric argument to the command. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
1388 @kbd{C-u i a} makes a nonmarking anniversary diary entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1389
Dave Love <fx@gnu.org>
parents:
diff changeset
1390 Marking sexp diary entries in the calendar is @emph{extremely}
Dave Love <fx@gnu.org>
parents:
diff changeset
1391 time-consuming, since every date visible in the calendar window must be
Dave Love <fx@gnu.org>
parents:
diff changeset
1392 individually checked. So it's a good idea to make sexp diary entries
Dave Love <fx@gnu.org>
parents:
diff changeset
1393 nonmarking (with @samp{&}) when possible.
Dave Love <fx@gnu.org>
parents:
diff changeset
1394
Dave Love <fx@gnu.org>
parents:
diff changeset
1395 Another sophisticated kind of sexp entry, a @dfn{floating} diary entry,
Dave Love <fx@gnu.org>
parents:
diff changeset
1396 specifies a regularly occurring event by offsets specified in days,
Dave Love <fx@gnu.org>
parents:
diff changeset
1397 weeks, and months. It is comparable to a crontab entry interpreted by
Dave Love <fx@gnu.org>
parents:
diff changeset
1398 the @code{cron} utility. Here is a nonmarking, floating diary entry
Dave Love <fx@gnu.org>
parents:
diff changeset
1399 that applies to the last Thursday in November:
Dave Love <fx@gnu.org>
parents:
diff changeset
1400
Dave Love <fx@gnu.org>
parents:
diff changeset
1401 @findex diary-float
Dave Love <fx@gnu.org>
parents:
diff changeset
1402 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1403 &%%(diary-float 11 4 -1) American Thanksgiving
Dave Love <fx@gnu.org>
parents:
diff changeset
1404 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1405
Dave Love <fx@gnu.org>
parents:
diff changeset
1406 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
1407 The 11 specifies November (the eleventh month), the 4 specifies Thursday
Dave Love <fx@gnu.org>
parents:
diff changeset
1408 (the fourth day of the week, where Sunday is numbered zero), and the
Dave Love <fx@gnu.org>
parents:
diff changeset
1409 @minus{}1 specifies ``last'' (1 would mean ``first,'' 2 would mean
Dave Love <fx@gnu.org>
parents:
diff changeset
1410 ``second,'' @minus{}2 would mean ``second-to-last,'' and so on). The
Dave Love <fx@gnu.org>
parents:
diff changeset
1411 month can be a single month or a list of months. Thus you could change
Dave Love <fx@gnu.org>
parents:
diff changeset
1412 the 11 above to @samp{'(1 2 3)} and have the entry apply to the last
Dave Love <fx@gnu.org>
parents:
diff changeset
1413 Thursday of January, February, and March. If the month is @code{t}, the
Dave Love <fx@gnu.org>
parents:
diff changeset
1414 entry applies to all months of the year.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
1415
46689
90b567ad02ed Sexp diary entries can specify how to highlight the date.
Richard M. Stallman <rms@gnu.org>
parents: 39287
diff changeset
1416 Each of the standard sexp diary entries takes an optional parameter
90b567ad02ed Sexp diary entries can specify how to highlight the date.
Richard M. Stallman <rms@gnu.org>
parents: 39287
diff changeset
1417 specifying the name of a face or a single-character string to use when
90b567ad02ed Sexp diary entries can specify how to highlight the date.
Richard M. Stallman <rms@gnu.org>
parents: 39287
diff changeset
1418 marking the entry in the calendar. Most generally, sexp diary entries
90b567ad02ed Sexp diary entries can specify how to highlight the date.
Richard M. Stallman <rms@gnu.org>
parents: 39287
diff changeset
1419 can perform arbitrary computations to determine when they apply.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1420 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
1421 @inforef{Sexp Diary Entries,, emacs-xtra}.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1422 @end iftex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1423 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1424 @inforef{Sexp Diary Entries}.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1425 @end ifnottex
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1426
Dave Love <fx@gnu.org>
parents:
diff changeset
1427 @node Appointments
Dave Love <fx@gnu.org>
parents:
diff changeset
1428 @section Appointments
Dave Love <fx@gnu.org>
parents:
diff changeset
1429 @cindex appointment notification
Dave Love <fx@gnu.org>
parents:
diff changeset
1430
53560
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1431 @vindex appt-display-format
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1432 @vindex appt-audible
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1433 @vindex appt-display-mode-line
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1434 If you have a diary entry for an appointment, and that diary entry
38745
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
1435 begins with a recognizable time of day, Emacs can warn you several
5464ee1ba8e2 Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 38156
diff changeset
1436 minutes beforehand that that appointment is pending. Emacs alerts you
53560
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1437 to the appointment by displaying a message in your chosen format, as
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1438 specified by the variable @code{appt-display-format}. If the value of
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1439 @code{appt-audible} is non-@code{nil}, the warning includes an audible
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1440 reminder. In addition, if @code{appt-display-mode-line} is
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1441 non-@code{nil}, Emacs displays the number of minutes to the
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1442 appointment on the mode line.
61003
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1443
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1444 @vindex appt-display-duration
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1445 @vindex appt-disp-window-function
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1446 @vindex appt-delete-window-function
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1447 If @code{appt-display-format} has the value @code{window}, then the
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1448 variable @code{appt-display-duration} controls how long the reminder
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1449 window is visible for; and the variables
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1450 @code{appt-disp-window-function} and @code{appt-delete-window-function}
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1451 give the names of functions used to create and destroy the window,
1c1bec847a76 Update and reformat copyright.
Glenn Morris <rgm@gnu.org>
parents: 60999
diff changeset
1452 respectively.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1453
53560
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1454 @findex appt-activate
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1455 To enable appointment notification, use the command @kbd{M-x
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1456 appt-activate}. With a positive argument, it enables notification;
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1457 with a negative argument, it disables notification; with no argument,
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1458 it toggles. Enabling notification also sets up an appointment list
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1459 for today from the diary file, giving all diary entries found with
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1460 recognizable times of day, and reminds you just before each of them.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1461
Dave Love <fx@gnu.org>
parents:
diff changeset
1462 For example, suppose the diary file contains these lines:
Dave Love <fx@gnu.org>
parents:
diff changeset
1463
Dave Love <fx@gnu.org>
parents:
diff changeset
1464 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1465 Monday
Dave Love <fx@gnu.org>
parents:
diff changeset
1466 9:30am Coffee break
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46689
diff changeset
1467 12:00pm Lunch
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1468 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1469
53560
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1470 @vindex appt-message-warning-time
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1471 @noindent
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1472 Then on Mondays, you will be reminded at around 9:20am about your
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1473 coffee break and at around 11:50am about lunch. The variable
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1474 @code{appt-message-warning-time} specifies how many minutes in advance
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1475 to warn you; its default value is 12 (12 minutes).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1476
Dave Love <fx@gnu.org>
parents:
diff changeset
1477 You can write times in am/pm style (with @samp{12:00am} standing
Dave Love <fx@gnu.org>
parents:
diff changeset
1478 for midnight and @samp{12:00pm} standing for noon), or 24-hour
Dave Love <fx@gnu.org>
parents:
diff changeset
1479 European/military style. You need not be consistent; your diary file
53560
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1480 can have a mixture of the two styles. Times must be at the beginning
27bf42fe990e Update Appointments section.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1481 of lines if they are to be recognized.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1482
Dave Love <fx@gnu.org>
parents:
diff changeset
1483 @vindex appt-display-diary
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1484 Emacs updates the appointments list from the diary file
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1485 automatically just after midnight. You can force an update at any
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1486 time by re-enabling appointment notification. Both these actions also
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1487 display the day's diary buffer, unless you set
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1488 @code{appt-display-diary} to @code{nil}. The appointments list is
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1489 also updated whenever the diary file is saved.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1490
Dave Love <fx@gnu.org>
parents:
diff changeset
1491 @findex appt-add
Dave Love <fx@gnu.org>
parents:
diff changeset
1492 @findex appt-delete
Dave Love <fx@gnu.org>
parents:
diff changeset
1493 @cindex alarm clock
Dave Love <fx@gnu.org>
parents:
diff changeset
1494 You can also use the appointment notification facility like an alarm
Dave Love <fx@gnu.org>
parents:
diff changeset
1495 clock. The command @kbd{M-x appt-add} adds entries to the appointment
Dave Love <fx@gnu.org>
parents:
diff changeset
1496 list without affecting your diary file. You delete entries from the
Dave Love <fx@gnu.org>
parents:
diff changeset
1497 appointment list with @kbd{M-x appt-delete}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1498
60790
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1499 @node Importing Diary
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1500 @section Importing and Exporting Diary Entries
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1501
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1502 You can transfer diary entries between Emacs diary files and a
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1503 variety of other formats.
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1504
60790
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1505 @vindex diary-outlook-formats
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1506 You can import diary entries from Outlook-generated appointment
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1507 messages. While viewing such a message in Rmail or Gnus, do @kbd{M-x
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1508 diary-from-outlook} to import the entry. You can make this command
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1509 recognize additional appointment message formats by customizing the
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1510 variable @code{diary-outlook-formats}.
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1511
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1512 @cindex iCalendar support
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1513 The icalendar package allows you to transfer data between your Emacs
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1514 diary file and iCalendar files, which are defined in ``RFC
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1515 2445---Internet Calendaring and Scheduling Core Object Specification
61b4f45aa6b8 (Importing Diary): Rename node from iCalendar. Document diary-from-outlook.
Richard M. Stallman <rms@gnu.org>
parents: 60421
diff changeset
1516 (iCalendar)'' (as well as the earlier vCalendar format).
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1517
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1518 Importing works for ``ordinary'' (i.e. non-recurring) events, but
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1519 (at present) may not work correctly (if at all) for recurring events.
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1520 Exporting of diary files into iCalendar files should work correctly
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1521 for most diary entries. This feature is a work in progress, so the
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1522 commands may evolve in future.
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1523
57587
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1524 @findex icalendar-import-buffer
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1525 The command @code{icalendar-import-buffer} extracts
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1526 iCalendar data from the current buffer and adds it to your (default)
57377
5a1948872fee (iCalendar): Style changes.
Glenn Morris <rgm@gnu.org>
parents: 57338
diff changeset
1527 diary file. This function is also suitable for automatic extraction of
5a1948872fee (iCalendar): Style changes.
Glenn Morris <rgm@gnu.org>
parents: 57338
diff changeset
1528 iCalendar data; for example with the Rmail mail client one could use:
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1529
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1530 @example
57587
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1531 (add-hook 'rmail-show-message-hook 'icalendar-import-buffer)
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1532 @end example
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1533
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1534 @findex icalendar-import-file
57587
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1535 The command @code{icalendar-import-file} imports an iCalendar file
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1536 and adds the results to an Emacs diary file. For example:
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1537
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1538 @example
71593
4d628cade603 fix overfull/underfull boxes
Karl Berry <karl@gnu.org>
parents: 70637
diff changeset
1539 (icalendar-import-file "/here/is/calendar.ics"
4d628cade603 fix overfull/underfull boxes
Karl Berry <karl@gnu.org>
parents: 70637
diff changeset
1540 "/there/goes/ical-diary")
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1541 @end example
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1542
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1543 @noindent
57377
5a1948872fee (iCalendar): Style changes.
Glenn Morris <rgm@gnu.org>
parents: 57338
diff changeset
1544 You can use an @code{#include} directive to add the import file contents
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1545 to the main diary file, if these are different files.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1546 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70473
diff changeset
1547 @inforef{Fancy Diary Display,, emacs-xtra}.
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1548 @end iftex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1549 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1550 @xref{Fancy Diary Display}.
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1551 @end ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1552
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1553
57587
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1554 @findex icalendar-export-file, icalendar-export-region
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1555 Use @code{icalendar-export-file} to interactively export an entire
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1556 Emacs diary file to iCalendar format. To export only a part of a diary
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1557 file, mark the relevant area, and call @code{icalendar-export-region}.
24a2d7c27b57 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57377
diff changeset
1558 In both cases the result is appended to the target file.
57338
741bf75c3004 From Ulf Jasper <ulf.jasper@web.de>:
Glenn Morris <rgm@gnu.org>
parents: 57322
diff changeset
1559
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1560 @node Daylight Saving
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1561 @section Daylight Saving Time
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1562 @cindex daylight saving time
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1563
Dave Love <fx@gnu.org>
parents:
diff changeset
1564 Emacs understands the difference between standard time and daylight
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1565 saving time---the times given for sunrise, sunset, solstices,
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1566 equinoxes, and the phases of the moon take that into account. The rules
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1567 for daylight saving time vary from place to place and have also varied
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1568 historically from year to year. To do the job properly, Emacs needs to
Dave Love <fx@gnu.org>
parents:
diff changeset
1569 know which rules to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
1570
Dave Love <fx@gnu.org>
parents:
diff changeset
1571 @vindex calendar-daylight-savings-starts
Dave Love <fx@gnu.org>
parents:
diff changeset
1572 @vindex calendar-daylight-savings-ends
Dave Love <fx@gnu.org>
parents:
diff changeset
1573 Some operating systems keep track of the rules that apply to the place
Dave Love <fx@gnu.org>
parents:
diff changeset
1574 where you are; on these systems, Emacs gets the information it needs
Dave Love <fx@gnu.org>
parents:
diff changeset
1575 from the system automatically. If some or all of this information is
Dave Love <fx@gnu.org>
parents:
diff changeset
1576 missing, Emacs fills in the gaps with the rules currently used in
Dave Love <fx@gnu.org>
parents:
diff changeset
1577 Cambridge, Massachusetts. If the resulting rules are not what you want,
Dave Love <fx@gnu.org>
parents:
diff changeset
1578 you can tell Emacs the rules to use by setting certain variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
1579 @code{calendar-daylight-savings-starts} and
Dave Love <fx@gnu.org>
parents:
diff changeset
1580 @code{calendar-daylight-savings-ends}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1581
Dave Love <fx@gnu.org>
parents:
diff changeset
1582 These values should be Lisp expressions that refer to the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1583 @code{year}, and evaluate to the Gregorian date on which daylight
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1584 saving time starts or (respectively) ends, in the form of a list
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1585 @code{(@var{month} @var{day} @var{year})}. The values should be
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1586 @code{nil} if your area does not use daylight saving time.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1587
Dave Love <fx@gnu.org>
parents:
diff changeset
1588 Emacs uses these expressions to determine the starting date of
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1589 daylight saving time for the holiday list and for correcting times of
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1590 day in the solar and lunar calculations.
Dave Love <fx@gnu.org>
parents:
diff changeset
1591
Dave Love <fx@gnu.org>
parents:
diff changeset
1592 The values for Cambridge, Massachusetts are as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
1593
Dave Love <fx@gnu.org>
parents:
diff changeset
1594 @example
74872
789e50a3feec (Holidays): US daylight savings begins second Sunday
Richard M. Stallman <rms@gnu.org>
parents: 74853
diff changeset
1595 (calendar-nth-named-day 2 0 3 year)
789e50a3feec (Holidays): US daylight savings begins second Sunday
Richard M. Stallman <rms@gnu.org>
parents: 74853
diff changeset
1596 (calendar-nth-named-day 1 0 11 year)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1597 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1598
Dave Love <fx@gnu.org>
parents:
diff changeset
1599 @noindent
74872
789e50a3feec (Holidays): US daylight savings begins second Sunday
Richard M. Stallman <rms@gnu.org>
parents: 74853
diff changeset
1600 That is, the second 0th day (Sunday) of the third month (March) in
789e50a3feec (Holidays): US daylight savings begins second Sunday
Richard M. Stallman <rms@gnu.org>
parents: 74853
diff changeset
1601 the year specified by @code{year}, and the first Sunday of the eleventh month
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1602 (November) of that year. If daylight saving time were
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1603 changed to start on October 1, you would set
Dave Love <fx@gnu.org>
parents:
diff changeset
1604 @code{calendar-daylight-savings-starts} to this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1605
Dave Love <fx@gnu.org>
parents:
diff changeset
1606 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1607 (list 10 1 year)
Dave Love <fx@gnu.org>
parents:
diff changeset
1608 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1609
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1610 If there is no daylight saving time at your location, or if you want
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1611 all times in standard time, set @code{calendar-daylight-savings-starts}
Dave Love <fx@gnu.org>
parents:
diff changeset
1612 and @code{calendar-daylight-savings-ends} to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1613
Dave Love <fx@gnu.org>
parents:
diff changeset
1614 @vindex calendar-daylight-time-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
1615 The variable @code{calendar-daylight-time-offset} specifies the
76500
d89df1708d0c (Daylight Saving): Rename node from "Daylight Savings".
Chong Yidong <cyd@stupidchicken.com>
parents: 75348
diff changeset
1616 difference between daylight saving time and standard time, measured in
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1617 minutes. The value for Cambridge, Massachusetts is 60.
Dave Love <fx@gnu.org>
parents:
diff changeset
1618
Dave Love <fx@gnu.org>
parents:
diff changeset
1619 @c @vindex calendar-daylight-savings-starts-time too long!
Dave Love <fx@gnu.org>
parents:
diff changeset
1620 @vindex calendar-daylight-savings-ends-time
77129
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1621 Finally, the two variables
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1622 @code{calendar-daylight-savings-starts-time} and
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1623 @code{calendar-daylight-savings-ends-time} specify the number of
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1624 minutes after midnight local time when the transition to and from
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1625 daylight saving time should occur. For Cambridge, Massachusetts both
4805684e0b00 wording for 8.5x11
Karl Berry <karl@gnu.org>
parents: 76500
diff changeset
1626 variables' values are 120.
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1627
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1628 @node Time Intervals
36145
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1629 @section Summing Time Intervals
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1630 @cindex time intervals, summing
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1631 @cindex summing time intervals
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1632 @cindex timeclock
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1633
36145
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1634 The timeclock feature adds up time intervals, so you can (for
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1635 instance) keep track of how much time you spend working on particular
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1636 projects.
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1637
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1638 @findex timeclock-in
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1639 @findex timeclock-out
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1640 @findex timeclock-change
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1641 @findex timeclock-workday-remaining
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1642 @findex timeclock-when-to-leave
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1643 Use the @kbd{M-x timeclock-in} command when you start working on a
36145
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1644 project, and @kbd{M-x timeclock-out} command when you're done. Each
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1645 time you do this, it adds one time interval to the record of the
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1646 project. You can change to working on a different project with @kbd{M-x
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1647 timeclock-change}.
36145
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1648
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1649 Once you've collected data from a number of time intervals, you can use
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1650 @kbd{M-x timeclock-workday-remaining} to see how much time is left to
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1651 work today (assuming a typical average of 8 hours a day), and @kbd{M-x
c70d510bdb54 Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 30794
diff changeset
1652 timeclock-when-to-leave} which will calculate when you're ``done.''
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1653
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1654 @vindex timeclock-modeline-display
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1655 @findex timeclock-modeline-display
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1656 If you want Emacs to display the amount of time ``left'' of your
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1657 workday in the mode line, either customize the
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1658 @code{timeclock-modeline-display} variable and set its value to
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1659 @code{t}, or invoke the @kbd{M-x timeclock-modeline-display} command.
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1660
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1661 @vindex timeclock-ask-before-exiting
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1662 Terminating the current Emacs session might or might not mean that
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1663 you have stopped working on the project and, by default, Emacs asks
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1664 you. You can, however, set the value of the variable
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1665 @code{timeclock-ask-before-exiting} to @code{nil} (via @kbd{M-x
69436
c8e7b3c192ff Various cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
1666 customize}) to avoid the question; then, only an explicit @kbd{M-x
60294
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1667 timeclock-out} or @kbd{M-x timeclock-change} will tell Emacs that the
8c6bb7dbf4fb From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59669
diff changeset
1668 current interval is over.
30794
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1669
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1670 @cindex @file{.timelog} file
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1671 @vindex timeclock-file
4711c3854433 (Time Intervals): New node.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
1672 @findex timeclock-reread-log
37709
e58e22c73805 Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents: 37142
diff changeset
1673 The timeclock functions work by accumulating the data in a file
59669
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1674 called @file{.timelog} in your home directory. You can specify a
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1675 different name for this file by customizing the variable
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1676 @code{timeclock-file}. If you edit the timeclock file manually, or if
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1677 you change the value of any of timeclock's customizable variables, you
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1678 should run the command @kbd{M-x timeclock-reread-log} to update the
080df55d2c06 (Time Intervals): Delete special stuff for MS-DOS.
Richard M. Stallman <rms@gnu.org>
parents: 57587
diff changeset
1679 data in Emacs from the file.
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52229
diff changeset
1680
70446
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1681 @ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1682 @include cal-xtra.texi
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1683 @end ifnottex
31e2bfedd75e (Calendar/Diary, Holidays, Displaying the Diary)
Eli Zaretskii <eliz@gnu.org>
parents: 70312
diff changeset
1684
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52229
diff changeset
1685 @ignore
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52229
diff changeset
1686 arch-tag: 4531ef09-9df3-449d-9c52-2b5a4a337f92
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52229
diff changeset
1687 @end ignore