directorytree/cadence
Cadence adds model-based scheduling to Laravel. Attach one or more cron or RRULE schedules to any Eloquent model, track due runs, and dispatch events when schedules trigger. Driver-based design supports cron, php-rrule, Recurr, or custom drivers.
Campaign every Monday at 9 AM"), reducing reliance on static cron jobs or external services.Subscription, Invoice, User), enabling granular control over when actions occur.ScheduleTriggered events, enabling async processing (e.g., queue jobs, send emails) and observability.php-rrule or Recurr) allows for advanced scheduling (e.g., "every 3rd Friday of the month" or "last day of the month").php-rrule behavior).Adopt if:
User, Order, or Campaign instances).schedules:run command in your deployment pipeline.Look elsewhere if:
Schedule facade or server cron is sufficient.schedules:run command.For Executives:
"Cadence is a model-based scheduling system for Laravel that lets us automate time-sensitive workflows (e.g., reports, notifications, analyses) directly within our application—without relying on external services or manual cron jobs. For example, we could schedule a ‘generate invoice’ action to run automatically every month for a Subscription model, or send a reminder to users at 9 AM in their local timezone. This reduces operational overhead, improves reliability, and unlocks dynamic, user-specific automation. It’s low-risk: open-source (MIT license), actively maintained, and integrates seamlessly with our existing Laravel stack. The payoff? Fewer manual processes, fewer missed deadlines, and the ability to scale automation as our business grows."
For Engineering: *"Cadence replaces ad-hoc cron jobs with a model-aware, event-driven scheduler. Here’s why it’s a fit for us:
Report::find(1)->addSchedule()), enabling granular control over when actions fire.php-rrule or Recurr) for complex recurrence (e.g., ‘every 3rd Friday’ or ‘last day of the month’).ScheduleTriggered (e.g., dispatch jobs, send emails), decoupling scheduling from business logic.php-rrule behavior).
Tradeoffs:schedules:run Artisan command (run every minute via Laravel’s scheduler).Campaign’) rather than global system tasks."*For Product Managers: *"Cadence enables us to build scheduling directly into our product’s features without relying on external tools or manual processes. For example:
Client or Project models.How can I help you explore Laravel packages today?