• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapisync.php
  • Класс: BitrixCalendarSyncGoogleApiSync
  • Вызов: GoogleApiSync::saveEvent
public function saveEvent($eventData, $calendarId, $parameters = []): ?array
{
	$params['editInstance'] = $parameters['editInstance'] ?? false;
	$params['originalDavXmlId'] = $parameters['originalDavXmlId'] ?? null;
	$params['editParentEvents'] = $parameters['editParentEvents'] ?? false;
	$params['editNextEvents'] = $parameters['editNextEvents'] ?? false;
	$params['calendarId'] = $calendarId;
	$params['instanceTz'] = $parameters['instanceTz'] ?? null;
	$params['originalDateFrom'] = $eventData['ORIGINAL_DATE_FROM'] ?? null;
	$params['gEventId'] = $eventData['G_EVENT_ID'] ?: str_replace('@google.com', '',  $eventData['DAV_XML_ID']);
	$params['syncCaldav'] = $parameters['syncCaldav'] ?? false;

	$newEvent = $this->prepareToSaveEvent($eventData, $params);

	$externalEvent = $this->sendToSaveEvent($newEvent, $params);

	if ($externalEvent)
	{
		return [
			'DAV_XML_ID' => $externalEvent['iCalUID'],
			'CAL_DAV_LABEL' => $externalEvent['etag'],
			'ORIGINAL_DATE_FROM' => $externalEvent['originalStartTime'] ? $eventData['ORIGINAL_DATE_FROM'] : null,
			'G_EVENT_ID' => $externalEvent['id'],
		];
	}

	return null;
}