- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4.6k
Closed
Labels
4. to releaseReady to be released and/or waiting for tests to finishReady to be released and/or waiting for tests to finishbugfeature: caldavRelated to CalDAV internalsRelated to CalDAV internals
Description
Since a few days or weeks Microsoft denies incoming requests on outlook.office365.com for refreshing ICS calendar subscriptions in Nextcloud.
I did some experiments and found that the seems to be some kind of whitelist check on User-Agent header:
% curl -H 'User-Agent: Nextcloud Webcal Service' 'https://outlook.office365.com/owa/calendar/[...]/reachcalendar.ics' 
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/owa/auth/errorfe.aspx?httpCode=500&msg=...&owaError=Microsoft.Exchange.Clients.Owa2.Server.Core.OwaBasicUnsupportedException&owaVer=15.20.9073.21&be=...&ts=...&fe=...&reqid=&creqid=&cid=&hmac=...">here</a>.</h2>
A minimal working User-Agent I found is Mozilla/5.0 (Linux) Chrome/139:
% curl -H 'User-Agent: Mozilla/5.0 (Linux) Chrome/139' 'https://outlook.office365.com/owa/calendar/[...]/reachcalendar.ics' 
BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:Microsoft Exchange Server 2010
[....]
Of course this is an Outlook issue, but I have no hope that a support call might fix this. So here's a small patch as workaround:
--- apps/dav/lib/CalDAV/WebcalCaching/Connection.php.orig	2025-09-02 11:08:25.447929216 +0200
+++ apps/dav/lib/CalDAV/WebcalCaching/Connection.php	2025-09-02 11:28:36.520658958 +0200
@@ -52,6 +52,12 @@
 			$params[RequestOptions::AUTH] = [$user, $pass];
 		}
 
+		$host = parse_url($subscription['source'], PHP_URL_HOST);
+		if ($host === 'outlook.office365.com') {
+			// https://github.com/nextcloud/server/issues/54799
+			$params[RequestOptions::HEADERS]['User-Agent'] = 'Mozilla/5.0 (Linux) Chrome/139';
+		}
+
 		try {
 			$client = $this->clientService->newClient();
 			$response = $client->get($url, $params)Even if this won't get merged into Nextcloud this issue might help users to find out what's going on.
Metadata
Metadata
Assignees
Labels
4. to releaseReady to be released and/or waiting for tests to finishReady to be released and/or waiting for tests to finishbugfeature: caldavRelated to CalDAV internalsRelated to CalDAV internals