/** * Parses calendar data to a calendar object. * * @param string $calendarData * * @return Calendar */ public function parseCalendarData($calendarData) { $calendar = new Calendar(); $calendar->setTitle($this->getValue('X-WR-CALNAME', $calendarData)); preg_match_all('#BEGIN:VEVENT.*?END:VEVENT#s', $calendarData, $matches); $calendarItemDataArray = $matches[0]; foreach ($calendarItemDataArray as $calendarItemData) { $calendarItem = $this->parseCalendarItemData($calendarItemData); $calendar->addCalendarItem($calendarItem); } $this->processRevisions($calendar->getCalendarItems()); return $calendar; }
/** * Sets the calendar. * * @param Calendar $calendar * * @return $this */ public function setCalendar(Calendar $calendar) { $this->calendar = $calendar; if (!$calendar->hasCalendarItem($this)) { $calendar->addCalendarItem($this); } return $this; }