in classes/rest/unified.php [1252:1308]
public function get_events($calendarid, $since, $upn, $skiptoken = '') {
\core_date::set_default_server_timezone();
$endpoint = (!empty($calendarid)) ? '/users/' . $upn . '/calendars/' . $calendarid . '/events' :
'/users/' . $upn . '/calendar/events';
$odataqueries = [];
if (empty($skiptoken) || !is_string($skiptoken)) {
$skiptoken = '';
}
if (!empty($skiptoken)) {
$odataqueries[] = '$skiptoken=' . $skiptoken;
}
if (!empty($since)) {
// Pass datetime in UTC, regardless of Moodle timezone setting.
$sincedt = new \DateTime('@' . $since);
$since = urlencode($sincedt->format('Y-m-d\TH:i:s\Z'));
$odataqueries[] = '$filter=CreatedDateTime%20ge%20' . $since;
}
if (!empty($odataqueries)) {
$endpoint .= '?' . implode('&', $odataqueries);
}
$response = $this->apicall('get', $endpoint);
$expectedparams = ['value' => null];
$return = $this->process_apicall_response($response, $expectedparams);
foreach ($return['value'] as $i => $event) {
// Converts params to the old legacy parameter used by the rest of the code from the new unified parameter.
if (!isset($event['Id']) && isset($event['id'])) {
$return['value'][$i]['Id'] = $event['id'];
}
if (!isset($event['Subject']) && isset($event['subject'])) {
$return['value'][$i]['Subject'] = $event['subject'];
}
if (!isset($event['Body']) && isset($event['body'])) {
$return['value'][$i]['Body'] = $event['body'];
if (!isset($return['value'][$i]['Body']['Content']) && isset($return['value'][$i]['body']['content'])) {
$return['value'][$i]['Body']['Content'] = $return['value'][$i]['body']['content'];
}
}
if (!isset($event['Start']) && isset($event['start'])) {
if (is_array($event['start'])) {
$return['value'][$i]['Start'] = $event['start']['dateTime'].' '.$event['start']['timeZone'];
} else {
$return['value'][$i]['Start'] = $event['start'];
}
}
if (!isset($event['End']) && isset($event['end'])) {
if (is_array($event['end'])) {
$return['value'][$i]['End'] = $event['end']['dateTime'].' '.$event['end']['timeZone'];
} else {
$return['value'][$i]['End'] = $event['end'];
}
}
}
return $return;
}