- [HTTP request](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.HTTP_TEMPLATE)
- [Path parameters](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.PATH_PARAMETERS)
- [Request body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.request_body)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.response_body)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.CalendarModeExtensionAdviceResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.aspect)
- [IAM Permissions](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#body.aspect_1)
- [Try it!](https://docs.cloud.google.com/compute/docs/reference/rest/beta/advice/calendarModeExtension#try-it)

Advises on whether extending an existing future reservation is possible based on the desired extension end time. If capacity isn't available for the entire requested duration, the method recommends the longest possible extension.

### HTTP request

Choose an endpoint:
global africa-south1 asia-east1 asia-east2 asia-northeast1 asia-northeast2 asia-northeast3 asia-south1 asia-south2 asia-southeast1 asia-southeast2 asia-southeast3 australia-southeast1 australia-southeast2 europe-central2 europe-north1 europe-north2 europe-southwest1 europe-west1 europe-west10 europe-west12 europe-west2 europe-west3 europe-west4 europe-west6 europe-west8 europe-west9 me-central1 me-central2 me-west1 northamerica-northeast1 northamerica-northeast2 northamerica-south1 southamerica-east1 southamerica-west1 us-central1 us-east1 us-east4 us-east5 us-south1 us-west1 us-west2 us-west3 us-west4   
`POST https://compute.googleapis.com/compute/beta/projects/{project}/regions/{region}/advice/calendarModeExtension`

<br />

The URLs use [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `project` | `string` Project ID for this request. |
| `region` | `string` Name of the region for this request. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "futureReservation": string, "endTimeNotLaterThan": string } ``` |

| Fields ||
|---|---|
| `futureReservation` | `string` Required. Reference to the future reservation, in the format: projects/{project}/zones/{zone}/futureReservations/{name} Full URIs that include hostnames (like compute.googleapis.com or www.googleapis.com) are also supported. |
| `endTimeNotLaterThan` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Required. The desired end time for the extension. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |

### Response body

A response that contains the recommended duration for extending a future reservation in calendar mode based on available capacity during the extension period.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "recommendationId": string, "endTime": string, "notRecommendedReason": { "status": enum, "details": string } } ``` |

| Fields ||
|---|---|
| `recommendationId` | `string` The unique ID of the recommendation, which is a UUID string generated by the API. |
| `endTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` The recommended end time for the extension, which is either the end time requested by the caller or the longest alternative with sufficient capacity. If the extension is not possible, this field is empty, and notRecommendedReason is populated instead. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `notRecommendedReason` | `object` The reason why the future reservation can't be extended. If a recommendation is provided, whether for the requested end time or an alternative, this field is empty. |
| `notRecommendedReason.status` | `enum` Status of recommendation. |
| `notRecommendedReason.details` | `string` Human-readable details describing why the recommendation wasn't provided. For example, if the status is CONDITIONS_NOT_MET, this field explains why the requested extension duration isn't possible. |

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/compute`
- `
  https://www.googleapis.com/auth/cloud-platform`

For more information, see the [Authentication Overview](https://docs.cloud.google.com/docs/authentication#authorization-gcp).

### IAM Permissions

In addition to any permissions specified on the fields above, authorization requires one or more of the following [IAM](https://cloud.google.com/iam/docs/) permissions:

- `compute.advice.calendarMode`

To find predefined roles that contain those permissions, see [Compute Engine IAM Roles](https://docs.cloud.google.com/compute/docs/access/iam).