• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapisync.php
  • Класс: BitrixCalendarSyncGoogleApiSync
  • Вызов: GoogleApiSync::sendToSaveEvent
private function sendToSaveEvent($newEvent, $params)
{
	if ($params['editInstance'] === true)
	{
		$eventOriginalStart = Util::getDateObject($params['originalDateFrom'], false, $params['instanceTz']);
		$originalStart = $eventOriginalStart->format(self::DATE_TIME_FORMAT);
		$externalId = $params['gEventId'] ?: $params['originalDavXmlId'];
		$instance = $this->syncTransport->getInstanceRecurringEvent($params['calendarId'], $externalId, $originalStart);

		$newEvent['originalStartTime'] = $originalStart;
		$newEvent['recurringEventId'] = $params['originalDavXmlId'];

		if (is_array($instance['items']))
		{
			return $this->syncTransport->updateEvent($newEvent, urlencode($params['calendarId']), $instance['items'][0]['id']);
		}
	}
	elseif ($params['editParentEvents'] === true)
	{
		return $this->syncTransport->updateEvent($newEvent, urldecode($params['calendarId']), $params['gEventId']);
	}
	elseif ($params['syncCaldav'])
	{
		return $this->syncTransport->importEvent($newEvent, urlencode($params['calendarId']));
	}
	elseif (($params['gEventId']))
	{
		return $this->syncTransport->updateEvent($newEvent, urlencode($params['calendarId']), $params['gEventId']);
	}
	else
	{
		return $this->syncTransport->insertEvent($newEvent, urlencode($params['calendarId']));
	}

	return [];
}