Open Upperholme opened 8 months ago
Just adding a bit more context to this:
Looking at the structure of the .ics file that I can download from a public CiviCRM event on my site (https://mysite.com/civicrm/event/ical?reset=1&id=584) and opening that file in a text editor, I see the following structure:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CiviCRM//NONSGML CiviEvent iCal//EN
X-WR-TIMEZONE:Europe/London
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Europe/London
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
TZNAME:BST
DTSTART:20240409T123000
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:
SUMMARY:
X-ALT-DESC;FMTTYPE=text/html:DESCRIPTION:CATEGORIES:
CALSCALE:GREGORIAN
DTSTAMP;TZID=Europe/London:20240409T133000
DTSTART;TZID=Europe/London:20240409T133000
DTEND;TZID=Europe/London:20240409T163000
LOCATION:
URL:
END:VEVENT
END:VCALENDAR
(I've removed most of the event specific info).
Looking at the iCal file created from http://mysite.com/civicrm/event/privateical?reset=1&id=584 we get the following structure:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CiviCRM//NONSGML CiviEvent iCal//EN
X-WR-TIMEZONE:Europe/London
METHOD:PUBLISH
BEGIN:VEVENT
UID:
SUMMARY:
X-ALT-DESC;FMTTYPE=text/html:
DESCRIPTION:
CATEGORIES:
CALSCALE:GREGORIAN
DTSTAMP;TZID=Europe/London:20240409T133000
DTSTART;TZID=Europe/London:20240409T133000
DTEND;TZID=Europe/London:20240409T163000
LOCATION:
URL:
END:VEVENT
END:VCALENDAR
Note that the section beginning BEGIN:VTIMEZONE is omitted when using the extension. I think that this section has proven to be critical for correct presentation of the event in Outlook, which as I understand it takes a non-standard, but very widely used approach to the handling of timezones and daylight savings.
Wondering what it might take to ensure that this extension makes full use of the work done to improve CiviCRM core a year ago, whilst still allowing me to share iCal data for non-public events.
@ErikHommel @jaapjansma - I wonder if you might be able to take a look at this for me and let me know your thoughts?
@Upperholme it would be nice if you can provide a pull request with a fix for this.
It would indeed be nice. Sadly that's not something I'm able to do, hence my asking what it might take to get this fixed. I'm willing to fund a fix if it's affordable for me.
It is probably a couple of hours of work. However I am already quite full with work.
Having just shared a URL that looks like this: https://www.mysite/civicrm/event/private_ical?reset=1&type=20 - which for me gives a subscribable link of events that all begin at 08:30, I've had feedback from a user who reports that when they subscribe to the URL in their calendar, which I understand to be MS Outlook, all of the repeating events are timed to begin at 09:30.
This reminds me of issues with CiviCRM's core iCal functionality, where similar behaviour used to be the case, but has since been fixed. I think the relevant issue might be https://lab.civicrm.org/dev/core/-/issues/2887
We have a lot of Outlook users in our constituency, so it's super important that event times are shown correctly for them.