endroid/calendar
Endroid Calendar is a PHP library for building and rendering calendars with events and customizable date output. It provides a flexible foundation for adding calendar functionality to Laravel and PHP applications.
.ics download), email invitations with METHOD:REQUEST, or a subscribable webcal feed. This library covers build/read/write of calendar objects, so it maps directly to a scoped v1 of any of those features.VTIMEZONE handling, VALARM blocks. A MIT-licensed library converts weeks of format-compliance work into a composer require; the PM decision is whether the maintenance risk is cheaper than the spec risk..ics (importing a user's Outlook/Google calendar, ingesting supplier availability feeds) is materially harder than emitting it. "Building, reading and writing" means an import feature is on the table without a second dependency — relevant for booking, scheduling, and leave-management roadmaps.Adopt (or spike) when:
.ics output or parsing and want to avoid owning RFC 5545 compliance yourself.ics microservice) for a small feature.Look elsewhere when:
RRULE with BYSETPOS, exceptions/EXDATE), embedded VTIMEZONE with DST transitions, or malformed real-world feeds, sabre/vobject is the battle-tested reference implementation and worth the extra weight.sabre/dav territory, not this.eluceo/ical or spatie/icalendar-generator are the lower-risk choices if all you need is "download this event as .ics."To executives: Calendar interoperability is a recurring, low-differentiation feature that customers expect in any scheduling, event, or HR product. This package is MIT-licensed and dependency-light, so it lets us ship "add to calendar," email invitations, and calendar import without per-user Google/Microsoft OAuth approvals — cutting both time-to-market and the compliance/security review burden. The caveat is maturity: adoption is negligible (8 stars, 0 dependents), so the recommendation is a short, time-boxed spike behind an internal interface rather than a platform commitment. Cost of the evaluation is days, not a quarter; the downside is bounded by the adapter.
To engineering: Treat it as a candidate implementation behind a CalendarGateway interface — toIcs(Event): string and fromIcs(string): Calendar. Composer-install it, build the two or three flows you actually need, and stress it with real-world inputs from Outlook, Google, and Apple before deciding. Audit test coverage and PHP-version support first; if the library is stale, the interface means we swap to sabre/vobject (parsing/correctness) or spatie/icalendar-generator (emit-only) with no product-visible change. Do not build recurrence-rule edge cases or VTIMEZONE handling on top of it without verification.
How can I help you explore Laravel packages today?