• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ical/icsmanager.php
  • Класс: BitrixCalendarICalIcsManager
  • Вызов: IcsManager::getIcsFileContent
public function getIcsFileContent(Event $event, array $params): string
{
	$icsBuilder = new BitrixCalendarICalIcsBuilder(
		[
			'summary' => $event->getName() ?? '',
			'description' => $this->prepareEventDescription($event, $params),
			'dtstart' => Util::getTimestamp($event->getStart()),
			'dtend' => Util::getTimestamp($event->getEnd()),
			'dtstamp' => Util::getTimestamp($event->getDateCreate()),
			'location' => $this->prepareLocationField($event),
			'uid' => $event->getUid() ?? uniqid('', true),
		],
	);
	$icsBuilder->setFullDayMode($event->isFullDayEvent());
	if (isset($params['organizer']))
	{
		$organizer = $params['organizer'];
		$icsBuilder->setOrganizer($organizer['name'], $organizer['email'] ?? null, $organizer['phone'] ?? null);
	}

	if (!$event->isFullDayEvent())
	{
		$icsBuilder->setConfig(
			[
				'timezoneFrom' => $event->getStartTimeZone(),
				'timezoneTo' => $event->getEndTimeZone() ?? $event->getStartTimeZone(),
			]
		);
	}

	return $icsBuilder->render();
}