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