nextcloud / nextcloud/calendar
Events with 'When shared show only busy' are ignored by ICalendar>CalendarImpl.php>CalDavBackend.php->search()
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
- Share a calendar User1 -> User2
- User1: create an event with
accessClass='When shared show only busy' andtimeTransparency='Busy'
https://github.com/nextcloud/calendar/blob/f39e31fec11708970f975dc83e49246decce95dd/src/models/rfcProps.js#L35-L46
https://github.com/nextcloud/calendar/blob/f39e31fec11708970f975dc83e49246decce95dd/src/models/rfcProps.js#L82-L92 - Call
ICalendar->search()as User2
https://github.com/nextcloud/server/blob/eeec6142ca6af64e86d1dde9103fb365a3c5f51d/lib/public/Calendar/ICalendar.php#L61-L71
Expected behavior
User1 set timeTransparency to Busy and accessClass to When shared show only busy therefore the event should be returned when User2 calls the ICalendar->search() function
Actual behaviour
The event is not returned.
CalendarImpl->search() https://github.com/nextcloud/server/blob/5079bf6dd9df1240e88435b56e996b5cd8abde06/apps/dav/lib/CalDAV/CalendarImpl.php#L109-L112
calls CalDavBackend->search() https://github.com/nextcloud/server/blob/532c7545bdc0ba37337d2103a74fce796915539b/apps/dav/lib/CalDAV/CalDavBackend.php#L1826-L1827
and the 'When shared show only busy' (aka CONFIDENTIAL) event is skipped here:
https://github.com/nextcloud/server/blob/532c7545bdc0ba37337d2103a74fce796915539b/apps/dav/lib/CalDAV/CalDavBackend.php#L1837-L1843
*Please that note this bug is specific to ICalendar->serach() because it uses CalDavBackend->search(), while other methods might call CalDavBackend->calendarQuery()
Calendar app version
No response
CalDAV-clients used
No response
Browser
No response
Client operating system
No response
Server operating system
No response
Web server
No response
Database engine version
No response
PHP engine version
No response
Nextcloud version
No response
Updated from an older installed version or fresh install
No response
List of activated apps
No response
Nextcloud configuration
No response
Web server error log
No response
Log file
No response
Browser log
No response
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 with apps/dav/lib/CalDAV/CalendarImpl.php search() and follow its call into CalDavBackend.php search(), especially the access-class filtering around the referenced lines. Compare this path with calendarQuery() and reproduce the shared-calendar case; done means ICalendar->search() returns a Busy event marked “When shared show only busy” for the other user.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100