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