31.1. Movement in the Calendar

Calendar mode lets you move through the calendar in logical units of time such as days, weeks, months, and years. If you move outside the three months originally displayed, the calendar display "scrolls" automatically through time to make the selected date visible. Moving to a date lets you view its holidays or diary entries, or convert it to other calendars; moving longer time periods is also useful simply to scroll the calendar.

31.1.1. Motion by Standard Lengths of Time

The commands for movement in the calendar buffer parallel the commands for movement in text. You can move forward and backward by days, weeks, months, and years.

C-f

Move point one day forward (calendar-forward-day).

C-b

Move point one day backward (calendar-backward-day).

C-n

Move point one week forward (calendar-forward-week).

C-p

Move point one week backward (calendar-backward-week).

M-}

Move point one month forward (calendar-forward-month).

M-{

Move point one month backward (calendar-backward-month).

C-x ]

Move point one year forward (calendar-forward-year).

C-x [

Move point one year backward (calendar-backward-year).

The day and week commands are natural analogues of the usual Emacs commands for moving by characters and by lines. Just as C-n usually moves to the same column in the following line, in Calendar mode it moves to the same day in the following week. And C-p moves to the same day in the previous week.

The arrow keys are equivalent to C-f, C-b, C-n and C-p, just as they normally are in other modes.

The commands for motion by months and years work like those for weeks, but move a larger distance. The month commands M-} and M-{ move forward or backward by an entire month's time. The year commands C-x ] and C-x [ move forward or backward a whole year.

The easiest way to remember these commands is to consider months and years analogous to paragraphs and pages of text, respectively. But the commands themselves are not quite analogous. The ordinary Emacs paragraph commands move to the beginning or end of a paragraph, whereas these month and year commands move by an entire month or an entire year, which usually involves skipping across the end of a month or year.

All these commands accept a numeric argument as a repeat count. For convenience, the digit keys and the minus sign specify numeric arguments in Calendar mode even without the Meta modifier. For example, 100 C-f moves point 100 days forward from its present location.

31.1.2. Beginning or End of Week, Month or Year

A week (or month, or year) is not just a quantity of days; we think of weeks (months, years) as starting on particular dates. So Calendar mode provides commands to move to the beginning or end of a week, month or year:

C-a

Move point to start of week (calendar-beginning-of-week).

C-e

Move point to end of week (calendar-end-of-week).

M-a

Move point to start of month (calendar-beginning-of-month).

M-e

Move point to end of month (calendar-end-of-month).

M-<

Move point to start of year (calendar-beginning-of-year).

M->

Move point to end of year (calendar-end-of-year).

These commands also take numeric arguments as repeat counts, with the repeat count indicating how many weeks, months, or years to move backward or forward.

By default, weeks begin on Sunday. To make them begin on Monday instead, set the variable calendar-week-start-day to 1.

31.1.3. Specified Dates

Calendar mode provides commands for moving to a particular date specified in various ways.

g d

Move point to specified date (calendar-goto-date).

o

Center calendar around specified month (calendar-other-month).

.

Move point to today's date (calendar-goto-today).

g d (calendar-goto-date) prompts for a year, a month, and a day of the month, and then moves to that date. Because the calendar includes all dates from the beginning of the current era, you must type the year in its entirety; that is, type 1990, not 90.

o (calendar-other-month) prompts for a month and year, then centers the three-month calendar around that month.

You can return to today's date with . (calendar-goto-today).