Generar todas las repeticiones posibles de un evento (en teoría) llenaría su espacio de almacenamiento con eventos que probablemente el usuario nunca haya visto (¡felicidades por su 999,999,999,999,999,999,999 aniversario!).
Se necesita un poco más de trabajo, pero la solución es almacenar básicamente una tabla (o tablas) de reglas de repetición de los que se conecte las entradas de calendario a medida que construye un calendario:
"para cada día de la Se muestra la semana, verifique los eventos que se repiten en esos días " " para cada semana del mes que se muestra, verifique los eventos que se repiten en esas semanas " " por cada mes en un año ", etc ...
Cuantos de estos controles debe hacer depende de cuántos tipos (y duración) de repeticiones desea.
En cuanto a la supresión de eventos, esa es otra tabla que enumera los puntos en las fechas/horas que deben suprimirse. "Si va a mostrar los lunes, mostrar todos los eventos que se repiten en el mes, con excepción de los que se enumeran en la tabla de supresión"
comentario seguimiento:
Bueno, tendría su mesa de entrada de calendario estándar, para almacenar la información básica . fecha/hora, etc ... Luego, al menos otras dos tablas para almacenar la información de repetición. Uno que almacena tus reglas de repetición. "Cada lunes", "primer día del mes", "todos los años", etc ..., y una tercera tabla que vincula entre las entradas del calendario y las reglas de los
así:
calendar entries table <---> link table <---> repeat rules table
Consulta de sería una cuestión de construir cosas para que, para la fecha que esté considerando, aparezcan las reglas apropiadas y le proporcionen los ID de las entradas del calendario para mostrar. Podría ponerse feo si realiza una consulta compleja que vincule dinámicamente con las reglas apropiadas en función de una fecha que haya pasado.
Esta pregunta puede ser útil: http://stackoverflow.com/questions/1274003/adding-recurring-event-to-google-calendar-via-xml – jrummell
¿Ha implementado esto? También necesito de la misma –