Releases
v2.1.2
#164 : define mbstring
as a required extension
Add configurable option to disable character replacement
Avoid fatal error with invalid iCal date
Previous Release Changelogs
#162 : fix fatal error and remove unnecessary require statement
#154
Process an altered recurrence event even when it is the initial parent event that has been altered
Correct if
condition and use of array_search()
#155 : provide better support for VALARM
#159 : fix parse failure on dates before 1970 with an inline time zone
#161
Introduce Carbon to allow robust time zone comparison
Force the default time zone on UTC exdates
Cache valid time zones to improve parser performance
Remove unnecessary class inheritance
ℹ️ A composer update
is required to pull in Carbon
#116 (#144 ): continue parsing and default to the default time zone if an invalid TZID
is found
#147 : correct the parsing of exdates that contain attributes such as VALUE=DATE
#145 : account for exdates that are not reached but affect the recurrence count
#148 : correctly apply time zone data
Fix an "invalid code point value" PHP warning in PHP 7.2
Update contributing guidelines
#124 : create function to prepare the data prior to adding to the Event object
#125 : prevent time zone from being reapplied to DTSTART_TZ
and DTEND_TZ
for recurrence events
#126 : allow $cal
object to be accessed so attributes such as METHOD
can be queried
#127 : prevent re-applying a time zone on a timestamp already defined with one and instead rely on DTSTART_TZ
and DTEND_TZ
#129 : when converting an event date to a UNIX timestamp only apply the event time zone if explicitly requested
#133 : allow default time zone to be set during instantiation
#134 : correctly parse FREEBUSY
calendar info
#136 : consider BYSETPOS
when parsing a monthly recurrence rule
#137 : change from gmdate()
to date()
to prevent issues during daylight savings
#138 : throw a catchable error exception when a file or URL that does not exist is passed to the parser
Allow a custom date format to be supplied to iCalDateWithTimeZone()
Allow time zone to be set even if no filename is passed to the constructor
Alter recurrence matching logic to support events with time zone data
Apply a snake_case conversion to all Event keys
Correctly force a time zone (if present) when calling iCalDateWithTimeZone()
Count FREEBUSY
occurrences rather than the VFREEBUSY
parent component
Enhance Event object to provide access to the ICal object and its methods
Ensure public initialisation methods return an ICal object
Provide separate methods to allow the initialisation of the parser using a file or URL
Provide support for dates beyond 29 Jan 2038 by converting to a DateTime object
Support Mac/Linux line endings
Support multiple files on instantiation
Trigger an appropriate error if the parser is initialised more than once with iCal content
#113 : expand WKST
logic to support days other than Sunday
#114 : correctly implement iCal unfolding prior to parsing
#115 : support ability to parse multiple EXDATE lines
#116
Correct the logic when applying the event timezone
Correctly validate timezone
#118 : use multibyte safe string replacement function when cleaning data
#121 : support iCal files with Mac OS X line endings (\r
)
#123 : allow the parser to silently ignore events with an invalid start date
#109
Do not re-apply the timezone if TZID
is specified within DTSTART
/ DTEND
Fallback to applying the calendar timezone when using iCalDateWithTimeZone()
unless Zulu time has been specified
#110
Attempt to clean data before running it through the parser
Improve the method of splitting keys from values in an iCal string
#111
Implement unfolding prior to parsing as per the iCal spec
Remove unprintable Unicode characters as well as ASCII
#112 : support ability to skip processRecurrences()
Allow missing timezone abbreviations such as MET
Allow the timezone to be forced when populating dtstart_tz
/ dtend_tz
Ensure only permitted configurable variables can be overridden in the constructor
Include an example of using VFREEBUSY
Update Bootstrap styling used in the examples to v3.3.7
Where appropriate change from date()
/ gmdate()
to use PHP's DateTime
object
#105 , #109 : ensure all DateTime
objects use a default timezone setting
Allow default settings to be overridden and passed into the constructor
Correct how a timezone is applied to recurrence events if $useTimeZoneWithRRules
is set to true
Improve documentation
#14 : support ability to parse a negative BYDAY value
#16 : support ability to parse multiple months in YEARLY BYMONTH
#17 : support ability to parse every day of month when BYDAY lacks number
#65 : fix date exclusions that use EXDATE
#99 : improve performance of parser
#100 : correctly populate $bydays
array using the day of the week from $startTimestamp
when BYDAY
is not present in the recurrence rule
Improve documentation
Incorporate timezone settings when parsing recurrence rules
Fix date exclusions that use EXDATE
Ensure timezones are checked to be valid before using
Add new eventsFromInterval
function
Ensure PSR-2 compliance
Other improvements and bug fixes
Add namespace and autoloading
Convert Event to be an object
You can’t perform that action at this time.