- Модуль: 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();
}