---
title: Scheduled cron jobs for Workflows
authors: Jon Samp
published: September 30, 2025
---

## How to schedule workflows

Use the `on.schedule.cron` trigger in your workflow configuration with unix-cron syntax:

```yaml
name: Example cron job trigger workflow

on:
  push:
    branches: ["main"]
  schedule:
    - cron: "0 9 1-7,15-21 * 1" # Runs every two weeks on Monday at 9 AM GMT

jobs:
  # ... Your workflow jobs here
```

See our [workflow examples](https://docs.expo.dev/eas/workflows/examples/introduction/) 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](https://crontab.guru) to generate and validate cron expressions. Here are some useful patterns:

- `0 0 * * *` - Daily at midnight GMT
- `0 9 * * 1` - Every Monday at 9 AM GMT
- `0 0 1,15 * *` - Twice monthly on the 1st and 15th at midnight GMT
- `0 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](https://docs.expo.dev/eas/workflows/syntax/#onschedulecron).