nextcloud / nextcloud/calendar
Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.2k
- Forks
- 332
- Avg merge
- 16h 13m
- Merged PRs (30d)
- 137
Description
Steps to reproduce
- Create an all-day event on iOS
- Add beginning and end time to the event, with end time being 00:00
- Wait for the sync
This does happen occasionally, but I have not been able to reliably reproduce this. It might only happen when events have been synced before, or with some weird time zone configuration.
Expected behavior
Even when the value 20260920T000000 is not a correct DATE value, this does happen on iOS and we cannot do much about it. So Nextcloud must accept this value and maybe just drop the T part of it.
Actual behavior
The event is not synced (silent data loss) and the client re-tries every few minutes, clogging the log files.
Calendar app version
6.5.4
CalDAV-clients used
iOS
Browser
No response
Client operating system
No response
Server operating system
Debian
Web server
None
Database engine version
None
PHP engine version
None
Nextcloud version
34.0.3
Updated from an older installed version or fresh install
None
List of activated apps
Nextcloud configuration
Web server error log
Log file
[webdav] Fehler: Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE
PUT /remote.php/dav/calendars/user/64BBB0A8-4EBE-4CF0-B89A-8305E70D406E/D2C40D17-C76D-40B4-AF41-9850751E1A2D.ics
von *** redacted *** von user um 06.09.2026, 09:10:37
{
"reqId": "K1i5qNHszkAWZVb2zKdw",
"level": 3,
"time": "2026-09-06T07:10:37+00:00",
"remoteAddr": "*** redacted ***",
"user": "user",
"app": "webdav",
"method": "PUT",
"url": "/remote.php/dav/calendars/user/64BBB0A8-4EBE-4CF0-B89A-8305E70D406E/D2C40D17-C76D-40B4-AF41-9850751E1A2D.ics",
"scriptName": "/remote.php",
"message": "Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE",
"userAgent": "iOS/26.6.1 (23G83) dataaccessd/1.0",
"version": "34.0.3.2",
"exception": {
"Exception": "Sabre\\DAV\\Exception\\UnsupportedMediaType",
"Message": "Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE",
"Code": 0,
"Trace": [
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/CalDAV/Plugin.php",
"line": 733,
"function": "validateICalendar",
"class": "Sabre\\CalDAV\\Plugin",
"type": "->",
"args": [
"*** sensitive parameters replaced ***",
"*** sensitive parameters replaced ***",
false,
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
},
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "beforeWriteContent",
"class": "Sabre\\CalDAV\\Plugin",
"type": "->",
"args": [
"*** sensitive parameters replaced ***",
{
"__class__": "OCA\\DAV\\CalDAV\\CalendarObject"
},
"*** sensitive parameters replaced ***",
false
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 1133,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"beforeWriteContent",
[
"*** sensitive parameters replaced ***",
{
"__class__": "OCA\\DAV\\CalDAV\\CalendarObject"
},
"*** sensitive parameters replaced ***",
false
]
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line": 492,
"function": "updateFile",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line": 89,
"function": "httpPut",
"class": "Sabre\\DAV\\CorePlugin",
"type": "->",
"args": [
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
},
{
"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line": 472,
"function": "emit",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
"method:PUT",
[
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
]
},
{
"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line": 215,
"function": "invokeMethod",
"class": "Sabre\\DAV\\Server",
"type": "->",
"args": [
{
"__class__": "Sabre\\HTTP\\Request"
},
{
"__class__": "Sabre\\HTTP\\Response"
}
]
},
{
"file": "/var/www/html/apps/dav/lib/Server.php",
"line": 433,
"function": "start",
"class": "OCA\\DAV\\Connector\\Sabre\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
"line": 25,
"function": "exec",
"class": "OCA\\DAV\\Server",
"type": "->",
"args": []
},
{
"file": "/var/www/html/remote.php",
"line": 152,
"args": [
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function": "require_once"
}
],
"File": "/var/www/html/3rdparty/sabre/dav/lib/CalDAV/Plugin.php",
"Line": 873,
"message": "Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE",
"exception": "{\"class\":\"Sabre\\DAV\\Exception\\UnsupportedMediaType\",\"message\":\"Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE\",\"code\":0,\"file\":\"/var/www/html/3rdparty/sabre/dav/lib/CalDAV/Plugin.php:873\",\"trace\":\"#0 /var/www/html/3rdparty/sabre/dav/lib/CalDAV/Plugin.php(733): Sabre\\CalDAV\\Plugin->validateICalendar('BEGIN:VCALENDAR...', 'calendars/user/...', false, Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response), false)\\n#1 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\CalDAV\\Plugin->beforeWriteContent('calendars/user/...', Object(OCA\\DAV\\CalDAV\\CalendarObject), 'BEGIN:VCALENDAR...', false)\\n#2 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1133): Sabre\\DAV\\Server->emit('beforeWriteCont...', Array)\\n#3 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(492): Sabre\\DAV\\Server->updateFile('calendars/user/...', 'BEGIN:VCALENDAR...', NULL)\\n#4 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPut(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#5 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PUT', Array)\\n#6 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(215): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#7 /var/www/html/apps/dav/lib/Server.php(433): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#8 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#9 /var/www/html/remote.php(152): require_once('/var/www/html/a...')\\n#10 {main}\"}",
"CustomMessage": "Validation error in iCalendar: The supplied value (20260920T000000) is not a correct DATE"
},
"id": "6a9d1b694f874"
}
Browser log
Additional info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in 3rdparty/sabre/dav/lib/CalDAV/Plugin.php at validateICalendar, then trace the PUT path through apps/dav/lib/Connector/Sabre/Server.php and apps/dav/lib/Server.php. Reproduce or construct the iOS-style DATE value and inspect the existing validation behavior. Done means the event is accepted and synced without repeated validation errors or data loss.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, php
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100