Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand Recurring Events #662

Closed
balrok opened this issue Jul 19, 2017 · 7 comments
Closed

Expand Recurring Events #662

balrok opened this issue Jul 19, 2017 · 7 comments
Assignees
Labels
Milestone

Comments

@balrok
Copy link

balrok commented Jul 19, 2017

Hello, I want to write a very simple client, for which I need the expanded date of a recurring event as in https://tools.ietf.org/html/rfc4791#section-7.8.3

This was also once asked in
https://stackoverflow.com/questions/37711699/expanding-recurring-events-in-caldav

When retrieving the events of next week and having the recurring date expanded already by the server, it would simplify a lot.

Best Regards
Carl

@bgervan
Copy link

bgervan commented Mar 19, 2021

Hi, is this feature planned in the near future? Can we help in anything?

@Forger125
Copy link

Happy to help provide any additional info, I am running into this problem from the HomeAssistant CalDAV integration when using my home Radicale server, only displaying the first event in a series.

@tvogel
Copy link

tvogel commented Nov 23, 2022

+1 Here for using radicale as a CalDAV mirror to do automatic heating control using python caldav search, see https://github.com/tvogel/caldav-trigger . Currently does not work because expansion is not done and thus does not allow to query the CalDAV resource.

@pbiering
Copy link
Collaborator

  • Is there any reference implementation as source code available for supporting this feature for "standard" reoccurring schedules + also related single shifted/canceled/adjusted ones?

  • Also one has to consider a limit (and a related error message) to avoid unexpected denial-of-server attack. Think about a daily event but requested time range is e.g. 2 years -> resulting in 730 returned entries...this can even overflood a client implementation...haven't read through the RFC, but there should be 2 limits somehow:

    • max entries
    • max size (think about a schedule which has additional information stored inside, because this will be replicated in the mentioned example 730 times)

@tvogel
Copy link

tvogel commented Nov 23, 2022

This is the expand code from Sabre that is used by NextCloud:

https://github.com/sabre-io/vobject/blob/49dbd1bacba784025cc012fd7d908dd87a725914/lib/Component/VCalendar.php#L280

I donot see any arbitrary "safety" limits in that. Neither in the code leading up to that method, starting here:

https://github.com/sabre-io/dav/blob/264f567943ad904d26709fa31bcc3dcc263f3a89/lib/CalDAV/ICSExportPlugin.php#L83

Also, I would be quite hesitant because it violates data consistency. If you request daily events for two years, then it is correct to report 730 items with full detail, so any precautions should be optional and used with quite some care as the client needs to be made aware how to still request all data (by shortening the start/end interval and iterating).

@pbiering
Copy link
Collaborator

Hi, is this feature planned in the near future? Can we help in anything?

based on reference code from above, one has to implement that extension into radicale, I cannot do that at the moment, did on first shot not even found where to insert...but I can test a Pull Request.

@pbiering pbiering self-assigned this Apr 6, 2024
@pbiering pbiering added this to the 3.2.x milestone Apr 6, 2024
@pbiering
Copy link
Collaborator

pbiering commented Apr 6, 2024

Support is now implemented by #1292, please try master branch and file comment on PR if still a problem

@pbiering pbiering closed this as completed Apr 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants