Quizás la manera más flexible sea crear un procedimiento almacenado con un parámetro de entrada (la fecha a consultar).
Por un lado tendrás los contactos, cada uno con su fecha de nacimiento.
Por otro lado una tabla especial: FESTIVOS donde almacenas la fecha y un comentario "dia del padre". Así das la posiblidad a que cada cual almacene los días que quiere, por ejemplo festivos locales, autonómicos, etc.
En el procedimiento almacenado puedes hacer una búsqueda por ambas tablas y "unir los resultados" a voluntad.
Si quiere incluir eventos como "Semana Santa" cambio de horario invierno/verano, ya es un poco más complejo porque no son fechas exactas, pero puede hacerse, tengo algún algoritmo por ahí bajado de no sé donde
.
Saludos