Guides / Moving from schedule:

Guides

Moving from schedule:

Switch an existing scheduled workflow over without running it twice, and how to switch back.

The change

Replace the schedule: block with workflow_dispatch: plus a marker holding the same cron. Keep your other triggers as they are.

Before
on:
  push:
    branches: [main]
  schedule:
    - cron: "0 3 * * *"
After
on:
  push:
    branches: [main]
  workflow_dispatch:
  # cronkick: "0 3 * * *"

Remove schedule:

If both stayed, GitHub would run its own scheduled copy too, and the job would run twice. So Cronkick marks such a workflow Needs a fix and doesn’t send it until schedule: is gone.

From the dashboard

Your dashboard lists every workflow still on schedule:, with the exact lines to change and a link to edit the file on GitHub. If a cron runs faster than your plan allows, it offers a version that fits.

To leave a workflow on GitHub’s scheduler, choose Keep it on GitHub. It moves to a hidden list, and you can show it again any time.

Check what the workflow reads

A dispatched run has github.event_name == 'workflow_dispatch' and no github.event.schedule. If a step relies on either, see Compatibility checks.

Go back to GitHub’s scheduler

Your workflows keep workflow_dispatch:, so leaving takes one commit per workflow. If Cronkick is down there is no automatic fallback, so this is also what to do if you can’t wait for it.

  1. Put the cron from the marker back under schedule:. A marker with tz= becomes a timezone: line; without one, both run in UTC.
  2. Delete the # cronkick line in the same commit, and push to the default branch.
  3. When every workflow is moved, uninstall the GitHub App (or remove the repositories from it) in your GitHub settings.
Before
on:
  workflow_dispatch:
  # cronkick: "0 9 * * 1-5" tz=Europe/Berlin
After
on:
  workflow_dispatch:
  schedule:
    - cron: "0 9 * * 1-5"
      timezone: "Europe/Berlin"

Don’t keep both

Remove the marker in the same commit that adds schedule:. Both together would run the job twice, so while the app is installed Cronkick stops sending a workflow that has both and marks it Needs a fix.