Skip to Content
How-to guidesRun a mission on a schedule or event

Run a mission on a schedule or event

Put a mission on autopilot. A schedule launches it at fixed times: a dependency check every Monday at 09:00, a nightly triage of new issues. An event trigger launches it when something happens: a pull request merges to main, your monitoring tool sends an alert. Each launch is a normal run that you can follow, steer, and review.

Available when your administrator enables runs and deputies.

Before you start

  • You can manage the deputy: it is yours, you lead its team, or you are an admin.
  • The mission and the deputy are both active. A schedule or trigger fires only for an active mission on an active deputy. See Create a deputy and a mission.
  • For an event trigger: a webhook integration, such as GitHub, is installed for your organization. If the integration uses endpoints, an endpoint exists. See Create a webhook endpoint.

Add a schedule

  1. In the left rail, open Deputies, then the deputy.
  2. In the Missions card, open the mission’s row with its chevron. The Triggers section lists everything that can start the mission.
  3. Click Schedule (the button with the plus sign).
  4. Under Repeats, choose Every hour, Every day, Every week, or Every month. Then set the time, and the weekday or day of the month if asked. The default is every day at 09:00.
  5. Check the Timezone. It is required and starts on your browser’s timezone.
  6. Check Next fires. It previews the next three launch times.
  7. Choose the Catch-up rule, for when a fire time was missed:
    • skip: drop missed fires (the default)
    • once: run a single catch-up
  8. Optional: open standing instructions and write Standing instructions. Marshal adds them to the prompt on every scheduled launch.
  9. Click Create.

Need a custom pattern, such as weekdays only? Open Advanced: write the cron expression and enter a 5-field cron expression, for example 0 9 * * 1-5. Descriptors such as @daily also work.

A schedule supplies no inputs. Every input of the mission must be optional and have a default.

Add an event trigger

  1. Open the mission’s row and its Triggers section, as above.

  2. Click Event (the button with the plus sign).

  3. Under Source, choose the integration the events come from.

  4. If an Endpoint field is shown, choose the endpoint whose deliveries should launch the mission.

  5. Under Event, enter the event type, or click one of the events the integration declares. For example pull_request.closed, or issues.* for a whole family. A bare * matches every event.

  6. Optional: narrow it with When, a condition on the event. Leave it empty to launch on every matching event. Use Add a clause to build one for GitHub, with clauses such as “action is”, “targets main”, “was merged”, or “weekdays only”. You can also type an expression, for example:

    event.repository.full_name == "acme/api"
  7. Click Test against real events. It shows how many recent events would have launched the mission.

  8. Click Create.

The event trigger launches the mission without inputs. Write the prompt so it takes none, for example “Check the latest commit on main of acme/api and update the changelog.”

Pause, edit, or remove

Each schedule and trigger has its own row under Triggers, with Edit, Pause (or Resume), and a delete control. Pausing keeps the settings and stops the launches until you resume.

What you should see

  • A new row under Triggers. A schedule row shows the cron expression, the timezone, the catch-up rule, and the next fire time. A trigger row shows the event and its source, and “Launches only when” with your condition.
  • The toast “Schedule created” or “Event trigger created”.
  • When it fires, a new run on the Runs page. The Trigger column says schedule or webhook. Filter by Triggered by to see only these.
  • If a scheduled launch fails, the schedule row says so.

Next

Open the first scheduled run and steer it if it needs a nudge.