¿Cuál es la mejor manera de modelar eventos recurrentes en una aplicación de calendario?

Estoy creando una aplicación de calendario grupal que necesita soportar eventos recurrentes, pero todas las soluciones que he encontrado para manejar estos eventos parecen un truco. Puedo limitar qué tan lejos se puede mirar, y luego generar todos los eventos a la vez. O puedo almacenar los eventos...