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

Outlook/Office 365 recurrent events issue #344

Open
ajoah opened this issue Jan 3, 2025 · 0 comments
Open

Outlook/Office 365 recurrent events issue #344

ajoah opened this issue Jan 3, 2025 · 0 comments

Comments

@ajoah
Copy link

ajoah commented Jan 3, 2025

PHP Version

8.3

PHP date.timezone

UTC

ICS Parser Version

3.4.1

Operating System

Linux

Description

There seems an issue with Microsoft ICS. The original event and the recurrent event are displayed both the same day.

It is hard to explain, so I will copy a comment from WordPress plugin which use your library and had fixed the issue.

Note: This handling addresses an issue with, at least, Outlook/Office 365, where an
individual instance that deviates from the recurrence rules appears in the array,
in addition to the regular (but, in this instance, incorrect) rules. Each recurrence
in the array can be identified by the 'uid' key. The individual instances that deviate
are identified by 'recurrence_id', which is absent in the event entry that follows the
normal rule. Therefore, we look for instances of 'recurrence_id', find the
corresponding 'uid', and then look through all other events for the date for an
instance that includes 'uid' but not 'recurrence_id'.
This may also be an issue with the ICS Parser library, in that it does not seem aware
of this handling in Office 365.

https://plugins.trac.wordpress.org/browser/ics-calendar/tags/11.4.2/class-r34ics.php#L2079

Indeed, their code seems to fix the problem, but it would be better if the correction were made in the library itself.

Steps to Reproduce

use this ics :

BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
X-WR-CALNAME:Calendrier
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:16010101T030000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DESCRIPTION:\n\n
RRULE:FREQ=WEEKLY;UNTIL=20251227T100000Z;INTERVAL=1;BYDAY=SA;WKST=MO
EXDATE;TZID=W. Europe Standard Time:20240622T110000,20240629T110000,2024070
 6T110000,20240713T110000,20240720T110000,20240727T110000,20240803T110000,2
 0240810T110000,20240817T110000,20240824T110000,20240831T110000,20241109T11
 0000,20250118T110000,20250607T110000,20250621T110000,20250628T110000,20250
 705T110000,20250712T110000,20250719T110000,20250726T110000,20250802T110000
 ,20250809T110000,20250816T110000,20250823T110000
SUMMARY:Original event
DTSTART;TZID=W. Europe Standard Time:20240106T110000
DTEND;TZID=W. Europe Standard Time:20240106T154500
UID:040000008200E00074C5B7101A82E0080000000070DA31F8B807D301000000000000000
 010000000667540225DDB1D4F8518AF19275345F7
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20250102T152009Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
END:VEVENT
BEGIN:VEVENT
DESCRIPTION:\n\n
SUMMARY:Recurrent event
DTSTART;TZID=W. Europe Standard Time:20250104T110000
DTEND;TZID=W. Europe Standard Time:20250104T154500
UID:040000008200E00074C5B7101A82E0080000000070DA31F8B807D301000000000000000
 010000000667540225DDB1D4F8518AF19275345F7
RECURRENCE-ID;TZID=W. Europe Standard Time:20250104T000000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20250102T152009Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:3
X-MICROSOFT-DISALLOW-COUNTER:FALSE
END:VEVENT
END:VCALENDAR

image

Result : there are two events instead of one.

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

No branches or pull requests

1 participant