public function rrule($rrule)
{
// strip off a trailing semi-colon
$rrule = trim($rrule, ";");
$parts = explode(";", $rrule);
foreach ($parts as $part) {
list($rule, $param) = explode("=", $part);
$rule = strtoupper($rule);
$param = strtoupper($param);
switch ($rule) {
case "DTSTART":
$this->startDate(new \DateTime($param));
break;
case "UNTIL":
$this->until(new \DateTime($param));
break;
case "FREQ":
case "COUNT":
case "INTERVAL":
case "WKST":
$this->{$rule}($param);
break;
case "BYDAY":
case "BYMONTHDAY":
case "BYYEARDAY":
case "BYWEEKNO":
case "BYMONTH":
case "BYSETPOS":
case "BYHOUR":
case "BYMINUTE":
case "BYSECOND":
$params = explode(",", $param);
$this->{$rule}($params);
break;
}
}
return $this;
}