Cron Doctor · configuration analysis

Laravel scheduler checker

Check one Laravel scheduled task for supported timing, timezone, and lock settings. Inspect its configuration before setting up completion monitoring.

No signup needed for the checker. Need ongoing completion monitoring? Pro covers up to 50 jobs for $9.99/month, for one owner.

Open Cron Doctor

What you can check

  • Inspect supported static frequency calls and explicit task timezone.
  • Review withoutOverlapping and onOneServer configuration signals.
  • Identify visible runtime conditions and unsupported expressions without executing PHP.

What remains unknown

This does not boot Laravel or validate the whole application. Dynamic values, missing timezone, and runtime conditions can limit the report. Deployed cache locks, scheduler triggers, queue workers, and output correctness are not verified.

Synthetic example

Synthetic declaration for analysis only: backup is a placeholder command name. The checker cannot verify that it exists or creates a valid backup. The missing onOneServer finding matters only when your deployment runs multiple schedulers.

Schedule::command('backup')->daily()->timezone('UTC');

Your configuration is sent to PingCron for analysis. It is not saved and is never executed. A static report does not establish runtime health.

Official scheduler reference · Explore ongoing monitoring

A scheduler invocation does not prove your task completed

A heartbeat after schedule:run cannot establish that every due task succeeded. A queued job can be dispatched before a worker processes it. Monitor the result you depend on: a finished report, completed sync, or verified backup.

What to check when a Laravel scheduled task does not run

  • Timing: compare the declaration with php artisan schedule:list in the deployed application. An explicit timezone helps this static checker; it cannot load your application’s configuration.
  • Locks: withoutOverlapping uses cache locks. onOneServer requires a supported shared cache. Their presence in source does not establish deployed lock health or scheduler topology.
  • Runtime conditions: when, skip, environment restrictions, and maintenance mode can change whether due work runs. This checker does not evaluate your PHP conditions.
  • Execution: verify the deployed scheduler trigger, command logs, and queue workers. Confirm output correctness before sending success. Keep task failures separate from heartbeat-delivery failures.

Check the documentation for your installed version: Laravel scheduling reference. The checker supports selected static declarations; it does not boot Laravel, lint the whole application, or observe workers.

21–50 tasks to monitor? One owner pays $9.99/month.

PingCron Pro covers up to 50 monitors across your scheduled workloads. Keep Laravel running the tasks; send each monitor a check-in after its intended work completes. Email, Slack, Discord, and webhook alerts report missing signals beyond the configured grace period. PingCron does not run tasks, retry jobs, or identify the cause of a missed signal.

For 30 monitors and one user, monthly list prices are PingCron Pro $9.99, Healthchecks Business $20, and Cronitor Business $65. Healthchecks offers 20 free checks and 100 checks on Business, with SMS/WhatsApp and phone-call credits. Cronitor Business includes 12-month retention and SMS/on-call features. PingCron’s price advantage applies when its monitoring scope and alert channels meet your needs.

USD monthly rates checked October 17, 2026; taxes, discounts, and add-ons excluded. Sources: Healthchecks pricing · Cronitor pricing. Read the Healthchecks comparison or Cronitor comparison for plan differences.

Pro retains 30 days of data for daily reported-outcome summaries; the individual list shows the latest 100 receipts. These are monitoring records, not Laravel logs or proof of correct output. Pro has one owner. Shared account access starts on Team at $29/month.

No signup for analysis. Monitoring Free includes 5 monitors and 7-day history, with no credit card. Pro signup continues to checkout.

Start with one task and verify the complete path

Analyze the intended task, then use Protect this job in a supported report. Review the owning account, schedule, timezone, and grace period. Follow the Laravel completion-reporting setup to adapt your existing workload and private URL configuration. For queued work, report after the worker finishes the required processing, not merely after dispatch.

Confirm a real scheduled completion receipt and verify your alert destination. Test missed-run and recovery behavior on an isolated monitor. Allow for normal runtime, queue delay, and retries; coordinate planned pauses. Keep manual tests separate from production monitoring. A missing signal can also be a reporting or network failure.