Reference to 31.10.6 Appointments of Emacs Manual
It provides a handy solution to report hour and remind appointments:
For example, suppose the diary file contains these lines:
=M-x appt-add= adds entries to the appointment list without affecting your diary file. You delete entries from the appointment list with =M-x appt-delete=.
Then if set the minutes to warning as 0 minutes to remind whole hours, it becomes a alarm to report whole hour to prompt a mini-buffer.
M-x appt-add a whole hour "9:00pm" and set the warning as 0 minute. When it comes to 9:00pm, a mini-buffer would be prompt to report the current time.
At this moment, appointment transforms itself as an alarm to report whole hours.
Unfortunately, the appointment is one-off and it's cumbersome to set alarms manually every day.
How could have an alarm to report whole hours using appointments or any alternative solutions?