Scheduling a VM instance to start and stop Stay organized with collections Save and categorize content based on your preferences.
Instance schedules let youstart and stop virtual machine (VM) instancesautomatically. To use instance schedules, create a resource policy detailingthe start and stop behavior, and then attach the policy to one or moreVM instances.
Using instance schedules to automate deployment of yourVM instances can help you optimize costs and manage VM instancesmore efficiently. You can use instance schedules for both recurringand one-off workloads. For example, use instance schedules to only runVM instances during working hours or to provide capacity for a onetime event.
To learn about other options for automatically scheduling VMs,see the following pages:
Scale based on schedules:If you run your workload on a managed instance group (MIG), you canuse scaling schedules to schedule the required number of virtual machine (VM)instances for recurring or onetime events.
Limit the run time of a VM:If you don't want to create resource policies, you can directly configure aVM to be automatically stopped or deleted when it reaches a specific time orduration.
Before you begin
- If you haven't already, set upauthentication. Authentication verifies your identity for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.For more information, seeAuthenticate for using REST in the Google Cloud authentication documentation.
Required roles
To use instance schedules, you need to grant the requiredIdentity and Access Management (IAM) roles to the following principals:
TheCompute Engine Service Agentfor your project. This is needed for the instance schedule to run on a VM.
If you revoke these permissions after creating instance schedules,your instance schedules might stop working without notice. To verify if yourinstance schedules run successfully, you should regularly check theaudit logs.
The user account or service account that creates, manages, or uses theinstance schedule.
Compute Engine Service Agent required roles
To ensure that the Compute Engine Service Agent has the necessary permissions to run instance schedule, ask your administrator to grant the Compute Engine Service Agent theCompute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM role on the project.Important: You must grant this role to the Compute Engine Service Agent,not to your user account. Failure to grant the role to the correct principal might result in permission errors. For more information about granting roles, seeManage access to projects, folders, and organizations.
This predefined role contains the permissions required to run instance schedule. To see the exact permissions that are required, expand theRequired permissions section:
Required permissions
The following permissions are required to run instance schedule:
compute.instances.startcompute.instances.stop
Your administrator might also be able to give the Compute Engine Service Agent these permissions withcustom roles or otherpredefined roles.
User or service account required roles
To ensure that you or your service account has the necessary permissions to create and manage instance schedules, ask your administrator to grant you or your service account theCompute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM role on your project or organization. For more information about granting roles, seeManage access to projects, folders, and organizations.
This predefined role contains the permissions required to create and manage instance schedules. To see the exact permissions that are required, expand theRequired permissions section:
Required permissions
The following permissions are required to create and manage instance schedules:
- Create an instance schedule:
compute.resourcePolicies.create - List an instance schedule:
compute.resourcePolicies.list - Describe an instance schedule:
compute.resourcePolicies.get - Delete an instance schedule:
compute.resourcePolicies.delete - Attach an instance schedule to a new VM:
compute.instances.createcompute.resourcePolicies.usecompute.instances.addResourcePolicies
- Attach an instance schedule to an existing VM:
compute.resourcePolicies.usecompute.instances.addResourcePolicies
- Remove an instance schedule from a VM:
compute.resourcePolicies.usecompute.instances.removeResourcePolicies
Your administrator might also be able to give you or your service account these permissions withcustom roles or otherpredefined roles.
Limitations
- You can only attach an instance schedule to VM instances that are locatedin the same region as the instance schedule.
- You can't use instance schedules to stop an instance that has Local SSD disks.
- Each VM instance can only follow one instance schedule, but you can attacheach instance schedule to up to 1,000 VM instances.
- Instance schedules don't provide capacity guarantees, so if the resourcesrequired for a scheduled VM instance are not available at the scheduledtime, your VM instance might not start when scheduled. Although you canreserve VM instances beforestarting them to obtain a high level of assurance that your capacity isavailable when needed, reservations can't be automatically scheduled.
- Instance schedules only start and stop VM instances at the specified times,but you can manually start and stop VM instances at any time. For example,suppose you have a schedule that starts daily at 8 AM and stops daily at 5 PM.If you attach that schedule to a stopped VM instance at 4 PM, that VM instancedoes not start until 8 AM the next day unless you manually start theVM instance before then.
- Scheduled VM instances might take up to 15 minutes past the scheduled timeto begin a start or stop operation. If you need VM instances to startor stop at a specific time, schedule the operation 15 minutes earlierthan needed, and schedule each operation at least 15 minutes apart.
- The scheduler might fail if there is a gap of less than 15 minutes between thestart and stop operations. This is because the stop operation might occur beforethe start operation, preventing the start operation from happening.
- Each instance schedule lets you have up to one start operation andup to one stop operation per hour.
- To modify an instance's schedule, use a patch operation on the InstanceSchedule policy.
Managing instance schedules
Create, list, describe, and delete instance schedules using theGoogle Cloud console, Google Cloud CLI, or Compute Engine API.
Creating an instance schedule
Create an instance schedule that describes when your VM instances shouldautomatically start or stop. The instance schedule that you create is aresource policy, which you can use by attaching or removing it fromVM instances.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.
Note: If you don't see this option,create a VM instancefirst.ClickCreate schedule.TheCreate a schedule pane opens.
Enter aName.
In theRegion drop-down menu, select the location for thisinstance schedule.
Define when the instance schedule starts and stops any attached VMinstances. If you need VM instances to start or stop at a specific time,schedule the operation 15 minutes earlier than needed. Make sure eachstart and stop operation are at least 15 minutes apart.
Use either the defaultStart time,Stop time,andFrequency fields or, if you want to configure a more complexschedule, usecron expressions.
Default fields:
- Enter aStart time, aStop time, or both.
- In theStart time field, type or clickto select the time to start VM instances.
- In theStop time field, type or clickto select the time to stop VM instances.
- In theFrequency drop-down menu at the bottom of the pane,select how often theStart time andStop time repeat.
- Enter aStart time, aStop time, or both.
Cron expressions:
- To enable cron expressions, click theUse CRON expressiontoggle at the top of the pane.
- Enter aStart CRON expression,Stop CRON expression, or both.
- In theStart CRON expression field, enter a cron expressionthat describes when to start VM instances.
- In theStop CRON expression field, enter a cron expressionthat describes when to stop VM instances.
In theTime zone drop-down menu, select the time zone for theStart time andStop time.
Optional: In theInitiate date field, type or click toselect the date and time whenyou want this instance schedule to begin. If omitted, the schedule iseffective immediately.
Optional: In theEnd date field, type or click toselect the date and time whenyou want this instance schedule to end. If omitted, the scheduleis effective indefinitely.
ClickSubmit.
gcloud
To create an instance schedule using the gcloud CLI, use thegcloud compute resource-policies create instance-schedule command:
gcloud compute resource-policies create instance-scheduleSCHEDULE_NAME \ --region=REGION \ [--vm-start-schedule='START-OPERATION_SCHEDULE'] \ [--vm-stop-schedule='STOP-OPERATION_SCHEDULE'] \ [--timezone=TIME_ZONE] \ [--initiation-date=INITIATION_DATE] \ [--end-date=END_DATE]
Replace the following:
- SCHEDULE_NAME: the name of the new instanceschedule.
- REGION: the region where the VM instances that youwant to attach to this instance schedule are located.
- Specify at least one of the following:
- START-OPERATION_SCHEDULE: a schedule thatdescribes when the attached VM instances are started, formatted as acron expression. If you need VM instances to start at a specific time,schedule the operation 15 minutes earlier than needed. For moreinformation, seestart-operation schedule.
- STOP-OPERATION_SCHEDULE: a schedule thatdescribes when the attached VM instances are stopped, formatted asa cron expression. If you need VM instances to stop at a specifictime, schedule the operation 15 minutes earlier than needed.For more information, seestop-operation schedule.
- TIME_ZONE: Optional: the location-basedIANA time zone for this instance schedule. If omitted, the default value
UTCis used. For more information, seetime zone. - INITIATION_DATE: Optional: the first date thatinstance schedule is effective, formatted as anRFC 3339 timestamp. If omitted, the schedule is effective immediately.For more information, seeinitiation date.
- END_DATE: Optional: the last date thatinstance schedule is effective, formatted as anRFC 3339 timestamp. If omitted, the schedule is effective indefinitely.For more information, seeend date.
REST
To create an instance schedule using the Compute Engine API, make arequest using theresourcePolicies.insert method:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies{ "name": "SCHEDULE_NAME", "instanceSchedulePolicy": { "vmStartSchedule": { "schedule": "START-OPERATION_SCHEDULE" }, "vmStopSchedule": { "schedule": "STOP-OPERATION_SCHEDULE" }, "timeZone": "TIME_ZONE", "startTime":"INITIATION_DATE", "expirationTime":"END_DATE" }}Replace the following:
- PROJECT: yourproject id.
- REGION: the region where the VM instancesthat you want to attach to this instance schedule are located.
- SCHEDULE_NAME: the name of the newinstance schedule.
- START-OPERATION_SCHEDULE orSTOP-OPERATION_SCHEDULE: Specify at least oneof the following:
- START-OPERATION_SCHEDULE: a schedule thatdescribes when the attached VM instances are started, formatted as acron expression. If you need VM instances to start at a specifictime, schedule the operation 15 minutes earlier than needed.For more information, seestart-operation schedule.
- STOP-OPERATION_SCHEDULE: a schedule thatdescribes when the attached VM instances are stopped, formatted asa cron expression. If you need VM instances to stop at a specifictime, schedule the operation 15 minutes earlier than needed.For more information, seestop-operation schedule.
- TIME_ZONE: the location-based IANA time zonefor this instance schedule. For more information, seetime zone.
- INITIATION_DATE: Optional: the first date thatinstance schedule is effective, formatted as anRFC 3339 timestamp. If omitted, the schedule is effective immediately.For more information, seeinitiation date.
- END_DATE: Optional: the last date thatinstance schedule is effective, formatted as anRFC 3339 timestamp. If omitted, the schedule is effective indefinitely.For more information, seeend date.
Each instance schedule has the following settings:
- start-operation schedule, stop-operation schedule
Schedules that describe when the instance schedule starts and stops any attached VM instances. An instance schedule can have one of these schedules or both.
When creating instance schedules using the Google Cloud console, you can either select aStart time,Stop time, andFrequency or format each schedule as acron expression. When creating instance schedules using the gcloud CLI or Compute Engine API, you must format each schedule as a cron expression.
The following table defines the fields of a cron expression and the supported values for each field.
Note: Operation schedules repeat every year unless you specify an initiation date and end date. In addition to these values, every field in a cron expression can also use the following special characters.Minute Hour Day of the month Month Day of the week 0-59 0-23 1-31 where 29-31 are only effective for relevant months
1-12 0-6 or SUN-SAT(Sunday-Saturday)where 0=
SUN, 1=MON, … 6=SATSpecial character Meaning Example *any If the day-of-the-month field, month field, and day-of-the-week field are all set to *, the schedule repeats every day.-range If the day-of-the-week field is set to MON-FRI(or1-5), the schedule repeats every week Monday through Friday.,list If the month field is set to 1-6,8-12, the schedule repeats every month except July.When you write a cron expression, consider the following:
- Whitespace is used to separate the fields of a cron expression. Remember to not add extra whitespace in a field that is using special characters.
- When you specify both a day of the week and a day of the month (when neither field is set to
*), the schedule uses the union of these values, not the intersection. For example, the schedule0 8 1 * MONstarts at 8 AM on every Monday and on the first day of every month. That schedule doesnot start at 8 AM only on Mondays that are also the first day of the month.
- time zone
The location-based IANA time zone for the start-operation schedule and stop-operation schedule. TheIANA time zone database defines alist of available values. This time zone is used as reference for only the start-operation and stop-operation schedules—it is not used for the initiation date and end date. The time zone is optional when using the gcloud CLI or Compute Engine API. If omitted, the default value
UTCis used.Some IANA time zones observedaylight saving time (DST), which can impact your instance schedules. The details of DST—such as when DST starts and ends, as well as how much time is skipped and repeated—vary according to each time zone.
Note: When DST begins and ends, instance schedules have the following behavior:
- Operations that are scheduled during the period when DST begins, and time is skipped, are still executed but with an offset. For example, if an operation is scheduled for 2:15 AM but DST skips the 2 AM hour, the operation for that day begins at 3:15 AM instead. This skipped time might cause your VM instances to run for less time than they would have otherwise. If the skipped time causes a start operation and stop operation to be scheduled at the same time, the stop operation is prioritized and the start operation is ignored.
- Operations that are scheduled during the period when DST ends, and time is repeated, are executed at the first occurrence of that time. This repeated time might cause your VM instances to run for more time than they would have otherwise.
- initiation date, end date
The timeframe that the instance schedule is effective. Both values are optional. Operations repeat annually unless you specify these values to limit the schedule to a single year.
When creating instance schedules using the Google Cloud console, select a date, time, and time zone using theInitiate date andEnd date fields.
When creating instance schedules using the gcloud CLI or Compute Engine API, these values are formatted as anRFC 3339 timestamp:
YYYY-MM-DDTHH:MM:SSOFFSET
Replace the following:
- YYYY-MM-DD: a date formatted as a 4-digit year, 2-digit month, and 2-digit day of the month separated by hyphens.
- HH:MM:SS: a time formatted as a 2-digit hour using 24-hour time, 2-digit minute, and 2-digit second separated by colons.
- OFFSET: the time zone formatted as an offset of Coordinated Universal Time (UTC). For example, Pacific Standard Time (PST), which is 8 hours earlier than UTC, is written as
-08:00. Alternatively, to use no offset (the UTC time zone), writeZ.
Listing instance schedules
List instances schedules to view all existing instance schedules foryour project.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.This displays a list of all the instance schedules for this project.
gcloud
To view a list of all of your resource policies, includinginstance schedules, using the gcloud CLI, use thegcloud compute resource-policies list command.Optionally, to restrict the results to a specific region,include the--filter flag.
gcloud compute resource-policies list \ [--filter="region:(REGION)"]
Replace the following:
- REGION: Optional: the region where theinstance schedules that you want to list are located.
REST
To view a list of all your resource policies, includinginstance schedules, in a specific region using theCompute Engine API, make a request using theresourcePolicies.list method:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
Replace the following:
- PROJECT: yourproject id.
- REGION: the region where theinstance schedules that you want to list are located.
Describing an instance schedule
Describe an instance schedule to view its description, timing, operations,and a list of all of the VM instances that it is attached to.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.This displays a list of all the instance schedules for this project.
Click the name of the instance schedule that you want to describe.This opens theInstance schedules details page for that schedule.
gcloud
To describe an instance schedule using thegcloud CLI, use thegcloud compute resource-policies describe command:
gcloud compute resource-policies describeSCHEDULE_NAME \ --region=REGION
Replace the following:
- SCHEDULE_NAME: the name of theinstance schedule that you want to describe.
- REGION: the region where the instance schedule islocated.
The output is similar to the following:
...description: Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM....instanceSchedulePolicy: expirationTime: '2022-12-31T23:59:59Z' startTime: '2022-01-01T00:00:00Z' timeZone: UTC vmStartSchedule: schedule: 0 8 * * MON-FRI vmStopSchedule: schedule: 0 17 * * MON-FRI...name: example-instance-scheduleregion: https://www.googleapis.com/compute/v1/projects/example-project/regions/us-west1resourceStatus: instanceSchedulePolicy: nextRunStartTime: '2022-01-03T08:00:00Z'...status: READY
REST
To describe an instance schedule using the Compute Engine API,make a request using theresourcePolicies.get method:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME
Replace the following:
- PROJECT: yourproject id.
- REGION: the region where theinstance schedule is located.
- SCHEDULE_NAME: the name of theinstance schedule that you want to describe.
The output is similar to the following:
{ ... "description": "Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.", "name": "example-instance-schedule", "instanceSchedulePolicy": { "vmStartSchedule": { "schedule": "0 8 * * MON-FRI" }, "vmStopSchedule": { "schedule": "0 17 * * MON-FRI" }, "timeZone": "UTC", "startTime": "2022-01-01T00:00:00Z", "expirationTime": "2022-12-31T23:59:59Z" }, "status": "READY", "resourceStatus": { "instanceSchedulePolicy": { "nextRunStartTime": "2022-01-03T08:00:00Z" } }, ...}Deleting an instance schedule
Delete an instance schedule when you no longer need it by removing anyattached VM instances and deleting the resource policy.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.This displays a list of all the instance schedules for this project.
Select the checkboxes for the instance schedules that you want to delete.
ClickDeleteat the top of the page. This opens a new dialog to confirm this action.
In the dialog, clickDelete.
gcloud
- If this instance schedule is attached to any VM instances, remove them.
- To check which VM instances this schedule is attached to,describe the instance schedule.
- For each VM instance that this schedule is attached to,remove the instance schedule.
To delete an instance schedule usingthe gcloud CLI, use the
gcloud compute resource-policies deletecommand:gcloud compute resource-policies deleteSCHEDULE_NAME \ --region=REGION
Replace the following:
- SCHEDULE_NAME: the name of theinstance schedule that you want to delete.
- REGION: the region where the instance scheduleis located.
REST
- If this instance schedule is attached to any VM instances, remove them.
- To check which VM instances this schedule is attached to,describe the instance schedule.
- For each VM instance that this schedule is attached to,remove the instance schedule.
To delete an instance schedule using the Compute Engine API,make a request using the
resourcePolicies.deletemethod:DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME
Replace the following:
- PROJECT: yourproject id.
- REGION: the region wherethe instance schedule is located.
- SCHEDULE_NAME: the name of theinstance schedule that you want to delete.
Using instance schedules with VM instances
To use an instance schedule, attach it to one or more VM instances that youwant to follow that schedule. You can attach an instance schedule to anexisting VM instance or while creating a new VM instance. To stop a VM instancefrom following an attached instance schedule, remove the schedule fromthat VM instance.
Attaching an instance schedule while creating a new VM instance
To attach an instance schedule to a new VM instance, you must create the VMinstance in the same region as the instance schedule that you use.Learn more aboutcreating a VM instance.
Console
You cannot attach an instance schedule while creating an instanceusing the Google Cloud console. To use the Google Cloud consoleto attach an instance schedule to a new VM instance,create a VM instance,and thenattach a schedule to the VM instance.
gcloud
To attach an instance schedule to a VM instanceusing the gcloud CLI, use thegcloud compute instances create commandwith the--resource-policies flag. For example, to create aVM instance from a public image with an attached instance schedule, usethe following command:
gcloud compute instances createVM_NAME \ --resource-policies=SCHEDULE_NAME \ --zone=ZONE \ [--imageIMAGE | --image-familyIMAGE_FAMILY] \ [--image-projectIMAGE_PROJECT]
Replace the following:
- VM_NAME: the name of theVM instance that you want to attach an instance schedule to.
- SCHEDULE_NAME: the name of theinstance schedule that you want to attach.
- ZONE: the zone where your VM instance is located.
- Optional: create a VM instance from a public image:
- IMAGE orIMAGE_FAMILY: Specify one of the following:
- IMAGE: the required version of apublic image. For example,
--image debian-10-buster-v20200309. - IMAGE_FAMILY: animage family. Thiscreates the VM from the most recent, non-deprecated OS image. Forexample, if you specify
--image-family debian-10,Compute Engine creates a VM from the latest version of theOS image in the Debian 10 image family. - IMAGE_PROJECT: theprojectcontaining the image.
REST
To attach an instance schedule to a VM instance using theCompute Engine API, make a request usinginstances.insert methodand include theresourcePolicies attribute. For example, to create aVM instance from a public image with an attached instance schedule, make thefollowing request:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "resourcePolicies": [ "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME" ]}Replace the following:
- PROJECT_ID: the ID of the project to create the VMin.
- ZONE: the zone to create the VM in.
- MACHINE_TYPE_ZONE: the zone containing the machinetype to use for the new VM.
- MACHINE_TYPE: the machine type,predefinedorcustom,for the new VM.
- VM_NAME: thename of the newVM.
- Optional: create a VM instance from a public image:
- IMAGE_PROJECT: theprojectcontaining the image. For example, if you specify
family/debian-10as the image family, specifydebian-cloudas the image project. - IMAGE orIMAGE_FAMILY:specify one of the following:
- IMAGE: the required version of apublic image. For example,
"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309" - IMAGE_FAMILY: animage family. Thiscreates the VM from the most recent, non-deprecated OS image. Forexample, if you specify
"sourceImage": "projects/debian-cloud/global/images/family/debian-10",Compute Engine creates a VMfrom the latest version of the OS image in the Debian 10 imagefamily.
- IMAGE_PROJECT: theprojectcontaining the image. For example, if you specify
- REGION: the region where theinstance schedule is located.
- SCHEDULE_NAME: the name of theinstance schedule that you want to attach.
You can verify if the instance schedule runs successfully by checking theaudit logs for the instance scheduleresource policy and the attached VM instance. You might need to wait for upto 15 minutes after the scheduled time for each operation.
Attaching an instance schedule to an existing VM instance
You can attach an instance schedule to any existing VM instance that is locatedin the same region as the instance schedule.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.This displays a list of all the instance schedules for this project.
Click the name of the instance schedule that you want to attach.TheInstance schedule details page opens.
ClickAdd instances to schedule. TheAdd instances to schedulepane opens.
Select the checkbox for each VM instance that you want to attach thisschedule to.
ClickAdd.
gcloud
To attach an instance schedule to a VM instanceusing the gcloud CLI, use thegcloud compute instances add-resource-policies command:
gcloud compute instances add-resource-policiesVM_NAME \ --resource-policies=SCHEDULE_NAME \ --zone=ZONE
Replace the following:
- VM_NAME: the name of theVM instance that you want to attach an instance schedule to.
- SCHEDULE_NAME: the name of theinstance schedule that you want to attach.
- ZONE: the zone where your VM instance is located.
REST
To attach an instance schedule to a VM instance using theCompute Engine API, make a request using theinstances.addResourcePolicies method:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/addResourcePolicies{ "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"}Replace the following:
- PROJECT: yourproject id.
- ZONE: the zone whereyour VM instance is located.
- VM_NAME: the name of theVM instance that you want to attach an instance schedule to.
- REGION: the region where theinstance schedule is located.
- SCHEDULE_NAME: the name of theinstance schedule that you want to attach.
You can verify if the instance schedule runs successfully by checking theaudit logs for the instance scheduleresource policy and the attached VM instance. You might need to wait for upto 15 minutes after the scheduled time for each operation.
Removing an instance schedule from a VM instance
To stop a VM instance from following an instance schedule, remove the instanceschedule from the VM instance.
Console
In the Google Cloud console, go to theVM instances page.
Click theInstance schedules tab at the top of the page.A list of all the instance schedules for this project is displayed.
Click the name of the instance schedule that you want remove.TheInstance schedule details page opens.
Under theAttached Instances section, select the checkbox foreach VM instance that you want to remove from this schedule.
ClickRemove instances from schedule. This opens a new dialog to confirmthis action.
In the dialog, clickRemove.
gcloud
To remove an instance schedule from a VM instanceusing the gcloud CLI, use thegcloud compute instances remove-resource-policies command:
gcloud compute instances remove-resource-policiesVM_NAME \ --resource-policies=SCHEDULE_NAME \ --zone=ZONE
Replace the following:
- VM_NAME: the name of theVM instance that you want to remove an instance schedule from.
- SCHEDULE_NAME: the name of theinstance schedule that you want to remove.
- ZONE: the zone where your VM instance is located.
REST
To remove an instance schedule from a VM instance using theCompute Engine API, make a request using theinstances.removeResourcePolicies method:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/removeResourcePolicies{ "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"}Replace the following:
- PROJECT: yourproject id.
- ZONE: the zone where yourVM instance is located.
- VM_NAME: the name of theVM instance that you want to remove an instance schedule from.
- REGION: the region where theinstance schedule is located.
- SCHEDULE_NAME: the name of theinstance schedule that you want to remove.
What's next
- Learn about other Compute Engine features for scheduling VMs:
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-15 UTC.