niccokunzmann/python-recurring-ical-events

bug: RANGE parameter of recurring events not recognized

Closed this issue ยท 20 comments

Describe the bug

The RECURRENE-ID can have a RANGE parameter, see RFC 5545 page 114.

This parameter is not recognized by his module.

To Reproduce

We need an example!

Expected behavior

The expectation is that the future events can be modified using this parameter.

Suggested implementation

  • add an ICS file, example: help!
  • add a test, example:
  • implement the test
  • fix the test

To progress in this Issue, please find a calendar example which uses the range parameter.
If you can, also make screen shots of what the events look like in the software.


We're using [Polar.sh](https://polar.sh/niccokunzmann) so you can upvote and help fund this issue. We receive the funding once the issue is completed & confirmed by you. Thank you in advance for helping prioritize & fund our work. Fund with Polar

Hi Nicco.

I thin I know you in a Inkscape hackfest. Great to contact you again.

Im interested in use this project, looks amazing, so I attach a small test ICS;
So I attach a ICS small to test:
test.bug.ical.txt

Hi @jabiertxof thanks! Yes, I have been to one Inkscape Hackfest!

I modified the file a little bit to include RDATE and also overriding the modification in a later one.

Thunderbird seems to not understand this RANGE parameter:

grafik
grafik

Could you import the calendar file from #175 and show the screen shots of how the interpret the RANGE parameter?

Something to consider from the RFC:

When the given recurrence instance is
rescheduled, all subsequent instances are also rescheduled by the
same time difference. For instance, if the given recurrence
instance is rescheduled to start 2 hours later, then all
subsequent instances are also rescheduled 2 hours later.
Similarly, if the duration of the given recurrence instance is
modified, then all subsequence instances are also modified to have
this same duration.
Note: The "RANGE" parameter may not be appropriate to
reschedule specific subsequent instances of complex recurring
calendar component. Assuming an unbounded recurring calendar
component scheduled to occur on Mondays and Wednesdays, the
"RANGE" parameter could not be used to reschedule only the
future Monday instances to occur on Tuesday instead. [...]

To close this also:

  • move subsequent events
  • change the length of subsequent events
  • test: move events several days backwards

Hi Niko, thanks for reopening. Added comment into the test. regards.

Hi Niko I just rebase the MR code and make a fix that time is not updated in recurring-id with range.
Thanks for get into.

Here are a small ICS to example:
test.ics.txt

anyway range is must ignore in evolution and google calendar as say here:
(also put the way to make a hack)
https://stackoverflow.com/questions/30327800/ics-recurrence-id-range-thisandfuture-not-changing-later-events

Anyway is not compatible with current calendars is good to have to deploy a calendar client (easier and faster) you can provide the compatible ics export as option but use in your own UI faster using it

JUst update to allow also range changes outside start/end

addet test from #170

To close:

Updated with your feedback! thanks.

I merged #182. There are two skipped tests for special edge cases in the test file.

  • I guess, we should have a look at #75 (comment) and see if this is required to close this.
  • create a release

Thanks to @jabiertxof for getting us so far!

I think, the test file from https://stackoverflow.com/questions/30327800/ics-recurrence-id-range-thisandfuture-not-changing-later-events can be skipped.

I will open a new issue for someone with Lotus Notes to provide us with feedback. #184

This is released in v3.3.1

Hi Niko thanks so much for your cool work and congrats for the release.
I'm a bit disconected lately, Im changhig home. I add new release to my proyect and ping you if found a issue.

Sure! If you like, you can add your project in a related projects section in the readme.

Is not floss, sorry, maybe some day split the calendar into a component and open it, I ping you.

Still, you need to obey the LGPL.

I couldent use you code in propietary software? I can add license files

You can use it but you must mention the license and also allow people to change the library (access the recurring_ical_events.py file) if the code is on their computer.

https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL