Skip to content

Schedule a Job

The Snippbot Scheduler lets you run agent tasks on a recurring or one-time basis. You can define schedules using standard cron expressions, plain-English interval phrases, or a specific date and time. Jobs can be chained so that one triggers another, and conditional logic lets you skip runs based on dynamic criteria.


TypeDescriptionExample
cronStandard 5-field cron expression0 9 * * 1 (Mondays at 9am)
everyHuman-readable recurring intervalevery 30 minutes
atOne-time future execution2026-04-01T08:00:00Z
  • Parses both cron expressions and natural language schedules
  • Assigns each job to an agent and a goal (the instruction the agent follows)
  • Runs jobs in the background without blocking the UI
  • Automatically pauses a job after too many consecutive failures
  • Supports job chains (run job B after job A completes)
  • Evaluates only_if conditions before each run

  1. Open the Schedule page — click Schedule in the left sidebar of the Snippbot UI

  2. Click New Job — the job creation dialog opens from the top-right corner

  3. Choose a schedule type — select one of:

    • Cron — enter a standard 5-field cron expression
    • Interval — enter a natural language phrase such as every 2 hours
    • One-time — pick a specific date and time from the date picker
  4. Set the task

    • Agent — select which agent will execute the job from the dropdown
    • Goal — type the instruction the agent should follow each time the job runs (e.g. “Check for new GitHub issues labeled ‘bug’ and post a summary to Slack”)
  5. Configure advanced options (optional)

    • Job name — a human-friendly label for the job
    • Only run if — a condition expression that must be true before the job fires (see Conditions)
    • Chain to — another job to run immediately after this one succeeds (see Job Chains)
    • Enabled — toggle to start the job enabled or paused
  6. Review and save — click Save Job. The job appears in the Schedule page with its next scheduled run time.

All job management is done from the Schedule page in the sidebar. When creating a new job, fill in:

  • Name — a human-friendly label for the job
  • Prompt — the instruction the agent should follow each time the job runs
  • Schedule type — Cron, Interval, or One-time
  • Schedule value — the cron expression, interval phrase, or date/time

The agent defaults to “snipp” if not specified. You can view all existing jobs, their next run times, and run history directly from the Schedule page.


ExpressionMeaning
* * * * *Every minute
0 * * * *Every hour (on the hour)
0 9 * * *Every day at 9:00am
0 9 * * 1Every Monday at 9:00am
0 9 * * 1-5Weekdays at 9:00am
*/30 * * * *Every 30 minutes
0 0 1 * *First day of every month at midnight
0 6,18 * * *Every day at 6am and 6pm

Fields are in order: minute hour day-of-month month day-of-week.


Snippbot parses common English interval phrases for the every schedule type:

PhraseEquivalent cron
every minute* * * * *
every 5 minutes*/5 * * * *
every 30 minutes*/30 * * * *
every hour0 * * * *
every 2 hours0 */2 * * *
every day at 9am0 9 * * *
every Monday at 10am0 10 * * 1
every weekday at 8:30am30 8 * * 1-5
every Sunday at midnight0 0 * * 0

A job chain runs one job immediately after another completes successfully. This is useful for multi-step pipelines where the second job depends on output from the first.

To create a chain in the UI, set the Chain to field in the job creation dialog to the job that should run after completion.

To create a chain in the UI, set the Chain to field when creating or editing a job on the Schedule page. Select the job that should run after the current one completes successfully.


The only_if field accepts a condition expression evaluated before each run. If the condition is falsy, the run is skipped and counted as a no-op (not a failure).

ExpressionBehavior
env.MARKET_OPEN == "true"Only runs when the MARKET_OPEN env var is "true"
time.weekday in [1,2,3,4,5]Only runs on weekdays
time.hour >= 9 and time.hour < 17Only runs during business hours
file.exists("/tmp/trigger.flag")Only runs if a trigger file exists

If a job fails on consecutive runs, Snippbot automatically disables it to prevent runaway retry loops:

  • After 3 consecutive failures, the job is paused and enabled is set to false
  • A banner appears in the Schedule page indicating why the job was paused
  • Fix the underlying issue, then re-enable the job by clicking the Enable toggle next to the paused job in the Schedule page

Each job on the Schedule page shows its full configuration and run history. Click on any job to see all its details, including name, prompt, schedule, status, run history, and advanced options. The job detail view provides a comprehensive look at all configured fields.