Documentation: authenticating before receiving 401, WWW-Authenticate: Negotiate
https://developer.gnome.org/libsoup/stable/libsoup-client-howto.html -> Handling Authentication suggests, that libsoup sends credentials only after receiving 401.
In WebDAV/CalDAV the server can return different responses, depending on whether the client authenticated or not, for the same request. In particular requesting the calendar-home-set property can return valid results (public calendars) when requested anonymously. In this case the server does not return 401, but the client has to authenticate voluntary. Knowing that one has to authenticate, without waiting for 401, also saves round-trips.
The same section of the manual does not say anything about WWW-Authenticate: Negotiate, but https://mail.gnome.org/archives/commits-list/2016-March/msg04952.html and libsoup/soup-auth-negotiate.c suggest libsoup can do it.