Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Icalendar Bundle

Icalendar Bundle Laravel Package

six-paths/icalendar-bundle

A PHP library for creating and parsing iCalendar (.ics) data, making it easy to build calendar events, export schedules, and integrate ICS feeds into your application.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Icalendar Bundle
Can I use six-paths/icalendar-bundle in a Laravel application?
The package is published as a Symfony bundle, so it is designed around Symfony's bundle registration and service container rather than Laravel's service providers and facades. It fits a Symfony application more naturally than a Laravel one, and inside Laravel you would normally reach for a Laravel-native ICS generator or instantiate the underlying library manually. If you do want it in Laravel, plan for extra glue code and avoid relying on container autowiring for its services.
How do I install six-paths/icalendar-bundle with Composer?
Install it with composer require six-paths/icalendar-bundle and commit the updated composer.json and composer.lock files. In a Symfony app, enable the bundle in config/bundles.php, which Symfony Flex will usually do for you automatically. After that, the bundle's calendar and event services can be injected into your controllers and services instead of being instantiated by hand.
How do I build a VEVENT with a summary, start date, end date and description?
Create a calendar, add a VEVENT entry, and set the summary, DTSTART, DTEND and DESCRIPTION properties using the bundle's event API, passing dates as PHP date-time objects. Every event should also carry a stable UID so calendar clients can update an existing event rather than create a duplicate on each import. Once all events are attached, render the calendar to a string or stream it directly to the response. The overview only documents summaries, dates and descriptions, so verify optional properties such as location or organiser against the current docs.
How do I return an .ics feed from a Symfony controller?
Generate the calendar content in your controller and return a response with the Content-Type header set to text/calendar; charset=utf-8, plus a Content-Disposition header such as inline; filename="events.ics". Returning a normal Symfony Response with that body works for most calendar clients, and a StreamedResponse is useful for large feeds. Avoid aggressive HTTP caching unless the feed is static, because Calendar apps such as Google Calendar and Outlook re-poll subscription URLs on their own schedule.
How should timezones and date formats be handled in the generated feed?
Pass real date-time objects with an explicit timezone rather than plain strings, so the generated DTSTART and DTEND values are unambiguous. Converting to UTC and emitting the trailing Z is the most portable option when subscribers are spread across regions. For local-time events, include a VTIMEZONE component or an explicit TZID parameter so clients render the correct wall-clock time. Confirm which of these the bundle emits by inspecting a sample of the rendered output.
Is the generated iCalendar output RFC 5545 compliant and importable into Google Calendar, Apple Calendar and Outlook?
The bundle targets standards-compliant .ics output suitable for RFC 5545-compatible clients, which covers Google Calendar, Apple Calendar, Outlook and most other calendar applications. Real-world import failures usually come from malformed line folding, missing CRLF line endings, or a missing UID or DTSTAMP rather than from the property values themselves. Always open a generated file in two different clients, and ideally validate it with a parser, before shipping a feed to users.
Does six-paths/icalendar-bundle support recurring events, RRULE, VALARM reminders or attendees?
The documented feature set focuses on VEVENT entries with summaries, dates and descriptions, and it does not advertise recurrence rules, alarms or attendee lists. If you need RRULE, VALARM or ORGANIZER and ATTENDEE properties, check the current source and issue tracker before committing to the package. As a workaround you can often append raw property lines, but that shifts the responsibility for escaping and line folding onto your code.
Which PHP and Symfony versions does this bundle support?
The supported PHP and Symfony ranges are declared in the package's composer.json requirements, so read that file or the Packagist page for the exact constraints. Because it is a Symfony bundle, the Symfony framework version constraint matters as much as the PHP version when you are upgrading a project. Pin a compatible version in composer.json and run your test suite after any framework upgrade to catch deprecations early.
How do I test the iCalendar output generated by this bundle?
Assert on the rendered string in a unit test: it should start with BEGIN:VCALENDAR, contain BEGIN:VEVENT and END:VEVENT pairs, and use CRLF line endings with correctly folded long lines. For stronger guarantees, parse the output with a library such as sabre/vobject and check that the summary and date properties round-trip as expected. A functional test that requests the feed endpoint and checks the text/calendar content type catches header and routing mistakes that string assertions miss.
Is six-paths/icalendar-bundle actively maintained, and what alternatives exist?
Check the repository's recent commits, tagged releases and open issues before adopting it, since maintenance activity matters more than feature lists for a dependency you will ship in production. Popular alternatives in the PHP ecosystem include eluceo/ical, spatie/icalendar-generator, markuspoerschke/ical and sabre/vobject for reading and writing. If you are on Laravel rather than Symfony, compare those packages first, because they integrate with fewer framework assumptions.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log