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

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 ?

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

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

CalDAV on iOS 15
 
 
Q