typedef struct {
CalRecurType type;
int interval;
/* Specifies the end of the recurrence. No occurrences are generated
after this date. If it is 0, the event recurs forever. */
time_t enddate;
/* WKST property - the week start day: 0 = Monday to 6 = Sunday. */
gint week_start_day;
/* NOTE: I've used GList's here, but it doesn't matter if we use
other data structures like arrays. The code should be easy to
change. So long as it is easy to see if the modifier is set. */
/* For BYMONTH modifier. A list of GINT_TO_POINTERs, 0-11. */
GList *bymonth;
/* For BYWEEKNO modifier. A list of GINT_TO_POINTERs, [+-]1-53. */
GList *byweekno;
/* For BYYEARDAY modifier. A list of GINT_TO_POINTERs, [+-]1-366. */
GList *byyearday;
/* For BYMONTHDAY modifier. A list of GINT_TO_POINTERs, [+-]1-31. */
GList *bymonthday;
/* For BYDAY modifier. A list of GINT_TO_POINTERs, in pairs.
The first of each pair is the weekday, 0 = Monday to 6 = Sunday.
The second of each pair is the week number [+-]0-53. */
GList *byday;
/* For BYHOUR modifier. A list of GINT_TO_POINTERs, 0-23. */
GList *byhour;
/* For BYMINUTE modifier. A list of GINT_TO_POINTERs, 0-59. */
GList *byminute;
/* For BYSECOND modifier. A list of GINT_TO_POINTERs, 0-60. */
GList *bysecond;
/* For BYSETPOS modifier. A list of GINT_TO_POINTERs, +ve or -ve. */
GList *bysetpos;
} CalRecurrence; |