### Pub/Sub target

If you choose the **Pub/Sub** target type:

<br />

1. Specify the name of the topic to which the job will publish. This is a
   Pub/Sub topic that you have already set up in your project.

2. Specify a message to be sent to the topic. This is sent as the `data`
   parameter within the Pub/Sub message. For an example that does
   this, see the [Quickstart](https://docs.cloud.google.com/scheduler/docs/schedule-run-cron-job.md.txt).

3. Add any message attributes you need.

4. Set up any additional configuration using the `Configure optional settings`
   section.

Cloud Scheduler will publish messages to this topic as a Google APIs
service account.
<button class="devsite-dialog-close">OK</button>

### App Engine HTTP target

If you choose the **App Engine HTTP** target type, you must use the App Engine app and the region associated with the current project. If you want to use some other App Engine app outside of your current project, choose **HTTP** as the target, not **App Engine HTTP** . The target firewall rules must allow requests from the [0.1.0.2/32 IP range](https://docs.cloud.google.com/appengine/docs/standard/understanding-firewalls.md.txt#allowing_incoming_requests_from_your_services).

<br />

Set the form as follows:

1. In the **Target type** list, select **App Engine HTTP**.

2. Specify the name of the App Engine service that is running the
   handler for the Cloud Scheduler job. If omitted, the `default`
   service is assumed. If you want to set it, you can find the service names in the
   [Google Cloud console](https://console.cloud.google.com/appengine/services).

3. Optionally, specify the version. If left unset, the currently serving version
   is used. You can find available versions in the
   [Google Cloud console](https://console.cloud.google.com/appengine/versions).

4. Optionally, specify the instance. If left unset, any available instance can
   be used. You can find available versions in the
   [Google Cloud console](https://console.cloud.google.com/appengine/instances).

5. Specify the relative URL of the App Engine endpoint that the job
   will contact. If you use the default value `/`, then the job will use
   `PROJECT-ID.appspot.com` where `PROJECT-ID` is your current project ID.

   > [!NOTE]
   > **Note:** If you are not using the default service the target URL displayed in the Google Cloud console UI is of the form `SERVICE.PROJECT-ID.r.appspot.com/*`. The same URL displayed in your terminal window using the CLI is of the form `https://SERVICE-dot-PROJECT-ID.r.appspot.com/`. The two forms are equivalent.

6. Set the HTTP method you want to use when the job executes. The default is
   `POST`.

7. Add any headers you need to the request.

8. Optionally, specify the body data to be sent to the target. This data
   is sent in the body of the request as bytes when either the
   `POST` or `PUT` HTTP method is selected.

Targeted App Engine endpoints must be in the same project and can be
secured with `login: admin` on the `handlers` element in the
[`app.yaml`](https://docs.cloud.google.com/appengine/docs/standard/python/config/appref#handlers_login) file.
<button class="devsite-dialog-close">OK</button>

### HTTP target

If you choose the **HTTP** target type:

<br />

1. Specify the fully qualified URL of the endpoint the job will contact.

2. Specify the HTTP method. The default is `POST`.

3. Optional: Specify the data to be sent to the target. This data is sent in
   the body of the request as bytes when either the `POST` or `PUT` HTTP method is
   selected.

4. Optional: Add any headers you need. If your target endpoint requires an API
   key in the header, use the header name that your target service expects, such as
   `x-api-key` or `X-Goog-Api-Key`. Using `api_key` as a header name can result in
   authentication failures.

5. To create an HTTP target job that requires authentication, see
   [Use authentication with HTTP targets](https://docs.cloud.google.com/scheduler/docs/http-target-auth.md.txt).

Targeted HTTP endpoints must be publicly accessible.

> [!NOTE]
> **Note:** When using an HTTP target, Cloud Scheduler might report a request failed error even though the target successfully returned. This can happen when there is a mismatch between the timeout settings of the target service and that of Cloud Scheduler. See the [Job](https://docs.cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1.md.txt#google.cloud.scheduler.v1.Job) description for setting the `attempt_deadline` field.

<button class="devsite-dialog-close">OK</button>

You can use Cloud Scheduler to set up scheduled units of work, known
as *cron jobs* , that are sent to [targets](https://docs.cloud.google.com/scheduler/docs/overview.md.txt) on some
recurring [schedule](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt), also
called the job interval or frequency.

Only a single instance of a job should be run at any time. In rare
circumstances, it's possible for multiple instances of the same job to be
requested. As a result, your request handler should be
[idempotent](https://wikipedia.org/wiki/Idempotence), and your code should
ensure that there are no harmful side effects if this occurs.

If a job is still running or waiting for a response from its target, other
scheduled runs of the job are skipped until the current run finishes or times
out. For more information, see
[Subsequent job executions aren't starting](https://docs.cloud.google.com/scheduler/docs/troubleshooting.md.txt#stuck-executions).

> [!NOTE]
> **Note:** Cloud Scheduler provides [headers](https://docs.cloud.google.com/scheduler/docs/reference/rest/v1/projects.locations.jobs.md.txt#httptarget) that can help with job request deduplication, making the request handler idempotent. You can uniquely identify a job request using the `X-CloudScheduler-JobName` and `X-CloudScheduler-ScheduleTime` headers. The `X-CloudScheduler-ScheduleTime` header contains the original scheduled invocation time and remains constant across retry attempts. For further guidance and examples, see [Deduplicate job requests](https://docs.cloud.google.com/scheduler/docs/configuring/deduplicate-job-requests.md.txt).

Cloud Scheduler is intended for repeating jobs. If you need to run a
job only once, consider using [Cloud Tasks](https://docs.cloud.google.com/tasks), which can schedule
a task up to 30 days in advance.

## Before you begin

Make sure you have [set up your environment](https://docs.cloud.google.com/scheduler/docs/setup.md.txt) for
Cloud Scheduler.

## Choose a target type

Cloud Scheduler can invoke the following types of targets:

- HTTP endpoints

- [Pub/Sub](https://docs.cloud.google.com/pubsub) topics

- [App Engine](https://docs.cloud.google.com/appengine) services

### Invoke target services that are restricted to internal ingress

Cloud Scheduler can invoke the following services internally:

- Cloud Run functions
- Cloud Run (on the `run.app` URL, not on custom domains)

To invoke these targets internally, the target must be in the same
Google Cloud project or VPC Service Controls perimeter as your
Cloud Scheduler job.

To learn more about securing targets by restricting ingress, see
[Restricting ingress](https://docs.cloud.google.com/run/docs/securing/ingress.md.txt) (for
Cloud Run) and
[Configuring network settings](https://docs.cloud.google.com/functions/docs/networking/network-settings) (for
Cloud Run functions).

## Create a job

You can create a job using either the Google Cloud console or the Google Cloud CLI.

### Console

1. In the Google Cloud console, go to the **Cloud Scheduler** page.

   [Go to Cloud Scheduler](https://console.cloud.google.com/cloudscheduler)
2. Click **Create job**.

3. In the **Name** field, provide a name for the job that is unique to the
   project.

   After you delete its associated job, you can re-use a job name in a
   project.
4. In the **Region** list, select a region.

   If you are using an App Engine HTTP target, you must choose the same
   region as your App Engine app. For more information, see
   [Supported regions by target](https://docs.cloud.google.com/scheduler/docs/overview.md.txt#supported_regions_by_target).
5. Optional: Supply a brief description of the job, such as a reminder of
   what the job does.

   This description appears in the console next to the job name.
6. Specify the [frequency](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt)
   at which the job is to run, using a configuration string.

   For example, the string `0 1 * * 0` runs the job once a week at 1 am
   every Sunday morning. The string you supply here can be any
   [unix-cron](https://en.wikipedia.org/wiki/Cron) compatible
   string. For more information, see
   [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).
7. In the **Timezone** list, choose the timezone to be used for the job
   schedule.

8. Click **Continue**.

9. Specify the **Target type**:

   - [HTTP](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#)

   - [Pub/Sub](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#): you must
     specify the name of the Pub/Sub topic that you have
     already set up in your project and to which the job will publish.

   - [App Engine HTTP](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#):
     you must use the App Engine app and the region associated with
     the current project.

10. Click **Continue**.

11. Optional: To configure any retry behavior, click
    **Configure optional settings**. To specify duration, use a sequence of
    decimal non-negative integers with the following unit suffixes:

    - h - hour
    - m - minute
    - s - second
    - ms - millisecond
    - us - microsecond
    - ns - nanosecond

    Negative and fractional values are not allowed. The `Max retry duration`
    field supports only `h` ,`m`, and `s` values. Both `Min backoff duration`
    and `Max backoff duration` support the full set.
12. Optional: For HTTP and App Engine HTTP targets, configure a
    deadline for job attempts. If the request handler does not respond by this
    deadline, the request is cancelled and the attempt is marked as failed.
    Cloud Scheduler retries the job according to the retry config.

13. To create and save the job, click **Create**.

    The job will now run at the specified frequency.

### gcloud

When you create a job using the gcloud CLI, you use different
commands for each [target](https://docs.cloud.google.com/scheduler/docs/overview.md.txt) type:

### HTTP

You can send a request to any HTTP or HTTPS endpoint. Targeted HTTP
endpoints must be publicly accessible.

```bash
gcloud scheduler jobs create http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location for your job to run in.

- `SCHEDULE`: frequency, or job
  interval, at which the job is to run, for example, `every 3 hours`. The
  string you supply here can be
  any [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).
- `URI`: the fully qualified URI of the endpoint
  the job will contact.

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/create/http):

- Optional: Specify the HTTP method. The default is `POST`.

- Optional: Specify the data to be sent to the target. This data is
  sent in the body of the request as bytes when either the `POST` or `PUT`
  HTTP method is selected.

- Optional: Use the `--headers` flag to include HTTP request headers. If
  your target endpoint requires an API key in the header, use the header
  name that your target service expects, such as `x-api-key` or
  `X-Goog-Api-Key`. Using `api_key` as a header name can result in
  authentication failures.

- Optional: Set the retry values, which specify how the App Engine
  job is to be retried in case of failure. In most cases, the defaults will
  be sufficient.

- To create an HTTP Target job that requires authentication, see
  [Using Authentication with HTTP Targets](https://docs.cloud.google.com/scheduler/docs/http-target-auth.md.txt).

#### Example

```bash
gcloud scheduler jobs create http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET
```

> [!NOTE]
> **Note:** When using an HTTP target, Cloud Scheduler might report a request failed error even though the target successfully returned. This can happen when there is a mismatch between the timeout settings of the target service and that of Cloud Scheduler. See the [Job](https://docs.cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1.md.txt#google.cloud.scheduler.v1.Job) description for setting the `attempt_deadline` field.

### Pub/Sub

You must use a Pub/Sub topic that you have already set up
in your project. Cloud Scheduler will publish messages to
this topic as a Google API service account.

```bash
gcloud scheduler jobs create pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location for your job to run in.

- `SCHEDULE`: frequency, or job
  interval, at which the job is to run, for example, `every 3 hours`. The
  string you supply here can be any
  [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).
- `TOPIC`: the name of the topic to which the job
  will publish. Use the `--message-body` or `--message-body-from-file` flag,
  to specify a message to be sent to the topic. This is sent as the `data`
  parameter within the Pub/Sub message. For an example that does
  this, see the [quickstart](https://docs.cloud.google.com/scheduler/docs/schedule-run-cron-job-gcloud.md.txt).

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/create/pubsub).

#### Example

```bash
gcloud scheduler jobs create pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic \
    --message-body "Hello"
```

### App Engine HTTP

The `App Engine HTTP` target is available only for the App Engine
app associated with the current project. If you want to use some other
App Engine app outside of your current project, choose `HTTP` as
the target, not `App Engine HTTP`. The target firewall rules must
allow requests from the [0.1.0.2/32 IP range](https://docs.cloud.google.com/appengine/docs/standard/understanding-firewalls.md.txt#allowing_incoming_requests_from_your_services).

App Engine endpoints can be secured with `login: admin` on the
`handlers` element in the `app.yaml` file.

```bash
gcloud scheduler jobs create app-engine \
    --JOB=JOB \
    --location=LOCATION \
    --schedule=SCHEDULE
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location for your job to run in.
  This must be the same as the location of your App Engine app.

- `SCHEDULE`: frequency, or job interval, at which
  the job is to run, for example, `every 3 hours`. The string you supply
  here can be any
  [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/create/app-engine):

- Specify the relative URL of the App Engine endpoint that the
  job will contact. If you use the default value `/`, then the job will use
  `PROJECT-ID.appspot.com` where `PROJECT-ID` is your current project ID.

- Specify the name of the App Engine service that is running
  the handler for the Cloud Scheduler job. If omitted, the `default`
  service is assumed. If you want to set it, you can find the service names
  in the [Google Cloud console](https://console.cloud.google.com/appengine/services).

- Optional: Set the HTTP method you want to use when the job executes.
  The default is `POST`.

- Optional: Specify the version. If left unset, the currently serving
  version is used. You can find available versions in the
  [Google Cloud console](https://console.cloud.google.com/appengine/versions).

- Optional: Specify the instance. If left unset, any available instance
  can be used. You can find available versions in the
  [Google Cloud console](https://console.cloud.google.com/appengine/instances).

- Optional: Specify the data to be sent to the target. This data is sent
  in the body of the request as bytes when either the `POST` or `PUT` HTTP
  method is selected.

- Optional: Set the retry values, which specify how the App Engine
  job is to be retried in case of failure. In most cases, the defaults are
  sufficient.

#### Example

```bash
gcloud scheduler jobs create app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"
```

> [!NOTE]
> **Note:** If you are not using the default service the target URL returned to your terminal window is of the form `https://SERVICE-dot-PROJECT-ID.r.appspot.com/`. The same URL displayed in the Google Cloud console UI is of the form `SERVICE.PROJECT-ID.r.appspot.com/*`. The two forms are equivalent.

## Edit a job

You can edit the configuration of a job.

### Console

1. In the Google Cloud console, go to the **Cloud Scheduler** page.

   [Go to Cloud Scheduler](https://console.cloud.google.com/cloudscheduler)
2. Select the job to edit.

3. Click **Edit**.

4. Follow the steps to define the schedule, configure the execution, and
   configure optional settings when [creating a job](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#create).

### gcloud

When you edit a job using the gcloud CLI, you use different
commands for each [target](https://docs.cloud.google.com/scheduler/docs/overview.md.txt) type:

### HTTP

You can send a request to any HTTP or HTTPS endpoint. Targeted HTTP
endpoints must be publicly accessible.

```bash
gcloud scheduler jobs update http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location that your job runs in.
  If you don't specify the location, the gcloud CLI will use
  your default location. If the job you want to edit is in a different
  location, you must specify the location in addition to the
  `NAME` in order for your job to be identified. You cannot
  update the job location.

- `SCHEDULE`: frequency, or job
  interval, at which the job is to run, for example, `every 3 hours`. The
  string you supply here can be
  any [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).
- `URI`: the fully qualified URI of the endpoint
  the job will contact.

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/update/http).

#### Example

```bash
gcloud scheduler jobs update http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET
```

> [!NOTE]
> **Note:** When using an HTTP target, Cloud Scheduler might report a request failed error even though the target successfully returned. This can happen when there is a mismatch between the timeout settings of the target service and that of Cloud Scheduler. See the [Job](https://docs.cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1.md.txt#google.cloud.scheduler.v1.Job) description for setting the `attempt_deadline` field.

### Pub/Sub

You must use a Pub/Sub topic that you have already set up
in your project. Cloud Scheduler will publish messages to
this topic as a Google API service account.

```bash
gcloud scheduler jobs update pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location that your job runs in.
  If you don't specify the location, the gcloud CLI will use
  your default location. If the job you want to edit is in a different
  location, you must specify the location in addition to the
  `NAME` in order for your job to be identified. You cannot
  update the job location.

- `SCHEDULE`: frequency, or job interval, at which
  the job is to run, for example, `every 3 hours`. The string you supply
  here can be any
  [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).
- `TOPIC`: the name of the topic to which the job
  will publish. Use the `--message-body` or `--message-body-from-file` flag
  to specify a message to be sent to the topic. This is sent as the `data`
  parameter within the Pub/Sub message. For an example that does
  this, see the [quickstart](https://docs.cloud.google.com/scheduler/docs/schedule-run-cron-job-gcloud.md.txt).

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/update/pubsub).

#### Example

```bash
gcloud scheduler jobs update pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic --message-body "Hello"
```

### App Engine HTTP

The `App Engine HTTP` target is available only for the App Engine
app associated with the current project. If you want to use some other
App Engine app outside of your current project, choose `HTTP` as
the target, not `App Engine HTTP`.

App Engine endpoints can be secured with `login: admin` on the
`handlers` element in the `app.yaml` file.

```bash
gcloud scheduler jobs update app-engine JOB \
    --location=LOCATION \
    --schedule=SCHEDULE
```

Replace the following:

- `JOB`: a job name that must be unique in the
  project. Note that you cannot re-use a job name in a project even if you
  delete its associated job.

- `LOCATION`: the location that your job runs in
  (this is the same as the location of your target App Engine app).
  If you don't specify the location, the gcloud CLI will use
  your default location. If the job you want to edit is in a different
  location, you must specify the location in addition to the
  `NAME` in order for your job to be identified. You cannot
  update the job location.

- `SCHEDULE`: frequency, or job interval, at which
  the job is to run, for example, `every 3 hours`. The string you supply
  here can be any
  [unix-cron](http://man7.org/linux/man-pages/man5/crontab.5.html)
  compatible string. Although we no longer recommend its use, the legacy
  [App Engine cron syntax](https://docs.cloud.google.com/appengine/docs/standard/python/config/cronref)
  is still supported for existing jobs.

  For more information, see
  [Configure cron job schedules](https://docs.cloud.google.com/scheduler/docs/configuring/cron-job-schedules.md.txt).

Other parameters are described in the
[gcloud command line reference](https://docs.cloud.google.com/sdk/gcloud/reference/scheduler/jobs/update/app-engine).

#### Example

```bash
gcloud scheduler jobs update app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"
```

> [!NOTE]
> **Note:** If you are not using the default service the target URL returned to your terminal window is of the form `https://SERVICE-dot-PROJECT-ID.r.appspot.com/`. The same URL displayed in the Google Cloud console UI is of the form `SERVICE.PROJECT-ID.r.appspot.com/*`. The two forms are equivalent.

## Pause a job

You can pause the execution of a job.

### Console

1. In the Google Cloud console, go to **Cloud Scheduler**.

   [Go to Cloud Scheduler](https://console.cloud.google.com/cloudscheduler)
2. Select the job to pause.

3. Click **Pause**.

### gcloud

1. Open a terminal window on the machine where you installed the
   gcloud CLI.

2. Run the command:

   ```bash
    gcloud scheduler jobs pause MY_JOB
   ```

   Replace `MY_JOB` with the name of the job to pause.

While a job is paused, you can also [edit](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#edit) it. After editing the job, it
remains paused until you resume it.

## Resume a job

You can resume the execution of a paused job.

### Console

1. In the Google Cloud console, go to **Cloud Scheduler**.

   [Go to Cloud Scheduler](https://console.cloud.google.com/cloudscheduler)
2. Select the job to resume.

   The job must be already [paused](https://docs.cloud.google.com/scheduler/docs/creating.md.txt#pause).
3. Click **Resume**.

### gcloud

1. Open a terminal window on the machine where you installed the
   gcloud CLI.

2. Run the command:

   ```bash
    gcloud scheduler jobs resume MY_JOB
   ```

   Replace `MY_JOB` with the name of the job to resume.

## Delete a job

You can delete a job.

### Console

1. In the Google Cloud console, go to **Cloud Scheduler**.

   [Go to Cloud Scheduler](https://console.cloud.google.com/cloudscheduler)
2. Select the job to delete.

3. Click **Delete**.

### gcloud

1. Open a terminal window on the machine where you installed the
   gcloud CLI.

2. Run the command:

   ```bash
    gcloud scheduler jobs delete MY_JOB
   ```

   Replace `MY_JOB` with the name of the job to be
   deleted.