NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1189 most downloaded on Packagist
The eluceo/iCal package offers an abstraction layer for creating iCalendars. You can easily create iCal files by using PHP objects instead of typing your *.ics file by hand. The output will follow RFC 5545 as best as possible.
Last release 2 months ago
12 Jul 2026
Ships fairly regularly
a new release about every 5 months
Most releases are documented
notes for 38 of 54 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
54 releases · first in 2014
Event's HTML alternative description #657
Added Support for PHP 8.5 Removed Support for PHP 8.3
One column per quarter.
Support for PHP 7.4, 8.0, 8.1, 8.2
Fix \n being escaped to \n, leading to no newlines in actual text #617
Added Support PHP 8.3 #576
Add value type DATE to DTSTART and DTEND #519
Update .gitattributes file to exclude unnecessary files when fetching package through Composer. #510
.gitattributes file to exclude unnecessary files when fetching package through Composer. #510Declare CalendarFactory::getProperties protected i/o private to open it for extension #386
CalendarFactory::getProperties protected i/o private to open it for extension #386Fix formatting date time property with UTC time zone #482
Add missing return types and missing template annotations #472
@implements IteratorAggregate<Event> to \Eluceo\iCal\Domain\Collection\Events@implements IteratorAggregate<ContentLine> to \Eluceo\iCal\Presentation\Component@return Traversable<ContentLine> to \Eluceo\iCal\Presentation\Component::getIteratorSupport chaining of Calendar::setPublishedTTL() #452
Support X-PUBLISHED-TTL property on calendars #413
X-PUBLISHED-TTL property on calendars #413Support status property on events #422
Deprecation message occuring on an OOTB Symfony 5.4 on PHP 7.4 #382
### Added - Support PHP 8.1
Support symfony/deprecation-contracts version 3 #354
Event LAST-MODIFIED property #298
### Added - Event organizer #260
TZOFFSETTO and TZOFFSETFROM should never be -0000 #246
Eluceo\iCal\Domain\Entity\TimeZone::createFromPhpDateTimeZone will not have default values
for $beginDateTime and $endDateTime in the next major version. #250This version is complete rewrite. Please check the upgrade guide on how to upgrade from version 0.* to 2.0.0.
This version is complete rewrite.
Please check the upgrade guide on how to upgrade from version 0.* to 2.0.0.
<=7.3Removed PHP 8.4 deprecation warnings #687
Added Support PHP 8.4
Nothing published for this version
Nothing published for this version
Nothing published for this version
TimeZone will be correctly applied if instance of \DateTimeImmutable is used #131
\DateTimeImmutable is used #131BYSETPOS to RecurrenceRule #113
Properly escape BY* rules like BYDAY. #105
BY* rules like BYDAY. #105Improve performance for long lines. By using mbstring the folding of lines is much faster and consumes less CPU and memory. #103
\DateTimeImmutable is now supported by events. When using \DateTime there will be no side effect anymore that will change the original date time objec
Do not escape value of the GEO property #79
\DateTimerInterface. This allows to use \DateTimeImmutable. #86X-PUBLISHED-TTL. This value controls the update interval if the ics file is synced.
The former default value was set to one week. If you want the behavior from version < 0.12 you have to set the value:
$vCalendar->setPublishedTTL('P1W'). #81Nothing published for this version
Convert time to UTC if UTC mode is enabled. #111
Improve performance for long lines. By using mbstring the folding of lines is much faster and consumes less CPU and memory. #104
Fix the GEO property (compatibility to PHP < 7) #91 #91
Do not escape value of the GEO property #79
All days events (no time) ends on the next day. #83
Adding a single recurrence rule to an event using Event::setRecurrenceRule() is deprecated and will be removed in 1.0. Use Event::addRecurrenceRule()…
Event::setRecurrenceRule() is deprecated and will be removed in 1.0. Use Event::addRecurrenceRule() instead. #77Problem with GEO property when importing into Google Calendar #74
Use 'escapeValue' to escape the new line character. #60
Breaking Change: Changed signature of the Event::setOrganizer method. Now there is is only one parameter that must be an instance of Property\Organize…
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →