-
Notifications
You must be signed in to change notification settings - Fork 231
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
CalendarEvent mixes up DURATION
and DTEND
on deserialization
#574
Labels
Comments
Appreciate a PR. Please double-check the new version merged with #595 |
minichma
added a commit
to minichma/ical.net
that referenced
this issue
Oct 14, 2024
…ly calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See ical-org#574.
minichma
added a commit
to minichma/ical.net
that referenced
this issue
Oct 15, 2024
…ly calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See ical-org#574.
minichma
added a commit
to minichma/ical.net
that referenced
this issue
Nov 17, 2024
…ly calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See ical-org#574.
minichma
added a commit
to minichma/ical.net
that referenced
this issue
Nov 17, 2024
…ly calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See ical-org#574.
minichma
added a commit
to minichma/ical.net
that referenced
this issue
Nov 17, 2024
…ly calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See ical-org#574.
minichma
added a commit
that referenced
this issue
Nov 20, 2024
* CalendarEvent: Don't extrapolate a `CalendarEvent`'s `DtStart` from `DtEnd` and `Duration`. Doesn't seem to be a realistic case and prevents us from dealing with subtle differences between `DTEND` and `DURATION`. * SymmetricSerializationTests: `VEVENT`'s `DTEND` and `DURATION` are mutually exclusive according to RFC 5545. * CalendarEvent: Don't set `DURATION` resp. `DTEND` from each other. Only calculate the duration on the fly when needed. This way we don't overwrite the information, which of both was originally set and can adjust calculations accordingly (in the future). See #574. * Test: Add reproducer from #629, which shows, that the problem is fixed with this PR.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In Ical.Net
VEVENT
components are deserialized intoCalendarEvent
objects. During the deserialization process theDURATION
property is extrapolated intoDTEND
and vice versa. I.e. one is calculated out of the other, so after deserialziation both are present. The information, which of both was contained in the originalVEVENT
component is lost during deserialization.This is a problem when it comes to recurring events, because according to RFC 5545 recurrence sets are generated differently depending on which of both was used to specify the duration.
See https://www.rfc-editor.org/rfc/rfc5545#section-3.8.5.3:
Suggestion: During deserialization retain the information, which property (
DURATION
,DTEND
,DUE
) was used to specify an VEVENT's duration.The text was updated successfully, but these errors were encountered: