-
Bug
-
Resolution: Fixed
-
Major
-
2.8.12, 2.9.6, 3.0.4, 3.1.1, 3.2.4
-
MOODLE_28_STABLE, MOODLE_29_STABLE, MOODLE_30_STABLE, MOODLE_31_STABLE, MOODLE_32_STABLE
-
MOODLE_32_STABLE, MOODLE_33_STABLE
-
MDL-54607-master -
Difficult
-
-
3.4 Sprint 2
Assignment due dates in the calendar ics export file do not have a time component. They are listed as an "All day" event without a timestamp. However, it has a time component in the assignment settings, and this time component is important, so students know when exactly their deadline is.
This also causes an issue when the date specified for the due date is exported as the day before the due date. If a due date is created at 3rd May 2016 00:00, and the timezone is a UTC+ timezone (say Sydney), then in the calendar export it is specified at the 2nd May 2016 all day event. However, in the Moodle Calendar, it is shown correctly as 3rd May. When imported into an external calendar, it will be listed as 2nd May 2016, no matter what the timezone in the external system. This is because the date in the ics file is considered a 'floating time', and not a UTC timezone, as it lacks the Z designation. Check the ics spec at https://www.ietf.org/rfc/rfc2445.txt
The same issue can make the due date a day late in a UTC- timezone.
A UTC timestamp should be place on both the DTSTART and DTEND for assignment due date in calendar exports, which will fix both these issues.
Example below of .ics file for due date event.
SUMMARY:Assign 1
DESCRIPTION:Assign 1
CLASS:PUBLIC
LAST-MODIFIED:20160516T002100Z
DTSTAMP:20160516T002405Z
DTSTART;VALUE=DATE:20160522
DTEND;VALUE=DATE:20160523
CATEGORIES:Calender Test
END:VEVENT
Reproduction of missing timestamp
1) Create a course, create an assignment with the due date in the future
2) Add Calendar block
3) Login as user enrolled into course (otherwise event will not appear in .ics file)
4) Go into Calendar and Export Calendar
EXPECTED: Calendar entry in ics file should have time component
ACTUAL: Listed as date only.
Reproduction of day early date in .ics file
1) Set timezone as Sydney for site and user
2) Create a course, create an assignment with the due date of 3 May 2016
3) Add Calendar block
4) Login as user enrolled into course (otherwise event will not appear in .ics file)
5) Go into Calendar and Export Calendar
EXPECTED: Calendar entry in ics file should be listed as all day 3 May 2016
ACTUAL: Calendar entry in ics file is listed as all day 2 May 2016
- has a non-specific relationship to
-
MDL-55484 Exporting a calendar changes events with no endtime into an event for the wrong day
- Closed
-
MDL-51331 Duplicated activity's due date does not display in calendar
- Closed
-
MDL-56227 Include "All day" event in calendar
- Closed
- has been marked as being related by
-
MDL-49561 Error in iCalendar export of zero duration events from Moodle
- Closed
- is duplicated by
-
MDL-53536 Ical Export moves some events for the next day
- Closed
- will help resolve
-
MDL-52946 Export of non-duration events is wrong
- Closed