The Emacs calendar knows about many major and minor holidays, and can display them. You can add your own holidays to the default list.
To see if any holidays fall on a given date, position point on that date in the calendar window and use the h command. Alternatively, click on that date with mouse-3 and then choose Holidays from the menu that appears. Either way, this displays the holidays for that date, in the echo area if they fit there, otherwise in a separate window.
To view the distribution of holidays for all the dates shown in the
calendar, use the x command. This displays the dates that are
holidays in a different face.
The command applies both to the currently visible months and to
other months that subsequently become visible by scrolling. To turn
marking off and erase the current marks, type u, which also
erases any diary marks (see Diary). If the variable
calendar-mark-holidays-flag is non-
nil, creating or
updating the calendar marks holidays automatically.
To get even more detailed information, use the a command, which displays a separate buffer containing a list of all holidays in the current three-month range. You can use <SPC> and <DEL> in the calendar window to scroll that list up and down, respectively.
The command M-x holidays displays the list of holidays for the
current month and the preceding and succeeding months; this works even
if you don't have a calendar window. If the variable
calendar-view-holidays-initially-flag is non-
the calendar displays holidays in this way. If you want the list of
holidays centered around a different month, use C-u M-x
holidays, which prompts for the month and year.
The holidays known to Emacs include United States holidays and the major Bahá'í, Chinese, Christian, Islamic, and Jewish holidays; also the solstices and equinoxes.
The command M-x holiday-list displays the list of holidays for a range of years. This function asks you for the starting and stopping years, and allows you to choose all the holidays or one of several categories of holidays. You can use this command even if you don't have a calendar window.
The dates used by Emacs for holidays are based on current practice, not historical fact. For example Veteran's Day began in 1919, but is shown in earlier years.