diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 0d49a6571d5..2da45c18880 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -1450,9 +1450,12 @@ Optional integers MON and YR are used instead of today's date." (calendar-mark-holidays)) (unwind-protect (if calendar-mark-diary-entries (diary-mark-entries)) - (run-hooks (if (calendar-date-is-visible-p today) - 'calendar-today-visible-hook - 'calendar-today-invisible-hook))))) + (if (not (calendar-date-is-visible-p today)) + (run-hooks 'calendar-today-invisible-hook) + ;; Functions in calendar-today-visible-hook may rely on the cursor + ;; being on today's date. + (calendar-cursor-to-visible-date today) + (run-hooks 'calendar-today-visible-hook))))) (defun calendar-generate (month year) "Generate a three-month Gregorian calendar centered around MONTH, YEAR."