> ## Documentation Index
> Fetch the complete documentation index at: https://trigger-v3-fix-additional-files.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# cronTrigger()

> `cronTrigger()` is set as a [Job's trigger](/docs/sdk/job) to trigger a Job on a recurring schedule using a CRON expression.

## Development

<Snippet file="scheduled-dev-warning.mdx" />

## CRON expressions

CRON expressions are strings that define when something should happen.

Some examples:

* `"0 0 * * *"`: will run the Job every day at 12:00am UTC.
* `"30 14 * * 1"`: will run the Job every Monday at 2:30pm UTC.

A useful tool when writing CRON expressions is [crontab guru](https://crontab.guru).

## Parameters

<ResponseField name="options" type="object" required>
  <Expandable title="options" defaultOpen>
    <ResponseField name="cron" type="string" required>
      A CRON expression that defines the schedule. Note that the timezone used is always UTC.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```typescript 9am UTC everyday
  client.defineJob({
    id: "scheduled-job-1",
    name: "Scheduled Job 1",
    version: "0.1.1",
    // 9am every day
    trigger: cronTrigger({
      cron: "0 9 * * *",
    }),
    run: async (payload, io, ctx) => {
      await io.logger.info("Received the scheduled event", {
        payload,
      });

      return { foo: "bar" };
    },
  });
  ```

  ```typescript First day of month
  client.defineJob({
    id: "scheduled-job-2",
    name: "Scheduled Job 2",
    version: "0.1.1",
    // The first day of the month at 2am UTC
    trigger: cronTrigger({
      cron: "0 2 1 * *",
    }),
    run: async (payload, io, ctx) => {
      await io.logger.info("Received the scheduled event", {
        payload,
      });

      return { foo: "bar" };
    },
  });
  ```
</RequestExample>
