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

Incorrect end time for non-recurrent events #39

Open
DanielHeath opened this issue Oct 18, 2024 · 1 comment
Open

Incorrect end time for non-recurrent events #39

DanielHeath opened this issue Oct 18, 2024 · 1 comment

Comments

@DanielHeath
Copy link

See attached reproduction script, using ical data exported from google calendar:

require "bundler/inline"

gemfile do
  source "https://rubygems.org"
  gem "icalendar-recurrence", "~> 1.2"
  gem "icalendar"
  gem "activesupport"
end

require "active_support"
require "active_support/core_ext"
require "icalendar/tzinfo"

ical_str = <<-ICAL
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Jubilee Street
X-WR-TIMEZONE:Australia/Sydney
BEGIN:VTIMEZONE
TZID:Australia/Sydney
X-LIC-LOCATION:Australia/Sydney
BEGIN:STANDARD
TZOFFSETFROM:+1100
TZOFFSETTO:+1000
TZNAME:GMT+10
DTSTART:19700405T030000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+1000
TZOFFSETTO:+1100
TZNAME:GMT+11
DTSTART:19701004T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTART:20241018T220000Z
DTEND:20241019T050000Z
DTSTAMP:20241018T071435Z
UID:[email protected]
CREATED:20241018T070309Z
LAST-MODIFIED:20241018T070309Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:D&D
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
ICAL

event = Icalendar::Calendar.parse(ical_str).sole.events.sole
occurence = event.occurrences_between(Date.parse("10 oct 2024"), Date.parse("30 oct 2024")).sole
puts 'By ical'
puts event.dtstart
puts event.dtend
puts 'By recurrence'
puts occurence.start_time
puts occurence.end_time

Expected: The sole occurrence of a non-recurring event ends at the same time the event ends.

Actual: The end time is a few seconds after the start time.

@DanielHeath
Copy link
Author

The script outputs:

By ical
2024-10-18 22:00:00 UTC
2024-10-19 05:00:00 UTC
By recurrence
2024-10-18T22:00:00+00:00
2024-10-18 22:00:00 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant