Skip to content

Scheduler

The Scheduler runs any notebook on a cron expression — no separate orchestrator to deploy.

  1. Open Scheduler and create a new job.
  2. Pick the notebook to run and a cron expression for when it should fire.
  3. Optionally set a max_run_timeout_seconds so a stuck run doesn’t block the next one.

A job can be configured to run only after another job completes successfully — chain ingestion → transform → dashboard-refresh jobs without a separate DAG tool.

Every fire is recorded with the full cell code and output from that run, so you can debug a failure without re-running the notebook manually. A live countdown shows time until the next scheduled fire.

Every job also gets a webhook endpoint (POST /webhook/{token}) so external systems can trigger a run on demand, alongside the authenticated POST /{job_id}/run endpoint.

Org-level max_concurrent_jobs caps how many scheduled runs execute at once, so a burst of due jobs can’t overwhelm shared runtime capacity.

  • Dashboards to visualize what a scheduled job produced
  • ArrowLake for a good target table for scheduled writes