[Yandex Cloud documentation](../../../../index.md) > [Yandex Serverless Integrations](../../../index.md) > [Step-by-step guides](../../index.md) > Workflows > Managing a workflow execution > Starting a workflow execution > On a timer

# Scheduling a workflow to start on a timer

You can add a schedule when [creating](../workflow/create-yawl.md) or [updating](../workflow/update.md) a workflow.


## Adding a schedule {#add-schedule}

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the folder containing the [workflow](../../../concepts/workflows/workflow.md).
  1. Navigate to **Serverless Integrations**.
  1. In the left-hand panel, click ![image](../../../../_assets/console-icons/graph-node.svg) **Workflows**.
  1. Click ![image](../../../../_assets/console-icons/ellipsis.svg) in the workflow row and select ![image](../../../../_assets/console-icons/pencil.svg) **Edit**.
  1. On the workflow diagram, click the **Start** section.
  1. Specify the schedule as a [cron expression](../../../concepts/cron.md) and select the time zone.
  1. Click **Save**.

- CLI {#cli}

  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../../cli/quickstart.md#install).

  The folder used by default is the one specified when [creating](../../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. View the description of the CLI command for updating a [workflow](../../../concepts/workflows/workflow.md):

      ```bash
      yc serverless workflow update --help
      ```

  1. Get a list of workflows:
     
     ```bash
     yc serverless workflow list
     ```
     
     Result:
     
     ```text
     workflows:
       - id: dfqdi6ic7c5j********
         folder_id: b1g681qpemb4********
         created_at: "2025-03-10T13:31:55.387059Z"
         name: workflow895
         status: ACTIVE
         log_options:
           folder_id: b1g681qpemb4********
       ...
       - id: dfqud9cbc4k5********
         folder_id: b1g681qpemb4********
         created_at: "2025-03-10T12:57:48.679682Z"
         name: workflow203
         status: ACTIVE
         log_options:
           folder_id: b1g681qpemb4********
     ```
  1. Add a schedule:

      ```bash
      yc serverless workflow update <workflow_name_or_ID> \
        --schedule-cron-expression "<cron_expression>" \
        --schedule-timezone "<time_zone>"
      ```

      Where:
      
      * `--schedule-cron-expression`: Cron expression, e.g., `"0 * * * * *"`. Learn more about the cron expression format [here](../../../concepts/cron.md).
      * `--schedule-timezone`: Time zone, e.g., `Europe/Moscow`.

      Result:

      ```text
      id: dfqai557kgv0********
      folder_id: b1g681qpemb4********
      specification:
        spec_yaml: ...
      created_at: "2025-09-19T09:11:38.826207Z"
      name: cron-flow
      status: ACTIVE
      log_options:
        folder_id: b1g681qpemb4********
      service_account_id: ajelprpohp7r********
      schedule:
        cron_expression: 0 * * * * *
        timezone: Europe/Moscow
      ```

- API {#api}

  Use the [Update](../../../workflows/api-ref/Workflow/update.md) REST API method for the [Workflows](../../../workflows/api-ref/Workflow/index.md) resource or the [workflow/Update](../../../workflows/api-ref/grpc/Workflow/update.md) gRPC API call. In the `schedule` field, provide the schedule and specify the time zone.

{% endlist %}


## Removing a schedule {#remove-schedule}

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the folder containing the [workflow](../../../concepts/workflows/workflow.md).
  1. Navigate to **Serverless Integrations**.
  1. In the left-hand panel, click ![image](../../../../_assets/console-icons/graph-node.svg) **Workflows**.
  1. Click ![image](../../../../_assets/console-icons/ellipsis.svg) in the workflow row and select ![image](../../../../_assets/console-icons/pencil.svg) **Edit**.
  1. On the workflow diagram, click the **Start** section.
  1. Remove the schedule.
  1. Click **Save**.

- CLI {#cli}

  1. View the description of the CLI command for updating a [workflow](../../../concepts/workflows/workflow.md):

      ```bash
      yc serverless workflow update --help
      ```

  1. Get a list of workflows:
     
     ```bash
     yc serverless workflow list
     ```
     
     Result:
     
     ```text
     workflows:
       - id: dfqdi6ic7c5j********
         folder_id: b1g681qpemb4********
         created_at: "2025-03-10T13:31:55.387059Z"
         name: workflow895
         status: ACTIVE
         log_options:
           folder_id: b1g681qpemb4********
       ...
       - id: dfqud9cbc4k5********
         folder_id: b1g681qpemb4********
         created_at: "2025-03-10T12:57:48.679682Z"
         name: workflow203
         status: ACTIVE
         log_options:
           folder_id: b1g681qpemb4********
     ```
  1. Remove a schedule:

      ```bash
      yc serverless workflow update <workflow_name_or_ID> \
        --remove-schedule
      ```

      Result:

      ```text
      id: dfqai557kgv0********
      folder_id: b1g681qpemb4********
      specification:
        spec_yaml: ...
      created_at: "2025-09-19T09:11:38.826207Z"
      name: cron-flow
      status: ACTIVE
      log_options:
        folder_id: b1g681qpemb4********
      service_account_id: ajelprpohp7r********
      ```

- API {#api}

  Use the [Update](../../../workflows/api-ref/Workflow/update.md) REST API method for the [Workflows](../../../workflows/api-ref/Workflow/index.md) resource or the [workflow/Update](../../../workflows/api-ref/grpc/Workflow/update.md) gRPC API call. In the `schedule` field, specify `null`.

{% endlist %}

#### Useful links {#see-also}

* [Workflow execution](../../../concepts/workflows/execution.md)
* [Getting a list of workflow executions](get-list.md)