The library appt.el contains the variables/functions sought. Consider using something like (require 'appt) before attempting to locate (with functions such as describe-... or find-...) and/or before attempting to use the variables/functions.
Q: How did I find the answer to this question?
A: I grepped the lisp folder (of the Emacs source code) for the ...
diary-sunrise-sunset returns a string with both times:
"Sunrise 6:17am (EST), sunset 5:36pm (EST) at 40.3N, 71.0W (11:19 hrs daylight)"
So use diary-sunrise and diary-sunset separately:
where these two functions are defined as follows (somewhere in your init file):
(defun diary-sunrise ()
(let ((dss (diary-sunrise-...
How about modifying the last line of your custom diary sexp so that it becomes an and statement that checks to ensure that the DATE is not a member of your excluded dates?:
(not (member DATE '((2 28 2017)
(5 1 2017)
(5 31 2017)))))
Granted, of course, you will ...