instructure / canvas-lms

The open LMS by Instructure, Inc.
https://github.com/instructure/canvas-lms/wiki
GNU Affero General Public License v3.0
5.71k stars 2.52k forks source link

All-day calendar events have wrong end-date in iCalendar feed #1201

Closed MikeN123 closed 6 years ago

MikeN123 commented 6 years ago

Summary:

When an all-day calendar event is created, in the accompanying iCalendar feed the DTSTART and DTEND property have the same value. The DTEND value should be one day later than the DTSTART value.

Steps to reproduce:

  1. Create an all-day event (event without start/end time) in the calendar
  2. Download the iCalender feed
  3. Compare the DTSTART and DTEND values

Expected behavior:

DTEND should be one day after DTSTART value, for an all-day event with the duration of one day.

Additional notes:

See RFC 5545 3.6.1:

The "DTEND" property for a "VEVENT" calendar component specifies the non-inclusive end of the event.

spencerolson commented 6 years ago

Hi @MikeN123 , thanks for bringing this to our attention. I've created a ticket for this and will put it in the appropriate team's backlog, where they can appropriately prioritize it among other tickets and determine the severity of the issue.

I did some manual testing with this, and it looks like Calendar App, Google Calendar, and Outlook (those are the only three I tested) handle the ICS file as-is without issue and interpret the event correctly as an all-day event, which is good. That being said, we should still make this change to adhere to RFC 5545 3.6.1 (thanks for providing the reference).

Thanks, Spencer

spencerolson commented 6 years ago

Closing this one out since we've got a ticket in the backlog to work on this. Thanks for bringing this to our attention, @MikeN123