• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/converter/eventconverter.php
  • Класс: BitrixCalendarSyncOffice365ConverterEventConverter
  • Вызов: EventConverter::eventToDto
public function eventToDto(Event $event): EventDto
{
	$endDate = $event->isFullDayEvent()
		? (clone $event->getEnd())->add('1 day')
		: $event->getEnd();

	$data = [
		'subject' => $event->getName(),
		'body' =>  [
			'contentType' => 'HTML',
			'content' => $this->prepareDescription($event),
		],
		'isAllDay' => $event->isFullDayEvent(),
		'start' =>  [
			'dateTime' => $event->getStart()->getDate()->format(Helper::TIME_FORMAT_LONG),
			'timeZone' => $this->prepareTimeZone(
				$event->getStart(),
				$event->getStartTimeZone(),
				$event->isFullDayEvent()
			),
		],
		'end' =>  [
			'dateTime' => $endDate->getDate()->format(Helper::TIME_FORMAT_LONG),
			'timeZone' => $this->prepareTimeZone(
				$endDate,
				$event->getEndTimeZone(),
				$event->isFullDayEvent()
			),
		],
		'isCancelled' => $event->isDeleted(),
		'location' => [
			'displayName' => $this->prepareLocation($event->getLocation()),
		],
	];

	if ($event->isRecurrence())
	{
		$data['recurrence'] = $this->prepareRecurringForDto($event->getRecurringRule(), $event->getStart()->getDate());
	}

	if ($event->getRemindCollection())
	{
		$this->prepareReminders($event, $data);
	}

	if ($accessibility = $this->convertAccessibility($event->getAccessibility()))
	{
		$data['showAs'] = $accessibility;
	}

	return new EventDto($data);
}