Scheduled cron jobs for Workflows
Sep 30, 2025 by

Jon Samp
Scheduling workflows allows you to automate routine tasks like building and submitting your app on a regular cadence. This eliminates the need to manually trigger builds and submissions, so that you can do things like have your biweekly production builds already submitted to the app stores by the time you arrive at work.

How to schedule workflows
Use the on.schedule.cron
trigger in your workflow configuration with unix-cron syntax:
name: Example cron job trigger workflowon:push:branches: ["main"]schedule:- cron: "0 9 1-7,15-21 * 1" # Runs every two weeks on Monday at 9 AM GMTjobs:# ... Your workflow jobs here
See our workflow examples for pre-made configurations for core app development use cases.
Scheduling considerations
Scheduled workflows have several important characteristics to keep in mind:
- Default branch only: Scheduled workflows run exclusively on the default branch of your repository, typically
main
- GMT timezone: All scheduled workflows execute in Greenwich Mean Time (GMT)
- Multiple schedules: A single workflow can have multiple cron schedules for different timing requirements
- High load delays: During peak usage times, particularly at the start of each hour, scheduled workflows may experience delays
- Idempotent design: In rare cases, jobs may be skipped or run multiple times, so make sure your workflows handle repeated execution gracefully
Common scheduling patterns
You can use crontab guru to generate and validate cron expressions. Here are some useful patterns:
0 0 * * *
- Daily at midnight GMT0 9 * * 1
- Every Monday at 9 AM GMT0 0 1,15 * *
- Twice monthly on the 1st and 15th at midnight GMT0 6 * * 1-5
- Weekdays at 6 AM GMT
Wrap up
Scheduling your deployment workflows means your builds and submissions can be processed automatically during off hours. When you arrive at work, your latest app version is already built and submitted, ready for you to release through the app store consoles. Schedules remove some of the toil around repeated tasks, like releasing to the app stores, or running nightly end-to-end tests.
Learn more about the scheduled job syntax on our docs.