get('a'); if ($action == 'get_events') { $startDate = $request->query->get('start'); $endDate = $request->query->get('end'); $startDate = api_get_utc_datetime($startDate, true, true); $endDate = api_get_utc_datetime($endDate, true, true); $meetings = $plugin ->getMeetingRepository() ->periodMeetings($startDate, $endDate); $meetingsAsEvents = array_map( function (Meeting $conference) { $isWebinar = $conference instanceof Webinar; /** @var BaseMeetingTrait $schema */ $schema = $isWebinar ? $conference->getWebinarSchema() : $conference->getMeetingInfoGet(); $endDate = new DateTime($conference->formattedStartTime); $endDate->add($conference->durationInterval); return [ 'id' => 'meeting_'.$conference->getId(), 'title' => $schema->topic, 'typeName' => $conference->typeName, 'editable' => false, 'start' => $conference->formattedStartTime, 'start_date_localtime' => $conference->formattedStartTime, 'end' => $endDate->format('Y-m-d H:i'), 'end_date_localtime' => $endDate->format('Y-m-d H:i'), 'duration' => $conference->formattedDuration, 'description' => $schema->agenda, 'allDay' => false, 'accountEmail' => $conference->getAccountEmail(), ]; }, $meetings ); $response = JsonResponse::create($meetingsAsEvents); $response->send(); }