addArgument( 'uid', InputArgument::REQUIRED, 'User whose calendar subscriptions will be listed' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $user = (string)$input->getArgument('uid'); if (!$this->userManager->userExists($user)) { throw new \InvalidArgumentException("User $user is unknown"); } $defaultRefreshRate = $this->appConfig->getValueString('dav', 'calendarSubscriptionRefreshRate', 'P1D'); $subscriptions = $this->caldav->getSubscriptionsForUser("principals/users/$user"); $rows = []; foreach ($subscriptions as $subscription) { $rows[] = [ $subscription['uri'], $subscription['{DAV:}displayname'], $subscription['{http://apple.com/ns/ical/}refreshrate'] ?? ($defaultRefreshRate . ' (default)'), $subscription['source'], ]; } usort($rows, static fn (array $a, array $b) => $a[0] <=> $b[0]); if (count($rows) > 0) { $table = new Table($output); $table ->setHeaders(['URI', 'Displayname', 'Refresh rate', 'Source']) ->setRows($rows) ->render(); } else { $output->writeln("User $user has no subscriptions"); } return self::SUCCESS; } }