-
Notifications
You must be signed in to change notification settings - Fork 359
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
Schedule#end_time (DTEND) should define the time when an event ends, not its recurrence #99
Comments
That's one of the problems we have been having! Very nice and a big thanks, any chance this can be merged in pretty quickly and a new version released? |
This is exceptional - thank you. I'll merge it in and it will go out with a minor version release by tonight |
I'll also be removing end_time from |
use UNTIL instead of DTEND to determine last instance of recurrence; fixes #99
Before creating a pull request for this I want to confirm that my understanding of the RFC is correct. When creating a recurring event, the
start_time
andend_time
of an instance ofIceCube::Schedule
refer to DTSTART and DTEND respectively. According to the spec, these properties refer to the event. A recurrence rule's last recurrence can be specified by UNTIL.IceCube
correctly creates the event and recurrence rule with the following example:schedule.to_ical
correctly outputsBut the occurrences are incorrect:
The event lasts from 9AM to 5PM (according to DTSTART and DTEND) and should repeat until 3 days from now (according to UNTIL). But
IceCube
only shows one occurrence, presumably because it follows the date in DTEND rather than UNTIL.The correct behavior would be to return the following:
I have confirmed that this is the correct behavior in both Google Calendar and Mozilla Thunderbird (with the Lightning calendar plugin) by creating a recurring event and exporting/importing it. The above
schedule.to_ical
generated iCalender event is correctly recognized by both Google Calender and Mozilla Thunderbird.The text was updated successfully, but these errors were encountered: