public function addRRule($rrule)
{
if (is_string($rrule) || is_array($rrule)) {
$rrule = new RRule($rrule);
} elseif (!$rrule instanceof RRuleInterface) {
throw new \InvalidArgumentException('The rule must be a string, an array, or implement RRuleInterface');
}
// cloning because I want to iterate it without being disturbed
$this->rrules[] = clone $rrule;
$this->clearCache();
return $this;
}