• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapisync.php
  • Класс: BitrixCalendarSyncGoogleApiSync
  • Вызов: GoogleApiSync::saveBatchEvents
public function saveBatchEvents(array $events, string $gApiCalendarId, array $params): array
{
	$responseFields = [];
	$prepareEvents = [];

	foreach ($events as $event)
	{
		$localEvent['gEventId'] = $event['gEventId'];
		$partBody = $this->prepareToSaveEvent($event);
		$localEvent['partBody'] = WebJson::encode($partBody, JSON_UNESCAPED_SLASHES);
		$prepareEvents[$event['ID']] = $localEvent;
	}

	$externalEvents = $this->syncTransport->sendBatchEvents($prepareEvents, $gApiCalendarId, $params);

	if ($externalEvents)
	{
		foreach ($externalEvents as $key => $externalEvent)
		{
			$responseFields[$key]['DAV_XML_ID'] = $externalEvent['iCalUID'];
			$responseFields[$key]['CAL_DAV_LABEL'] = $externalEvent['etag'];
			$responseFields[$key]['G_EVENT_ID'] = $externalEvent['id'];
			$responseFields[$key]['ORIGINAL_DATE_FROM'] = $externalEvent['originalStartTime'] ? $events[$key]['ORIGINAL_DATE_FROM'] : null;
		}
	}

	return $responseFields;
}