# Properties

Documentation owner: product `control`; documentation version: `next`.
Source: `content/products/control/next/modules/schedules/properties.md` at commit `eaf7a020437971baeee95e87eaf963636040ac71`.

## Scheduler module properties

| Name | Description | Default value | Mandatory |
| --- | --- | --- | --- |
| name | Must be `Scheduler`. | N/A | Yes |
| jobs | Array of job definitions. In Control, this is normally loaded with `@include_as_array:schedules/*/schedule.json`. | N/A | Yes |

## Schedule job properties

| Name | Description | Default value | Mandatory |
| --- | --- | --- | --- |
| id | Technical id of the schedule. The management UI creates this automatically and uses it as the directory name. | Generated | Yes |
| display_name | Human-readable name shown in the management UI. | Uses `id` | No |
| description | Description for the schedule. | Empty | No |
| category | Optional category used to group schedules in the management UI sidebar. | Empty | No |
| type | Job type. The management UI currently uses `NoOp` and `Pipes`. | `Pipes` for newly created schedules | Yes |
| schedule | Quartz cron expression or a supported preset alias. | Configured by the UI before save | Yes |
| enabled | Controls whether the Scheduler registers the job. When `false`, the schedule does not run, including at service start. | `true` | No |
| run_on_start | If `true`, the job is executed when the service starts while the schedule is enabled. | `false` | No |
| params | Type-specific parameters. | Empty object | No |

## Pipes job parameters

When <code>type</code> is <code>Pipes</code>, the following parameters are used inside <code>params</code>:

| Name | Description | Default value | Mandatory |
| --- | --- | --- | --- |
| params.pipes | Array of pipe ids to execute. | Empty array | Yes |
| params.parallel | If `true`, multiple pipes are executed in parallel. | `false` | No |
| params.params | Optional free-form parameter object stored with the schedule. | Empty object | No |

## Example

```json
{
  "id": "20260320_101500",
  "display_name": "Daily synchronization",
  "description": "Runs every morning",
  "category": "Integrations/Daily",
  "type": "Pipes",
  "schedule": "0 0 9 * * ?",
  "enabled": true,
  "run_on_start": false,
  "params": {
    "pipes": [
      "20260320_101500_pipe",
      "20260320_101700_pipe"
    ],
    "parallel": true,
    "params": {
      "target": "all"
    }
  }
}
```

## Quartz cron syntax

The `schedule` property can use a custom Quartz cron expression in the following format:

```text
seconds minutes hours day-of-month month day-of-week
```

For detailed examples, see [Quartz cron examples](/products/control/next/modules/schedules/quartz-cron-examples/).

<details>
<summary>Predefined schedules available in the management UI</summary>

The UI provides common presets such as:

- Every minute
- Every 5 minutes
- Every 15 minutes
- Every 30 minutes
- Every hour
- Every day at midnight
- Every day at noon
- Every week (Sunday midnight)

Custom Quartz cron expressions are also supported. Existing configurations may still use legacy aliases such as <code>EVERY_HOUR</code>, <code>EVERY_5_MINUTES</code>, and <code>EVERYDAY_AT_MIDNIGHT</code>.

</details>
