protected function handleExclusions(array $exclusions, array $recurrences)
{
foreach ($exclusions as $exclusion) {
$exclusionDate = $exclusion->date->format('Ymd');
$exclusionTime = $exclusion->date->format('Ymd\\THis');
$exclusionTimezone = $exclusion->date->getTimezone();
foreach ($recurrences as $key => $recurrence) {
$recurrenceDate = $recurrence->getStart();
if ($recurrenceDate->getTimezone()->getName() !== $exclusionTimezone->getName()) {
$recurrenceDate = clone $recurrenceDate;
$recurrenceDate->setTimezone($exclusionTimezone);
}
if (!$exclusion->hasTime && $recurrenceDate->format('Ymd') == $exclusionDate) {
unset($recurrences[$key]);
continue;
}
if ($exclusion->hasTime && $recurrenceDate->format('Ymd\\THis') == $exclusionTime) {
unset($recurrences[$key]);
}
}
}
return array_values($recurrences);
}