PSA: Nextcloud public shared calendar links stopped working on 2022.2 update because they should have never worked

I had been using publinks to my calendars in nextcloud because I didn’t want to expose my password in anyway within the nextcloud configuration, even the secrets file. However, even with this setting I had the frustrating issue where calendar event series didn’t work such as M-F every week at 5:30. At the time, I just thought it was a defect and was begrudgingly waiting for a fix, per this bug: Calendar: Repeat events do not show in all views · Issue #40127 · home-assistant/core · GitHub

However when 2022.2 was released, all of my calendars stopped working completely and I hadn’t had time to investigate if it was a HA issue or a nextcloud issue until recently. I found this bug

This indicates that the public subscription links are really just .ics ical file links and only accidentally worked even to a slight degree in HomeAssistant

The solution to use real CalDav links from next cloud is to follow the documented examples for CalDav. However I still didn’t want to enter my account password, even a app-password. What I did to solve this is to create an account in Nextcloud called “Assistant”, setup TOTP authentication and generate an app-password for it. Then I shared the calendars I wanted to appear in home assistant to this account which allows them to work correctly in Homeassistant.
Additionally, the issue that repeating events did not work is also resolved now using a real CalDav connection.

Thanks for the info. I was just getting started with this.

Thanks for this info. Finally getting around to adding a calendar to HASS and this is helpful. I set this up very similar to you with a new account with an app-password, and shared my calendar to that account, although it’s not showing up in “My Calendars”.

EDIT: Seems to be working now.

Could you please share how you configured HA with your nextcloud user?

I followed the basic CalDav integration guide but my nextcloud calendar is not updating properly in HA so I wanted to try your method.

Just re-read my OP,

  • make a basic user account, I call mine “assistant”
  • Open your calendar(s) on your personal account and share them to the basic user
  • Login in as the basic user (assistant)
  • In security create an application password
  • Open the calendar app in nextcloud as the basic account and copy your caldav url from calendar settings (lower right)
  • Configure the Caldav integration with this link, your basic user account name and the app password
  • All calendars shared to this basic user will appear in next cloud calendar, even future calendars shared without interaction.