iCloud CalDAV calendars keep showing as “Disabled” or “Unavailable” in Home Assistant

Hi everyone,

I’m trying to connect my iCloud calendars to Home Assistant using the CalDAV integration, but they keep showing up as “Disabled” or “Unavailable” after a few minutes, even though they initially appear and load events correctly.

Here’s what’s happening:

  • I added CalDAV manually via YAML and also tested through the UI.
  • The connection works at first — my iCloud calendars (Perso, Personnel) appear, and events are displayed correctly.
  • But after a short time, the entities go into a “Disabled” state or show messages like “Was turned off” / “Became unavailable.”
  • On the dashboard, the calendar card shows “Disabled” and no data.

I’m using my Apple ID (which is a Hotmail address) and an App-Specific Password generated from appleid.apple.com.
My current YAML looks like this:

calendar:
  - platform: caldav
    username: "[email protected]"
    password: "abcd-efgh-ijkl-mnop"
    url: "https://p39-caldav.icloud.com"
    verify_ssl: false

The connection succeeds, but after a few minutes, Home Assistant seems to lose access and disables the entities.
Even reloading or restarting doesn’t always help — sometimes I need to delete and re-add the integration.

Has anyone managed to keep iCloud CalDAV calendars stable in HA?
Do I need a specific server endpoint (instead of p39)?
Or should I switch to the ICS (iCal) method instead for reliability?

Any help or working configuration examples would be awesome :pray:

Thanks!