- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharingeventmanager.php
- Класс: BitrixCalendarSharingSharingEventManager
- Вызов: SharingEventManager::prepareEventForSave
static function prepareEventForSave($data, $userId): Event
{
$ownerId = (int)($data['ownerId'] ?? null);
$sectionId = self::getSectionId($userId);
$attendeesCodes = ['U' . $userId, 'U' . $ownerId];
$meeting = [
'HOST_NAME' => CCalendar::GetUserName($userId),
'NOTIFY' => true,
'REINVITE' => false,
'ALLOW_INVITE' => true,
'MEETING_CREATOR' => $userId,
'HIDE_GUESTS' => false,
];
$eventData = [
'OWNER_ID' => $userId,
'NAME' => (string)($data['eventName'] ?? ''),
'DATE_FROM' => (string)($data['dateFrom'] ?? ''),
'DATE_TO' => (string)($data['dateTo'] ?? ''),
'TZ_FROM' => (string)($data['timezone'] ?? ''),
'TZ_TO' => (string)($data['timezone'] ?? ''),
'SKIP_TIME' => 'N',
'SECTIONS' => [$sectionId],
'EVENT_TYPE' => $data['eventType'],
'ACCESSIBILITY' => 'busy',
'IMPORTANCE' => 'normal',
'ATTENDEES_CODES' => $attendeesCodes,
'MEETING_HOST' => $userId,
'IS_MEETING' => true,
'MEETING' => $meeting,
'DESCRIPTION' => (string)($data['description'] ?? ''),
];
return (new EventBuilderFromArray($eventData))->build();
}