public function endVCal(VCal $VCal) { if (count($this->filters) === 0) { return parent::endVCal($VCal); } $out = array(); foreach ($VCal->container->elements as $element) { $keep = true; if ($element instanceof Container && $element->is(Container::EVENT)) { foreach ($this->filters as $name => $pattern) { $prop = $element->getFirst($name); if ($prop !== null && preg_match($pattern, $prop->value)) { $keep = false; break; } } } if ($keep) { $out[] = $element; } } return $VCal->withElements($out); }