tkachikov/chronos
Chronos is a lightweight Laravel package that brings convenient time and date utilities to your application. It offers a clean, framework-friendly API for common temporal operations, making time handling simpler, more expressive, and consistent with Laravel conventions.
Install the package with Composer, publish the Chronos config/provider assets as documented, clear config cache, and open the Chronos panel route. First place to look is config/chronos.php: confirm chronos.system_commands, test-command settings, and PHP binary overrides. A good first use case is scheduling one of your own Laravel commands from the panel, e.g. App\Console\Commands\SyncOrders, and running it once from the UI. App commands and Chronos commands are allowed by default; vendor/artisan commands are not.
'system_commands' => [
'cache:clear',
'queue:restart',
\Some\Vendor\Package\Commands\ImportCommand::class,
],
Update any existing Chronos schedules that reference commands which are now blocked; those schedules are skipped until allowlisted.schedule:run for infrastructure-level scheduling. Chronos is most useful for ad hoc runs, visibility, and command metrics.CHRONOS_TEST_COMMANDS=true if you need chronos:test, chronos:answer, chronos:dd, etc. Otherwise test commands only appear in local.CHRONOS_PHP_BINARY if the panel runs under FPM/container PHP but the CLI php differs.SIGTERM themselves, Chronos preserves that handling; otherwise killed real-time runs are marked killed. Use this for graceful shutdown and queue-worker style commands.Authorize middleware is enabled, publish the Chronos provider/config as required. Without it the panel can return 403 rather than a useful authorization error.cache:clear or queue:restart will not run until listed in chronos.system_commands.local; stage/prod panels will not show them unless CHRONOS_TEST_COMMANDS=true.php from PATH. In containers, CI, or mixed FPM/CLI setups, set CHRONOS_PHP_BINARY explicitly.killed state. If you rely on custom signal handling, verify it still behaves as expected.cache.serializable_classes = false; upgrade rather than working around cache serialization.403 with Authorize enabled usually means the Chronos provider/config was not published. Check provider registration before debugging policies.illuminate/support now requires ^10.0|^11.0|^12.0|^13.0; Laravel 9 apps must stay on an older Chronos release.How can I help you explore Laravel packages today?