- How do I install andreia/filament-recurrence in a Laravel Filament panel?
- Install it with Composer using composer require andreia/filament-recurrence, then register the plugin in your PanelProvider. Publish the package config and assets as described in the README, and include the recurrence field in any Filament form schema. The typical stack is Laravel 10/11/12 with Filament, Livewire, Alpine and Tailwind on PHP 8.1+, so no new runtime or build tooling is introduced if you already run a Filament panel.
- Which Filament versions does this recurrence plugin support?
- The package is a Filament panel plugin, so its compatibility is tied to the Filament major version you run. Filament v3 to v4 involved meaningful API and asset-pipeline changes, and a plugin pinned to one major can block a panel upgrade. Check the README or composer.json for the explicit supported version matrix and pin the package version before committing to it in production.
- How should I store the recurrence rule in my database?
- The package does not dictate a schema, so the persistence format is yours to define and maintain. You typically persist the emitted RRULE string or a JSON blob in a column you control, alongside any timezone metadata you need. Decide this early, because if the serialized output becomes your de facto schema, swapping recurrence engines later means a data migration.
- Does Filament Recurrence expand recurrence rules into actual occurrence dates?
- This package is a presentation-layer form component, not a scheduling engine. Correctness of recurrence expansion, DST behavior, and EXDATE/RDATE handling is determined by the underlying RFC 5545 library it depends on. Confirm with the vendor whether occurrence expansion is exposed as a service; if it is form-only, evaluate rlanvin/php-rrule or simshaun/recurr directly and wrap expansion behind your own interface.
- How are timezones and daylight saving time handled in the recurrence field?
- Timezone semantics are not something a form field can decide for you, so you must choose whether rules are rule-local, UTC-normalized, or floating. DST transitions are one of the most common places recurrence implementations fail in production, usually months after launch. Store the timezone explicitly with the rule and test transitions around spring-forward and fall-back boundaries before shipping.
- Can I use Filament Recurrence for events, appointments, and reminders?
- Yes, that is exactly the intended use case: a user authoring a recurring schedule through an admin form. It lets users configure frequencies, intervals, weekdays, and end dates, then save the rule with your model for reuse and display. It fits best when the recurrence is human-authored in a Filament panel rather than machine-generated or rendered in a custom frontend.
- Is Filament Recurrence mature enough for production use?
- The project is small, with roughly 21 stars and a single maintainer, so a recent release signals activity but not long-term durability. That does not disqualify it, but it argues for pinning the version and abstracting the expansion engine behind an interface you own. Treat it as a UI convenience you can replace, not as the system of record for scheduling logic.
- How do I test recurrence rules for DST and month-end edge cases?
- Write tests that exercise rules crossing daylight saving transitions, plus month-end cases like the 31st of the month and February. Also cover BYSETPOS, COUNT versus UNTIL, and unbounded rules, since these are where recurrence code typically breaks. Because the package is UI-focused, the expansion tests belong against whichever RRULE library you standardize on.
- What are the alternatives to andreia/filament-recurrence?
- If you already run Filament and need a user-facing recurrence form, this plugin saves you building the UI yourself. If you do not run Filament, or only need to read and expand rules, use an RFC 5545 library such as rlanvin/php-rrule or simshaun/recurr directly instead of introducing a panel framework to get a form field. A custom Filament field backed by your preferred library is also a reasonable middle path.
- Will installing this plugin affect my future Filament upgrade path?
- Yes, major-version coupling is the highest technical risk with any Filament plugin. If the package is pinned to Filament v3 and you later move to v4, you may be blocked until the maintainer ships an update. Verify the supported matrix, check for a stated deprecation or upgrade policy, and keep the recurrence integration isolated so you can replace the field if needed.