CalDAV on iOS 15

After updating their iphones to iOS 15, some of my customers doesn't see the calendar events coming from my CalDAV server (sabre/dav) anymore. The CalDAV account is correctly configured. Removing and re-creating it doesn't solve the issue. Same account on iOS 14 device works as expected. Has anything changed in iOS 15? Thanks

Replies

  • yeah I already looked for something in the release notes, but there's nothing about caldav

  • Same here. Go to your iPhone's calendar settings and check the CalDAV URL there. It seems that iOS 15 would crop the URL.

    In my case, the original URL was: https://abc.com/caldav.php/user/home

    iOS 15 cropped it to https://abc.com/

    After I re-type the complete URL, all things become fine.

  • hi bydict, are you using sabre/dav as caldav server? I tried what you said, but my url was already in the https://abc.com/ form, no relative path needed... I tried some different combinations, based on your answer, but nothing seems to work... We need help from apple, but it seems impossible to get in touch with them

Hi, I've the same issue. I've trie many combination but still not work. Maybe some help from Apple or an iOS update soon ?

  • Hi Igor11 and thank you for your comment. Yes, Apple should definitely look into this issue. I tried contacting them on developer and customer support and feedback channels, but they have not yet replied...

Add a Comment

Same problem with a WebDAV/CalDAV server running on Linux server: Reminders simply doesn't pick up existing (tasks) lists and seems to be trying to create its own folder for a default "Reminders" list which does not work either by the way. A cynic could conclude that Apple decided to force its iCloud Reminders.

Hi, we too have that problem on iPhones and iPads and thats a big issue as we rely on the calendar to work.

Please fix it!

It seems that I've solved this issue.

I managed to contact Apple via their "feedback assistant" website and in almost 6 months we found a solution.

They never said this clearly to me, but it seems that iOS 15 is more strict about DAV flows and, maybe, is making some unneeded anonymous calls... In my case, my server had those 2 behaviors that iOS 15 doesn't like:

  • replying 403 forbidden to anonymous requests instead of 401 unauthorized
  • including a 418 empty entity in some PROPFIND requests

Solving these issues made iOS 15 CalDAV client work again

  • I had the same issue with my CalDAV server (sabre/dav), and the workaround below that makes sure the "/.well-known/caldav" was setup on the actual server name where the CalDAV server is running resolved the issue without having to resolve anything with how the server processed any requests.

Add a Comment

One possible Server-Side solution for the plain URL trunking problem i have found and partly tested is to verify that the  /.well-known/caldav redirect (and carddav) is configured correctly.

That Redirect on the webserver should catch any

  • /.well-known/caldav
  • /.well-known/carddav

requests and redirect them to the right webdav path from the root of the Server.

e.g:

somecaldavserver.example.com/.well-known/caldav
http 302 redirects to https
https://somecaldavserver.example.com/nextcloud/remote.php/dav/

iOS needs secure https to work http will not work. The username will be attached to that url automatically.

This Server Config would probably catch the URL trunking error during the update to iOS 15.

At least it is fixed - in my test - if the user opens the calendar settings and simply accept them again with the trunked url. iOS will then autodiscover the correct url and stores it - somewhere - the displayed url stays short - but it works!

No need to fill out the whole path again. iOS will find the correct long path by itself (with the redirect) As of lack of time i couldn´t setup an iOS14 test device just to update it to ios 15 to check if the server side fix also works on that trunking without the user to open and close the settings.

I could test and verify in on my nextcloud Server - on SOGo i don´t have access to the misconfigured apache config to run a test.

Maybe anyone else could verify if this thing works for them.

Bonus If you add

_caldavs._tcp      SRV  0 1 443 somecaldavserver.example.com
_carddavs._tcp     SRV  0 1 443 somecaldavserver.example.com

to your DNS Entrys your users even don´t know the name of your somecaldavserver and could just enter example.com in the calendar and contacts server field. Instead of somecaldavserver.example.com

best regards,

Elmar

  • I can verify on iOS 15 that setting up the "/.well-known/caldav" and "/.well-known/cardav" redirect on the actual server name with the services fixes the issue. The redirects must be setup on the fully qualified domain name (FQDN) of the server you put when setting up CalDAV/CardDAV in iOS. Once I did this, it would set the "Account URL" in the advanced settings to the correct location and work as expected.

  • It looks like iOS only supports using ".well-known" for auto-discovery, it doesn't look like it uses the DNS entry's in my testing. It probably worked when you put "example.com" because you also had the ".well-known" set at that FQDN. In your DNS example above you would also need to set this if your not running the DAV services at the root of the domain name (for example): _caldavs._tcp IN TXT "path=/nextcloud/remote.php/dav/"

Add a Comment