getRecurrenceInstancesForTimeFrame method
Implementation
List<Event>? getRecurrenceInstancesForTimeFrame(
DateTime periodStart, DateTime periodEnd) {
assert(periodStart.isBefore(periodEnd));
DateTime defaultStartDate = start!;
List<DateTime> recurrenceDates = recurrenceRule!.getRecurrencesForPeriod(
periodStart, periodEnd, defaultStartDate, end!);
if (xDates != null) {
recurrenceDates = recurrenceDates.where((date) {
return !xDates!.any((xDate) {
return xDate.date.isAtSameMomentAs(date);
});
}).toList();
}
List<Event> events = [];
for (DateTime recurrenceDate in recurrenceDates) {
if (recurrenceDate.isAfter(periodEnd)) {
break;
}
if (recurrenceDate.isAfter(periodStart) ||
recurrenceDate == periodStart) {
events.add(Event(
uid: uid,
summary: summary,
description: description,
attachments: attachments,
attendees: attendees,
organizer: organizer,
stamp: stamp,
created: created,
lastModified: lastModified,
startDate: recurrenceDate,
endDate: recurrenceDate.add(end!.difference(start!)),
sequence: sequence,
transparency: transparency,
status: status,
timeZone: timeZone,
recurrenceRule: recurrenceRule,
xDates: xDates,
location: location,
recurrenceId: null,
eventClass: eventClass,
customProperties: customProperties,
attachFiles: attachFiles,
));
}
}
return events;
}