• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ical/usercontroller.php
  • Класс: BitrixCalendarICalUserController
  • Вызов: UserController::getIcsFileContent
static function getIcsFileContent($eventFields, $params = [])
{
	$ics = new BitrixCalendarICalIcsBuilder(
		[
			'summary' => $eventFields['NAME'],
			'description' => '',
			'dtstart' => Util::getTimestamp($eventFields['DATE_FROM']),
			'dtend' => Util::getTimestamp($eventFields['DATE_TO']),
			'location' => CCalendar::getTextLocation($eventFields['LOCATION']['NEW']),
			'uid' => isset($eventFields['DAV_XML_ID']) ? $eventFields['DAV_XML_ID'] : uniqid()
		]);

	if ($eventFields['SKIP_TIME'] !== 'Y')
	{
		$ics->setFullDayMode($eventFields['SKIP_TIME'] == 'Y');
		$ics->setConfig(
			[
				'timezoneFrom' => $eventFields['TZ_FROM'],
				'timezoneTo' => !empty($eventFields['TZ_TO']) ? $eventFields['TZ_TO'] : $eventFields['TZ_FROM']
			]
		);
	}

	$ics->setOrganizer($eventFields['MEETING']['HOST_NAME'], $params['responseEmailAddress']);
	$ics->setAttendees($params['attendees']);
	return $ics->render();
}