aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/CalDAV
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #48510 from ↵Kate2024-10-021-90/+61
|\ | | | | | | nextcloud/fix/stable28/webcal-subscription-jobs-middleware
| * fix(caldav): add missing handlersfix/stable28/webcal-subscription-jobs-middlewareAnna Larch2024-10-011-90/+61
| | | | | | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* | fix(caldav): Do not load IMipPlugin before user auth and session is createdbackport/45098/stable28SebastianKrupinski2024-09-221-18/+14
|/ | | | Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
* fix(dav): catch `MaxInstancesExceededException` on calendar eventsbackport/47924/stable28Luc Didry2024-09-161-16/+31
| | | | Signed-off-by: Luc Didry <luc@didry.org>
* Merge pull request #47336 from nextcloud/backport/47332/stable28Andy Scherzinger2024-08-291-1/+1
|\ | | | | [stable28] fix(caldav): allow renaming of birthday calendars
| * fix(caldav): allow renaming of birthday calendarsAnna Larch2024-08-201-1/+1
| | | | | | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* | fix(caldav): limit property lengthAnna Larch2024-08-221-1/+1
|/ | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(userstatus): add missing parenthesisAnna Larch2024-08-011-3/+3
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* Merge pull request #46603 from nextcloud/backport/46593/stable28Sebastian Krupinski2024-07-181-1/+10
|\ | | | | [stable28] fix(caldav): Throw 403 Forbidden Error instead of 500 Internal Server…
| * fix(caldav): Throw 403 Forbidden Error instead of 500 Internal Server ErrorSebastianKrupinski2024-07-181-1/+10
| | | | | | | | Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
* | fix(caldav): decode values before returningSebastianKrupinski2024-07-181-0/+5
|/ | | | Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
* Merge pull request #46421 from nextcloud/backport/46315/stable28Andy Scherzinger2024-07-111-0/+40
|\ | | | | [stable28] fix(caldav): limit vevent size
| * fix(caldav): limit vevent sizeSebastianKrupinski2024-07-101-0/+40
| | | | | | | | Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
* | fix(caldav): encode calendar URIs with umlauts for activitiesRichard Steinmetz2024-07-101-2/+15
|/ | | | Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
* fix(caldav): when message is a reply compare the message sender not the ↵SebastianKrupinski2024-06-261-2/+5
| | | | | | | | recipient Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com> Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
* fix(caldav): event links in shared calendar notificationsRichard Steinmetz2024-06-112-16/+24
| | | | Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
* fix(dav): Add retention time to sync token cleanupChristoph Wurst2024-06-041-2/+6
| | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* fix(CalDAV): remove UNKNOWN from room / resource considerationAnna Larch2024-06-041-1/+1
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* Merge pull request #45640 from nextcloud/backport/45235/stable28Anna2024-06-041-0/+38
|\ | | | | [stable28] fix(caldav): automatically delete outdated scheduling objects
| * fix(caldav): automatically delete outdated scheduling objectsAnna Larch2024-06-031-0/+38
| | | | | | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* | feat(caldav): order the calendar objects by start date for searchDaniel Kesselberg2024-06-031-1/+17
| | | | | | | | | | | | Sorting the events by the start date leads to more predictable results for the search API consumers. Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
* | fix(caldav): event search with limit and timerangeDaniel Kesselberg2024-06-031-51/+105
|/ | | | | | | | | | | | | Event recurrences are evaluated at runtime because the database only knows the first and last occurrence. Given, a user created 8 events with a yearly reoccurrence and two for events tomorrow. The upcoming event widget asks the CalDAV backend for 7 events within the next 14 days. If limit 7 is applied to the SQL query, we find the 7 events with a yearly reoccurrence and discard the events after evaluating the reoccurrence rules because they are not due within the next 14 days and end up with an empty result even if there are two events to show. The workaround for search requests with a limit and time range is asking for more row than requested and retrying if we have not reached the limit. Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
* Merge pull request #44197 from nextcloud/backport/44130/stable28Daniel2024-06-031-16/+59
|\ | | | | [stable28] fix(dav): Add occ command to fix missing caldav sync tokens
| * fix(dav): Add occ command to fix missing caldav sync tokensChristoph Wurst2024-05-311-16/+59
| | | | | | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* | feat(caldav): expose calendar subscriptionsDaniel Kesselberg2024-05-318-22/+215
|/ | | | Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
* fix(userstatus): catch unique constrain violation on revertAnna Larch2024-05-281-2/+25
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(caldav): loop through all events for busy eventsAnna Larch2024-05-141-12/+9
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(dav): wrong comparison method between two eventsRobert C. Schaller2024-03-261-1/+1
| | | | | | | | | Old comparison implementation compares each element of the array against each other with no respect for the associated array label, which leads to wrongful removals because one value is accidentally present in a completely different label. New comparison works 'by-label' individually. Partly fixes #41084 because changes between 'SEQUENCE' not present, 'SEQUENCE:0' and 'SEQUENCE:1' were not detected in the old implementation and thus no email update sent. Co-authored-by: Christoph Wurst <ChristophWurst@users.noreply.github.com> Signed-off-by: Robert C. Schaller <gtbc_robert.schaller@rsxc.de>
* fix(caldav): add EXDATE and EXRULE to confidential objectAnna Larch2024-03-211-0/+4
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* Bug fix: Select the correct table based on CALENDAR_TYPE_CALENDARPatrick Fischer2024-02-231-2/+4
| | | | Signed-off-by: Patrick Fischer <mail@patrickfischer.ch>
* fix(dav): Rate limit calendar/subscription creationChristoph Wurst2024-02-222-0/+132
| | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* fix(caldav): only call getTimestamp() on actual DateTime dataThomas Citharel2024-02-031-2/+1
| | | | | | | | For some reason the value of $component['DTSTART'][0] may not be a DateTimeImmutable Closes #42464 Signed-off-by: Thomas Citharel <tcit@tcit.fr>
* fix(userstatus): Also set the user status when the user has no status at allJoas Schilling2024-01-251-1/+1
| | | | Signed-off-by: Joas Schilling <coding@schilljs.com>
* fix(userstatus): CALL status should overwrite MEETING statusAnna Larch2024-01-251-16/+19
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(CalDAV): set acls for DeletedCalendarObjectsCollectionJohannes Merkel2024-01-181-1/+24
| | | | Signed-off-by: Johannes Merkel <mail@johannesgge.de>
* fix(dav): Fix user status "Undefined array key 0 at StatusService.php#98"Joas Schilling2024-01-151-4/+7
| | | | Signed-off-by: Joas Schilling <coding@schilljs.com>
* fix(dav): allow multiple organizers if possibleRichard Steinmetz2024-01-021-1/+67
| | | | | | | | | This is very hacky! However, we want to allow saving events with multiple organizers. Those events are not RFC compliant, but sometimes imported from major external calendar services (e.g. Google). If the current user is not an organizer of the event we ignore the exception as no scheduling messages will be sent anyway. Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
* fix(dav): Hide less than minute diff in calendar notification titlejld31032023-12-201-1/+1
| | | | Signed-off-by: jld3103 <jld3103yt@gmail.com>
* fix(userstatus): set user status to 'In a meeting' if calendar is busyAnna Larch2023-12-192-188/+93
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(caldav): don't reuse query builder objectsAnna Larch2023-12-111-0/+2
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(copyright): Fix copyright doc blocksJoas Schilling2023-12-013-64/+42
| | | | Signed-off-by: Joas Schilling <coding@schilljs.com>
* fix(dav): Prioritize timezone from core/loginChristoph Wurst2023-11-291-0/+9
| | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* [stable28] enh(userstatus): add OOO automation and remove calendar automationAnna Larch2023-11-282-21/+20
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(dav): Avoid date diffing if PHP is buggyChristoph Wurst2023-11-241-9/+23
| | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* feat(dav): dispatch out-of-office started and ended eventsRichard Steinmetz2023-11-231-0/+98
| | | | Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
* chore: apply changes from Nextcloud coding standards 1.1.1Joas Schilling2023-11-2331-203/+196
| | | | | Signed-off-by: Joas Schilling <coding@schilljs.com> Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
* Fix param name after Sabre\CalDAV updateLouis Chemineau2023-11-221-2/+2
| | | | Signed-off-by: Louis Chemineau <louis@chmn.me>
* feat(caldav): Allow advanced search for events/tasksBenjamin Gaussorgues2023-11-101-33/+40
| | | | Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
* feat(user status): automate user status for eventsAnna Larch2023-11-095-0/+366
| | | | | | | and automatically set a user status to free or busy depending on their calendar transparency, event status and availability settings Signed-off-by: Anna Larch <anna@nextcloud.com>
* fix(scheduling): don't send iMIP emails to rooms / resourcesAnna Larch2023-11-062-10/+27
| | | | Signed-off-by: Anna Larch <anna@nextcloud.com>