Create a future reservation request in calendar mode

This document explains how to create a future reservation request in calendarmode to reserve GPU, H4D, or TPU resources for your virtual machine (VM)instances. Use these requests to obtain high-demand resources for creating VMsthat you plan to run for up to 90 days.

You can use future reservation requests in calendar mode to reserve resources torun the following workloads:

  • Model pre-training jobs

  • Model fine-tuning jobs

  • High performance computing (HPC) simulation workloads

  • Short-term increases in inference workloads

After Google Cloud approves your request, your reserved resources becomeavailable for you to create GPU, H4D, or TPU VMs on your specified delivery dateand time. For the duration of your reservation period, only your project, andany projects that you specify when you create the request, have access to thereserved resources. You can share the reserved resources with up to 100 projectsthat are within the same organization as your project. To learn more about therequirements and limitations that you apply when you create a request incalendar mode, seeFuture reservation requests in calendar mode overview.

Important: You can reserve up to 80 GPU VMs or 256 H4D VMs in a singlerequest in calendar mode. To reserve more than the maximum number of VMs or toreserve the resources for longer than 90 days, contact youraccount team or thesales team.

Before you begin

Required roles

To get the permissions that you need to create a future reservation request in calendar mode, ask your administrator to grant you theCompute Future Reservation User (roles/compute.futureReservationUser) IAM role on the project. For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the permissions required to create a future reservation request in calendar mode. To see the exact permissions that are required, expand theRequired permissions section:

Required permissions

The following permissions are required to create a future reservation request in calendar mode:

  • To create a future reservation request: compute.futureReservations.create on the project
  • To let Compute Engine automatically create reservations: compute.reservations.create on the project
  • To view the availability of resources on a future date: compute.advice.calendarMode on the project

You might also be able to get these permissions withcustom roles or otherpredefined roles.

Create a future reservation request in calendar mode

To create a future reservation request in calendar mode, complete the followingsteps:

  1. View resource future availability. View future availability for the GPUVMs, H4D VMs, or TPUs that you want to reserve. Then, when you create arequest, specify the number, type, and reservation duration of the resourcesthat you confirmed as available. Google Cloud is more likely to approve yourrequest if you supply this information.

    Note: If you create a request by using the Google Cloud console, then skip thisstep. You can view GPU VM, H4D VM, or TPU future availability while youcreate the request.

    For instructions, seeView resource future availability.

  2. Create a reservation request. Create and submit a future reservationrequest in calendar mode for GPU VMs, H4D VMs, or TPUs. If you cansuccessfully create a request, then Google Cloud approves it within aminute.

    For instructions, seeCreate a request for GPU VMs, H4D VMs, or TPUs.

View resource future availability

Preview — View future availability for GPU VMs, H4D VMs, or TPUs

This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of theService Specific Terms. Pre-GA features are available "as is" and might have limited support. For more information, see thelaunch stage descriptions.

You can view future availability for GPU VMs, H4D VMs, or TPUs in a region asfollows:

  • For GPU or H4D VMs, up to 60 days in advance

  • For TPUs, up to 120 days in advance

To view GPU VM, H4D VM, or TPU future availability in a region, select one ofthe following options:

Console

You can view GPU VM, H4D VM, or TPU future availability in a region when youcreate a future reservation request in calendar mode. For more information,seeCreate a request for GPU VMs, H4D VMs, or TPUs in thisdocument.

gcloud

To view GPU VM, H4D VM, or TPU future availability in a region, use thegcloud beta compute advice calendar-mode command.Based on the resources that you want to view, include the following flags:

  • To view GPU VM or H4D VM availability, include the--vm-count and--machine-type flags:

    gcloud beta compute advice calendar-mode \--vm-count=NUMBER_OF_VMS \--machine-type=MACHINE_TYPE \    --region=REGION \    --start-time-range=from=FROM_START_TIME,to=TO_START_TIME \    --end-time-range=from=FROM_END_TIME,to=TO_END_TIME
  • To view TPU availability, include the--chip-count and--tpu-versionflags:

    gcloud beta compute advice calendar-mode \--chip-count=NUMBER_OF_CHIPS \--tpu-version=TPU_VERSION \    --region=REGION \    --start-time-range=from=FROM_START_TIME,to=TO_START_TIME \    --end-time-range=from=FROM_END_TIME,to=TO_END_TIME

Replace the following:

  • NUMBER_OF_VMS: the number of VMs to reserve. Thevalue must be at least1 and no greater than80 for GPU VMs or256 for H4D VMs.

  • MACHINE_TYPE: the GPU or H4D machine type to reserve.Specify one of the following values:

    • For A4 machine types:a4-highgpu-8g

    • For A3 Ultra machine types:a3-ultragpu-8g

    • For A3 Mega machine types:a3-megagpu-8g

    • For A3 High machine types with 8 GPUs:a3-highgpu-8g

    • For H4D HPC machine types: SeeH4D machine types

  • NUMBER_OF_CHIPS: the number of TPU chips to reserve.The value must be1,4,8,16,32,64,128,256,512,or1024.

  • TPU_VERSION: the TPU version to reserve. Specify oneof the following values:

    • For TPU7x:TPU7X

    • For TPU v6e:V6E

    • For TPU v5p:V5P

    • For TPU v5e:V5E

    If you specify a TPU v5e, then you must include the--workload-type flag.Set this flag to the type of workloads that you want to run on the TPUs:

  • REGION: the region where to reserve GPU VMs, H4D VMs,or TPUs. To check which regions and zones are supported, seeLimitations.

  • FROM_START_TIME andTO_START_TIME:the earliest and latest dates that you want to reserve capacity on.Format these dates as RFC 3339 timestamps:

    YYYY-MM-DDTHH:MM:SSOFFSET

    Replace the following:

    • YYYY-MM-DD: a date formatted as a four-digityear, two-digit month, and a two-digit day, separated by hyphens(-).

    • HH:MM:SS: a time formatted as a two-digit hourusing a 24-hour time, two-digit minutes, and two-digit seconds,separated by colons (:).

    • OFFSET: the time zone formatted as an offset ofCoordinated Universal Time (UTC).For example, to use the Pacific Standard Time (PST), specify-08:00. To use no offset, specifyZ.

  • FROM_END_TIME andTO_END_TIME: theearliest and latest dates that you want your capacity reservation to endon. Format these dates as RFC 3339 timestamps. If you want to specify arange of durations for your reservation period instead of end times,then replace the--end-time-range flag with the--duration-range flag.

The output is similar to the following:

- recommendationsPerSpec:    spec:endTime: '2026-02-10T00:00:00Z'location: zones/us-central1-a      otherLocations:        zones/us-central1-b:          details: Recommendation in this zone is possible.          status: RECOMMENDED        zones/us-central1-c:          details: Temporarily no free capacity in this zone in the          requested time window.          status: NO_CAPACITY        zones/us-central1-f:          details: This machine family is not supported in this zone.          status: NOT_SUPPORTED      recommendationId: 0d3f005d-f952-4fce-96f2-6af25e1591eb      recommendationType: FUTURE_RESERVATIONstartTime: '2026-02-07T00:00:00Z'

If your requested resources are available, then the output contains thestartTime,endTime, andlocation fields. These fields specify theearliest start time, the latest end time, and the zones when resources areavailable.

REST

To view GPU VM, H4D VM, or TPU future availability in a region, make aGETrequest to thebetaadvice.calendarMode method.Based on the resources that you want to view, include the following fieldsin the request body:

  • To view GPU VM or H4D VM availability, include theinstanceCount andmachineType fields:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/calendarMode{  "futureResourcesSpecs": {    "spec": {      "targetResources": {        "specificSkuResources": {"instanceCount": "NUMBER_OF_VMS","machineType": "MACHINE_TYPE"        }      },      "timeRangeSpec": {        "startTimeNotEarlierThan": "FROM_START_TIME",        "startTimeNotLaterThan": "TO_START_TIME",        "endTimeNotEarlierThan": "FROM_END_TIME",        "endTimeNotLaterThan": "TO_END_TIME"      }    }  }}
  • To view TPU availability, include theacceleratorCount andvmFamilyfields:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/calendarMode{  "futureResourcesSpecs": {    "spec": {      "targetResources": {        "aggregateResources": {"acceleratorCount": "NUMBER_OF_CHIPS","vmFamily": "TPU_VERSION"        }      },      "timeRangeSpec": {        "startTimeNotEarlierThan": "FROM_START_TIME",        "startTimeNotLaterThan": "TO_START_TIME",        "endTimeNotEarlierThan": "FROM_END_TIME",        "endTimeNotLaterThan": "TO_END_TIME"      }    }  }}

Replace the following:

The output is similar to the following:

{  "recommendations": [    {      "recommendationsPerSpec": {        "spec": {          "recommendationId": "a21a2fa0-72c7-4105-8179-88de5409890b",          "recommendationType": "FUTURE_RESERVATION","startTime": "2026-02-07T00:00:00Z","endTime": "2026-02-10T00:00:00Z",          "otherLocations": {            "zones/us-central1-b": {              "status": "RECOMMENDED",              "details": "Recommendation in this zone is possible."            },            "zones/us-central1-c": {              "status": "NO_CAPACITY",              "details": "Temporarily no free capacity in this zone in the                          requested time window."            },            "zones/us-central1-f": {              "status": "NOT_SUPPORTED",              "details": "This machine family is not supported in this zone."            }          },"location": "zones/us-central1-a"        }      }    }  ]}

If your requested resources are available, then the output contains thestartTime,endTime, andlocation fields. These fields specify theearliest start time, the latest end time, and the zones when resources areavailable.

Create a request for GPU VMs, H4D VMs, or TPUs

When you create a future reservation request in calendar mode, you can onlyspecify a reservation period as follows:

  • Start time: based on the resources that you want to reserve, you mustspecify a start time that is at least one of the following values from whenyou create and submit a request:

    • For GPU and H4D VMs, 87 hours (3 days and 15 hours)

    • For TPUs, 6 hours

  • Duration: you can reserve resources for a minimum of 24 hours and amaximum of 90 days.

Caution: When you create and submit a request, you confirm your commitment toreserve your requested capacity. If Google Cloud approves your request,then you can't cancel it, delete it, or modify it. You incur charges for thereserved capacity from the request's start time to its end time, regardless ofusage. For more information, seePricing.

To create a request by using an existing GPU or H4D VM as reference, use theGoogle Cloud console. Otherwise, select one of the following options:

Console

  1. In the Google Cloud console, go to theReservations page.

    Go to Reservations

  2. Click theFuture reservations tab.

  3. ClickCreate future reservation. TheCreate a future reservation pageappears and theHardware configuration pane is selected.

  4. In theConfigurations section, specify the properties of theGPU VMs, H4D VMs, or TPUs that you want to reserve by doing one of thefollowing:

    • To specify GPU VM, H4D VM, or TPU properties directly, complete thefollowing steps:

      1. SelectSpecify machine type.

      2. Click theGPUs,TPUs, orCompute-optimized tab, andthen select asupportedGPU machine type, H4D machine type, or TPU version.

    • To specify GPU or H4D VM properties by using an existing VM asreference, selectUse existing VM, and then select the VM.

  5. If you specified a TPU v5e (CT5LP) in the previous step, then, intheTPU v5 workload type list, select one of the following options:

  6. In theSearch for capacity section, complete the following steps:

    1. In theRegion andZone lists, select the region and zonewhere you want to reserve resources.

    2. In theTotal capacity needed field (when reserving GPU or H4DVMs) orNumber of chips list (when reserving TPUs), specify thenumber of GPU VMs, H4D VMs, or TPU chips to reserve. You can specifythe following values:

    3. In theStart time list, select the start time for your request.

    4. Optional: In theChoose your start date flexibility list, selecthow exact your start date needs to be.

    5. In theReservation duration field, specify for how long you wantto reserve resources.

    6. ClickSearch for capacity. Then, in theAvailable capacitytable, select one of the available options that contain the type,number, and reservation period of the GPU VMs, H4D VMs, or TPUs toreserve.

  7. ClickNext.

  8. In theShare type section, select the projects to share yourrequested capacity with:

    Important: You can only specify the share type and shared projects whenyou create a request. You can't modify these settings after submission.
  9. ClickNext.

  10. In theFuture reservation name field, enter a name for the request.

  11. In theReservation name field, enter the name of the reservationthat Compute Engine automatically creates to provision yourrequested capacity.

  12. ClickCreate.

gcloud

To create a future reservation request in calendar mode and submit it forreview, use thegcloud compute future-reservations create command.Based on the resources that you want to reserve, include the followingflags:

  • To reserve GPU or H4D VMs, include the--total-count,--machine-type, and--deployment-type=DENSE flags:

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \--total-count=NUMBER_OF_VMS \--machine-type=MACHINE_TYPE \--deployment-type=DENSE \    --planning-status=SUBMITTED \    --require-specific-reservation \    --reservation-mode=CALENDAR \    --reservation-name=RESERVATION_NAME \    --share-setting=SHARE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --zone=ZONE
  • To reserve TPUs, include the--chip-count and--tpu-version flags:

    gcloud compute future-reservations createFUTURE_RESERVATION_NAME \    --auto-delete-auto-created-reservations \--chip-count=NUMBER_OF_CHIPS \--tpu-version=TPU_VERSION \    --planning-status=SUBMITTED \    --require-specific-reservation \    --reservation-mode=CALENDAR \    --reservation-name=RESERVATION_NAME \    --share-setting=SHARE_TYPE \    --start-time=START_TIME \    --end-time=END_TIME \    --zone=ZONE

Replace the following:

REST

To create a future reservation request in calendar mode and submit it forreview, make aPOST request to thefutureReservations.insert method.Based on the resources that you want to reserve, include the followingfields in the request body:

  • To reserve GPU or H4D VMs, include thetotalCount andmachineTypefields, as well as thedeploymentType field set toDENSE:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "name": "FUTURE_RESERVATION_NAME",  "autoDeleteAutoCreatedReservations": true,"deploymentType": "DENSE",  "planningStatus": "SUBMITTED",  "reservationMode": "CALENDAR",  "reservationName": "RESERVATION_NAME",  "shareSettings": {    "shareType": "SHARE_TYPE"  },  "specificReservationRequired": true,  "specificSkuProperties": {"totalCount":NUMBER_OF_VMS,"instanceProperties": {      "machineType": "MACHINE_TYPE"    }  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}
  • To reserve TPUs, include theacceleratorCount andvmFamily fields:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/futureReservations{  "name": "FUTURE_RESERVATION_NAME",  "autoDeleteAutoCreatedReservations": true,  "planningStatus": "SUBMITTED",  "reservationMode": "CALENDAR",  "reservationName": "RESERVATION_NAME",  "shareSettings": {    "shareType": "SHARE_TYPE"  },  "specificReservationRequired": true,  "aggregateReservation": {    "reservedResources": [      {        "accelerator": {"acceleratorCount":NUMBER_OF_CHIPS        }      }    ],"vmFamily": "TPU_VERSION"  },  "timeWindow": {    "startTime": "START_TIME",    "endTime": "END_TIME"  }}

Replace the following:

What's next

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-17 UTC.