Programming Tips - Using libical, how do I iterate through all recurrences?

Date: 2010mar31 Language: C/C++ Library: libical Q. Using libical, how do I iterate through all recurrences? A. Here's how:
void AllRecurrences(icalrecurrencetype rule, icaltimetype dtstart) { icalrecur_iterator* reit; icaltimetype eventstart reit = icalrecur_iterator_new(rule, dtstart); for (eventstart = icalrecur_iterator_next(reit); !icaltime_is_null_time(eventstart); eventstart = icalrecur_iterator_next(reit)) { // Process eventstart } icalrecur_iterator_free(reit); }