• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/google/outgoingeventmanager.php
  • Класс: BitrixCalendarSyncGoogleOutgoingEventManager
  • Вызов: OutgoingEventManager::prepareEventContextForInstance
private function prepareEventContextForInstance(
	?SyncEvent $masterEvent,
	SyncEvent $syncEvent,
	EventContext $eventContext
): void
{
	/** @var SyncEvent $masterEvent */
	if ($masterEvent && $masterEvent->isSuccessAction())
	{
		$masterVendorEventId = $masterEvent->getVendorEventId();
	}
	else
	{
		//todo handle instance. possible write to log
		return;
	}

	$prefix = $syncEvent->getEvent()->isFullDayEvent()
		? $syncEvent->getEvent()->getOriginalDateFrom()->format('Ymd')
		: $syncEvent->getEvent()->getOriginalDateFrom()->setTimeZone(Util::prepareTimezone())->format('YmdTHisZ')
	;
	$eventContext->setEventConnection(
		(new EventConnection())
			->setVendorEventId(
				$masterVendorEventId
				. '_'
				. $prefix
			)
			->setRecurrenceId($masterVendorEventId)
	);
}