Weave Code
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
Calendar Bundle

Calendar Bundle Laravel Package

adexerivera/calendar-bundle

Symfony2 bundle integrating jQuery FullCalendar. Loads events via AJAX and dispatches a calendar.load_events event so any bundle can supply events through listeners. Includes routes, assets, and a Twig include to render the calendar.

View on GitHub
Deep Wiki
Context7

This bundle allows you to integrate the jQuery FullCalendar plugin into your Symfony2 application.

Frequently asked questions about Calendar Bundle
Can I use this bundle in Laravel instead of Symfony2? It mentions Symfony2 compatibility.
No, this bundle is specifically designed for Symfony2 and won’t work directly in Laravel. Laravel uses Composer but has a different architecture, including its own service container and routing system. For Laravel, consider alternatives like FullCalendar’s official PHP backend or Vue/React wrappers.
What Laravel alternatives exist for integrating FullCalendar with AJAX event loading?
For Laravel, you can use FullCalendar’s official PHP backend with a custom API endpoint or packages like `spatie/laravel-fullcalendar` for Vue/React integration. These avoid Symfony2 dependencies and support modern Laravel features like API routes and Eloquent models.
Does this bundle support Symfony 4/5/6, or is it strictly for Symfony2?
This bundle is strictly for Symfony2 and relies on deprecated APIs like YAML routing and `app/console` commands. Migrating it to newer Symfony versions would require a rewrite, replacing legacy components with modern equivalents like PHP attribute routing and Symfony’s asset mapper.
How do I handle timezone issues when loading events via AJAX?
The bundle doesn’t explicitly document timezone handling, but you’ll need to ensure your event data includes timezone-aware timestamps (e.g., `DateTime` objects with timezone set). For AJAX responses, return events in UTC or a consistent timezone, then let the frontend (FullCalendar) handle client-side adjustments using its `eventTimezone` or `eventSource` options.
Is FOSJsRoutingBundle mandatory, and what happens if I don’t use it?
Yes, FOSJsRoutingBundle is mandatory for exposing the AJAX route that loads calendar events. Without it, the calendar won’t fetch events dynamically. If you’re already using FOSJsRouting for other purposes, this adds minimal overhead. If not, you’ll need to install it via Composer and configure routing for the bundle.
How do I add custom event data beyond the default structure?
The bundle dispatches a `calendar.load_events` event, allowing you to attach custom data via event listeners. In your listener, modify the event object’s `events` property (an array of event data) to include additional fields. Ensure your frontend JavaScript (FullCalendar) is configured to handle these extra properties in the event rendering logic.
Will this bundle work with Webpack Encore for asset management?
No, this bundle relies on Symfony’s `assets:install` workflow, which conflicts with Webpack Encore’s modern asset pipeline. If you’re using Webpack, you’ll need to manually copy the FullCalendar assets to your `public` directory or fork the bundle to support Webpack configurations.
How do I test the calendar’s AJAX event loading in a CI environment?
Test the AJAX endpoint by calling the route exposed by FOSJsRouting (e.g., `/calendar/events`). Use tools like PHPUnit with HTTP clients (e.g., `symfony/browser-kit`) to simulate requests with start/end date parameters. Verify the response matches the expected JSON structure for FullCalendar events.
Can I use this bundle in a production environment with high-traffic event loads?
The bundle loads events client-side via AJAX, which can strain performance if you have thousands of events. Implement server-side pagination or filtering (e.g., only load events for visible date ranges) to avoid overwhelming the frontend. Consider caching event responses if your data changes infrequently.
What happens if multiple bundles dispatch events for the same calendar.load_events listener?
The bundle merges events from all listeners into a single array before returning them to the frontend. If conflicts arise (e.g., duplicate event IDs), ensure your listeners validate or deduplicate events. Test with realistic data to confirm no unintended overlaps occur during merging.
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity