• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/google/eventconverter.php
  • Класс: BitrixCalendarSyncGoogleEventConverter
  • Вызов: EventConverter::prepareDescriptionRecurrenceRule
public function prepareDescriptionRecurrenceRule(): string
{
	/** @var RecurringEventRules $eventRule */
	$eventRule = $this->originalEvent->getRecurringRule();
	$descriptionRule = 'RRULE:';
	$descriptionRule .= 'FREQ=' . $eventRule->getFrequency();
	$descriptionRule .= ';INTERVAL=' . $eventRule->getInterval();

	if ($eventRule->hasDay())
	{
		$descriptionRule .= ';BYDAY=' . implode(",", $eventRule->getByday());
	}

	if ($eventRule->hasCount())
	{
		$descriptionRule .= ';COUNT=' . $eventRule->getCount();
	}
	elseif ($eventRule->hasUntil())
	{
		$until = clone $eventRule->getUntil();
		if (!$this->originalEvent->isFullDayEvent() && !$eventRule->isUntilEndOfTime())
		{
			$until = $until->add('1 day')->sub('1 second');
		}
		$descriptionRule .= ';UNTIL=' . $until->format(Helper::DATE_TIME_FORMAT_WITH_UTC_TIMEZONE);
	}

	return $descriptionRule;
}