Skip to content

Schedule

Schedule on the Laravel tab lists the tasks from the app’s scheduler as a table, soonest first:

Column Shows
in Time until the next run: now, 45s, 12m, 3h 20m
next run Date and time of the next run
expression The cron expression
task The command or job, or the description you gave it
flags no overlap, one server, background, in maintenance: the task’s withoutOverlapping(), onOneServer(), runInBackground() and evenInMaintenanceMode()
timezone The task’s timezone

The tasks are read from the booted app, so they match what schedule:run would do on that server.

Key Action
enter The task in full
t Run the task now
r Read the schedule again. The cursor stays on its row

t runs the task under the cursor once, the way the scheduler runs it, with:

Terminal window
php artisan schedule:test --no-interaction --name='<task>'

A confirmation shows the exact command first. The output streams live, and the task’s schedule does not change.

The task is found by its name: a command by its command line without php artisan, an exec task by its command, a job or closure by its description. So:

  • a closure or job without a ->description() cannot be run from here. The screen asks you to give it one;
  • two tasks with the same name are refused, since schedule:test cannot tell them apart. Give one of them a ->description().

schedule:test --name needs Laravel 9 or newer. Before that, artisan refuses the option, so nothing runs by mistake.