¿Cómo representaría uno los eventos programados en un RDBMS?

Tengo que almacenar eventos programados (como, por ejemplo, horas de clase) que se pueden organizar semanalmente, diariamente o mensualmente. Los eventos pueden ocurrir, digamos, cada lunes y miércoles, o cada segundo jueves del mes. ¿Hay alguna manera de almacenar esta información en un RDBMS que se adhiera a 3NF?

EDITAR: Esto no es tarea; Estoy construyendo algo con un amigo para nuestra propia edificación y lo queremos en 3NF.

Para ser específico, estoy tratando de almacenar los horarios para los tiempos de misa y confesión en las parroquias de RC. Estos se pueden programar de muchas maneras, como todos los domingos a la vez o cada martes / jueves a una hora diferente. Algunas veces es solo el tercer viernes del mes, y otras solo se ofrecen una cierta vez al año. Necesito no solo almacenar esta información, sino también consultarla, para poder obtener rápidamente una lista completa de las horas disponibles en el día o la semana siguiente o lo que sea.

Supongo que, en términos estrictos, 3NF no es un requisito, pero sería más fácil para nosotros si fuera así y es mejor corregirlo en lugar de cambiar nuestro esquema más adelante.

Respuestas a la pregunta(2)

Su respuesta a la pregunta