• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/converter/converter.php
  • Класс: BitrixCalendarSyncOffice365ConverterConverter
  • Вызов: Converter::convertEvent
public function convertEvent(EventDto $eventData, Section $section): Event
{
	$start = $this->prepareDate($eventData->start, $eventData->originalStartTimeZone);
	$reminders = $this->makeReminders(
		$eventData->reminderMinutesBeforeStart,
		$eventData->isReminderOn,
		$start,
	);

	$event = (new Event())
		->setName($this->prepareName($eventData->subject))
		->setOwner($section->getOwner())
		->setCreator($section->getOwner())
		->setEventHost($section->getOwner())
		->setLocation($this->prepareLocation($eventData->location))
		->setStart($start)
		->setEnd($this->prepareDate($eventData->end, $eventData->originalEndTimeZone))
		->setStartTimeZone($this->prepareDateTimezone($eventData->start, $eventData->originalStartTimeZone))
		->setEndTimeZone($this->prepareDateTimezone($eventData->end, $eventData->originalEndTimeZone))
		->setIsFullDay($eventData->isAllDay)
		->setAttendeesCollection($this->prepareAttendeeCollection($section->getOwner()->getId()))
		->setRemindCollection($reminders)
		->setSection($section)
		->setDescription($this->prepareBody($eventData->body, $section->getOwner()->getId()))
		->setMeetingDescription($this->prepareDefaultMeeting($section->getOwner()->getId()))
		->setAccessibility(EventConverter::ACCESSIBILITY_IMPORT_MAP[$eventData->showAs] ?? null)
		->setImportance($eventData->importance)
		->setCalendarType(self::CALENDAR_TYPE)
		->setIsActive(!$eventData->isCancelled && !$eventData->isDraft)
		->setIsDeleted($eventData->isCancelled)
		->setRecurringRule($this->makeRecurringRule($eventData->recurrence))
	;

	if (!empty($eventData->originalStart))
	{
		$originalDto = new Office365DtoDateTimeDto([
			'dateTime' => $eventData->originalStart,
			'timeZone' => $eventData->originalStartTimeZone,
		]);
		$event->setOriginalDateFrom($this->prepareDate($originalDto, $eventData->originalStartTimeZone));
	}

	// dependence from specific of office all-day events
	if ($event->isFullDayEvent())
	{
		$event->setEnd($event->getEnd()->add("-1 day"));
	}
	return $event;
}