/** * Returns a parsed array of API event entries for FullCalendar. * * @param BetweenRequest $request * * @return array */ public function between(BetweenRequest $request) { $filter = ['timeMin' => strToRfc3339($request->input('start')), 'timeMax' => strToRfc3339($request->input('end'))]; return $this->event->parseEvents($this->event->getApiEvents($filter)); }
/** * Returns the events recurrences by it's Api ID. * * @param int|string $id * * @return mixed */ public function getRecurrencesByApiId($id) { $filter = ['timeMin' => strToRfc3339(strtotime('now')), 'timeMax' => strToRfc3339(strtotime('+1 month'))]; return $this->eventApi->setInput($filter)->getRecurrences($id); }
/** * Updates the specified google calendar event. * * @param string $id * * @return bool */ public function update($id) { $event = $this->find($id); if ($event) { /* * Convert the rule array to RRULE string */ $rrule = $this->arrayToRRule($this->getArrayRules()); /* * Combine dates with their times */ $start = $this->getInput('start_date') . ' ' . $this->getInput('start_time'); $end = $this->getInput('end_date') . ' ' . $this->getInput('end_time'); $allDay = $this->getInput('all_day'); /* * Values set to events default */ $event->title = $this->getInput('title', $event->apiObject->getSummary()); $event->description = $this->getInput('description', $event->apiObject->getDescription()); $event->location = $this->getInput('location', $event->apiObject->getLocation()); $event->start = strToRfc3339($start, $allDay); $event->end = strToRfc3339($end, $allDay, true); $event->allDay = $allDay; $event->rrule = $rrule; return $this->calendar->updateEvent($event); } return false; }