Subject: bug#49995: 28.0.50; EBDB Anniversaries do not appear marked in calendar

From: Eric Abrahamsen <[email-masked]>
Date: Fri, 13 Aug 2021 12:35:17 -0700

Pankaj Jangid <[email-masked]> writes:

> Prerequisite: setup EBDB with a few records with anniversaries.
>
> Steps:
>
> 1. M-x calendar RET
>
> 2. m (diary-mark-entries)
>
> Result: highlights the entries from diary but doesn’t mark the
> anniversaries from EBDB. However, pressing ‘d’ on a date with
> anniversary shows the day’s calendar with the anniversary.
>
> Expectation: Anniversaries from EBDB must also be highlighted when
> (diary-mark-entries) is invoked.

Oof, EBDB's diary integration was "write once and back away slowly"
code. I'm trying to understand diary-lib.el. So far as I can see, when
you add diary entries to `diary-entry-list' that list is consulted when
displaying entries for the day at point with "d" (as you note), but the
list is ignored by the code that marks days in the calendar, so you
don't see anything.

I hope I'm wrong about that, but someone would have to tell me how.
Another option would be to add something terrible to the
`diary-mark-entries-hook', which manually marked the dates somehow.

A third option would be switching up the approach altogether, and having
EBDB write its own diary file, which can then be included in the user's
master diary file. Perhaps that would be the best approach, rather than
trying to "plug in" to the diary code at a lower level.