.ics calender with "CLASS:public" imported with property "when shared hide this event"
Steps to reproduce
- import .ics caleder via setting->import calender into a new calender
- share with other users
Expected behavior
when sharing this calender, the entries should be shown to the shared users as well, which it does not do
Actual behavior
to see this entries for shared users
following problem:
- import .ics calender file with calender entries. these entries contain a property "CLASS:public", which should indicate that the import policy of this event translate to the the property "When shared show full event". In case of writing "public" lowercase, it results in property "when shared hide this event"
- Workaround: replace all "CLASS:public" with "CLASS:PUBLIC" in .ics file (via notepad++ etc.)
- Fix: seems like implementation is case dependent after CLASS tag
Calendar app version
No response
CalDAV-clients used
No response
Browser
Microsoft Edge, Firefox
Client operating system
Windows
Server operating system
No response
Web server
None
Database engine version
None
PHP engine version
None
Nextcloud version
No response
Updated from an older installed version or fresh install
None
List of activated apps
Nextcloud configuration
Web server error log
Log file
Browser log
Additional info
No response
RFC 5545 says:
All names of properties, property parameters, enumerated property values, and property parameter values are case-insensitive.
The issue lies here where a case-sensitive comparison is done when saving events:
https://github.com/nextcloud/server/blob/eb9a6214a1d4497556cef9b4a379473bcb7f99a3/apps/dav/lib/CalDAV/CalDavBackend.php#L3134-L3144
EDIT: however even if valid, it's unusual to have lowercase parameters like this. Do you mind sharing what's the software that produced these ics file? You may also find information in the PRODID parameter.
in my case i downloaded the ics file from https://www.thunderbird.net/de/calendar/holidays/ (Austrian calender).
I am not familiar of the format ics uses normally, still it should not be a case sensitive check IMO. Just to prevent unnecessary needed touches of the ics file to use it properly.