> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create schedule

> Create a recurring schedule that starts a task, a workflow or an agent on a cron expression, or, on REST and GraphQL only, activate a schedule declared in source (the MCP tool creates manual schedules only); returns the schedule: a new schedule is active, and a source schedule that was activated before keeps its current status.

`createSchedule(projectReference: String!, input: CreateScheduleInput!): Schedule!`

Requires project.runs.write.

## Arguments

| Argument | Type | Required |
| - | - | - |
| `projectReference` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Yes |
| `input` | [`CreateScheduleInput!`](https://veryfront.com/docs/cloud/graphql/types/createscheduleinput) | Yes |

## Input fields

### input

[`CreateScheduleInput`](https://veryfront.com/docs/cloud/graphql/types/createscheduleinput)

| Field | Type | Required | Description |
| - | - | - | - |
| `name` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Yes | |
| `target` | [`ScheduleTargetInput!`](https://veryfront.com/docs/cloud/graphql/types/scheduletargetinput) | Yes | |
| `schedule` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Yes | The cron expression. |
| `timezone` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | IANA time zone name. |
| `runtimeTargetKind` | [`RuntimeTargetKind`](https://veryfront.com/docs/cloud/graphql/types/runtimetargetkind) | No | |
| `runtimeTargetEnvironmentId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | |
| `runtimeTargetBranchId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | |
| `config` | [`JSON`](https://veryfront.com/docs/cloud/graphql/types/json) | No | JSON object passed to each run. |
| `timeoutSeconds` | [`Int`](https://veryfront.com/docs/cloud/graphql/types/int) | No | |
| `backoffLimit` | [`Int`](https://veryfront.com/docs/cloud/graphql/types/int) | No | |
| `concurrencyPolicy` | [`ScheduleConcurrencyPolicy`](https://veryfront.com/docs/cloud/graphql/types/scheduleconcurrencypolicy) | No | |
| `maxRuns` | [`Int`](https://veryfront.com/docs/cloud/graphql/types/int) | No | Null for no limit. |
| `definitionSource` | [`ScheduleDefinitionSource`](https://veryfront.com/docs/cloud/graphql/types/scheduledefinitionsource) | No | manual (default), or source to activate a source schedule, which requires sourceTriggerId, sourcePath and sourceHash. |
| `sourceTriggerId` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | |
| `sourcePath` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | |
| `sourceHash` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | |

## Response

Returns [`Schedule!`](https://veryfront.com/docs/cloud/graphql/types/schedule). Open the type for its fields and nested types.

| Field | Type | Description |
| - | - | - |
| `id` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `projectId` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `name` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | |
| `status` | [`ScheduleStatus!`](https://veryfront.com/docs/cloud/graphql/types/schedulestatus) | |
| `target` | [`ScheduleTarget!`](https://veryfront.com/docs/cloud/graphql/types/scheduletarget) | |
| `schedule` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | The cron expression. |
| `timezone` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | |
| `runtimeTargetKind` | [`RuntimeTargetKind!`](https://veryfront.com/docs/cloud/graphql/types/runtimetargetkind) | |

[All fields of `Schedule`](https://veryfront.com/docs/cloud/graphql/types/schedule).

Types marked with `!` cannot be null. Lists use `[Type]` notation. The [type index](https://veryfront.com/docs/cloud/graphql/schema.md) lists all published input and response types.

## Example

```graphql title="query.graphql" theme={null}
mutation CreateSchedule($projectReference: String!, $input: CreateScheduleInput!) {
  createSchedule(projectReference: $projectReference, input: $input) {
    id
    projectId
    name
    status
    createdAt
  }
}
```

```json title="variables.json" theme={null}
{
  "projectReference": "example-project",
  "input": {
    "name": "Nightly report",
    "target": {
      "kind": "task",
      "id": "nightly-report"
    },
    "schedule": "0 2 * * *"
  }
}
```

<details>
  <summary>Try this mutation</summary>

  Calls use `https://api.veryfront.com/graphql`. Replace sample values with resources you can access. See [Authentication](https://veryfront.com/docs/cloud/authentication.md) for credentials and permissions.

  Bearer token or API key

  Stored in this tab's session. Clear credential

  Mutation

  Variables (JSON)
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.