$selectedCalendarUrls */ public function __construct( public int $calendarId, public string $caldavUrl, public string $caldavUsername, public string $caldavPassword, public int $caldavAuthorId, public string $caldavTimezone, public array $selectedCalendarUrls, ) { } public function timezoneOrDefault(): string { return '' !== trim($this->caldavTimezone) ? $this->caldavTimezone : 'UTC'; } public function hasMultipleRemoteCalendars(): bool { return count($this->selectedCalendarUrls) > 1; } public function shouldManageEventForThisRemoteCalendar(string $eventCalendarUrl): bool { $normalizedEventUrl = trim($eventCalendarUrl); if ('' === $normalizedEventUrl) { return !$this->hasMultipleRemoteCalendars(); } return $normalizedEventUrl === $this->caldavUrl; } public function resolveTargetCalendarForLocalEvent(string $eventCalendarUrl): ?string { $normalizedEventUrl = trim($eventCalendarUrl); if ('' !== $normalizedEventUrl) { return $normalizedEventUrl; } if ([] === $this->selectedCalendarUrls) { return null; } return $this->selectedCalendarUrls[0]; } }