---
title: Get a schedule by ID
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > API Reference > Fleet Automation
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Get a schedule by ID{% #get-a-schedule-by-id %}
Copy pageCopied
{% tab title="v2" %}

| Datadog site      | API endpoint                                                  |
| ----------------- | ------------------------------------------------------------- |
| ap1.datadoghq.com | GET https://api.ap1.datadoghq.com/api/v2/fleet/schedules/{id} |
| ap2.datadoghq.com | GET https://api.ap2.datadoghq.com/api/v2/fleet/schedules/{id} |
| app.datadoghq.eu  | GET https://api.datadoghq.eu/api/v2/fleet/schedules/{id}      |
| app.ddog-gov.com  | GET https://api.ddog-gov.com/api/v2/fleet/schedules/{id}      |
| us2.ddog-gov.com  | GET https://api.us2.ddog-gov.com/api/v2/fleet/schedules/{id}  |
| uk1.datadoghq.com | GET https://api.uk1.datadoghq.com/api/v2/fleet/schedules/{id} |
| app.datadoghq.com | GET https://api.datadoghq.com/api/v2/fleet/schedules/{id}     |
| us3.datadoghq.com | GET https://api.us3.datadoghq.com/api/v2/fleet/schedules/{id} |
| us5.datadoghq.com | GET https://api.us5.datadoghq.com/api/v2/fleet/schedules/{id} |

### Overview

Retrieve detailed information about a specific schedule by its unique identifier. This endpoint requires the `hosts_read` permission.

### Arguments

#### Path Parameters

| Name                 | Type   | Description                                        |
| -------------------- | ------ | -------------------------------------------------- |
| id [*required*] | string | The unique identifier of the schedule to retrieve. |

### Response

{% tab title="200" %}
OK
{% tab title="Model" %}
Response containing a single fleet schedule.

| Parent field      | Field                        | Type     | Description                                                                                                                              |
| ----------------- | ---------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|                   | data [*required*]       | object   | A fleet upgrade schedule resource in the v2 API response.                                                                                |
| data              | attributes [*required*] | object   | Attributes of a fleet schedule in the v2 API response.                                                                                   |
| attributes        | created_at                   | string   | RFC3339 timestamp when the schedule was created.                                                                                         |
| attributes        | created_by                   | string   | User handle of the person who created the schedule.                                                                                      |
| attributes        | is_default                   | boolean  | Whether this is the default schedule for the organization.                                                                               |
| attributes        | name                         | string   | Human-readable name for the schedule.                                                                                                    |
| attributes        | next_run                     | string   | RFC3339 timestamp of the next scheduled maintenance window start time. Absent when the next run time cannot be computed.                 |
| attributes        | notification_rule            | object   | Notification configuration attached to a schedule.                                                                                       | Included when available. If the notification rule cannot be retrieved, this field is omitted and the schedule is still returned. If the notification rule is retrieved but its handles cannot be resolved, it is still included with an empty `handles` array. |
| notification_rule | handles                      | [string] | Notification handles (for example, Slack channels or PagerDuty integrations).                                                            |
| notification_rule | tags                         | [string] | Tags associated with the notification rule.                                                                                              |
| attributes        | query                        | string   | Query used to filter and select target hosts for scheduled deployments.                                                                  |
| attributes        | rule                         | object   | Defines the recurrence pattern for the schedule.                                                                                         |
| rule              | days_of_week                 | [string] | Days of the week when the schedule triggers. Valid values are "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun".                           |
| rule              | interval                     | int64    | Interval between schedule runs in weeks. 1 means the schedule runs every week on the specified days. Higher values repeat every N weeks. |
| rule              | maintenance_window_duration  | int64    | Duration of the maintenance window in minutes.                                                                                           |
| rule              | start_maintenance_window     | string   | Start time of the maintenance window in 24-hour clock format (HHMM). Deployments are triggered at this time on the specified days.       |
| rule              | timezone                     | string   | Timezone in IANA Time Zone Database format.                                                                                              |
| attributes        | status                       | enum     | The status of the schedule.                                                                                                              |
| attributes        | updated_at                   | string   | RFC3339 timestamp when the schedule was last updated.                                                                                    |
| attributes        | updated_by                   | string   | User handle of the person who last updated the schedule.                                                                                 |
| attributes        | version_to_latest            | int64    | Number of major versions behind the latest to target for upgrades.                                                                       |
| data              | id [*required*]         | string   | Unique identifier for the schedule.                                                                                                      |
| data              | type [*required*]       | enum     | The type of schedule resource. Allowed enum values: `schedule`                                                                           |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": {
    "attributes": {
      "created_at": "2023-11-14T22:13:19Z",
      "created_by": "user@example.com",
      "is_default": false,
      "name": "Weekly Production Agent Updates",
      "next_run": "2025-01-06T02:00:00Z",
      "notification_rule": {
        "handles": [],
        "tags": []
      },
      "query": "env:prod AND service:web",
      "rule": {
        "days_of_week": [
          "Mon",
          "Wed",
          "Fri"
        ],
        "interval": 1,
        "maintenance_window_duration": 120,
        "start_maintenance_window": "0200",
        "timezone": "America/New_York"
      },
      "status": "active",
      "updated_at": "2023-11-14T22:13:19Z",
      "updated_by": "user@example.com",
      "version_to_latest": 0
    },
    "id": "abc-def-ghi-123",
    "type": "schedule"
  }
}
```

{% /tab %}

{% /tab %}

{% tab title="400" %}
Bad Request
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="401" %}
Unauthorized
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="403" %}
Forbidden
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="404" %}
Not Found
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="429" %}
Too many requests
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

### Code Example

##### 
                  \# Path parameters export id="abc-def-ghi-123" \# Curl command curl -X GET "https://api.datadoghq.com/api/v2/fleet/schedules/${id}" \
-H "Accept: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" 
                
##### 

```python
"""
Get a schedule by ID returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.fleet_automation_api import FleetAutomationApi

# there is a valid "fleet_schedule" in the system
SCHEDULE_ID = environ["SCHEDULE_ID"]

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.get_fleet_schedule_v2(
        id=SCHEDULE_ID,
    )

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
##### 

```ruby
# Get a schedule by ID returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new

# there is a valid "fleet_schedule" in the system
SCHEDULE_ID = ENV["SCHEDULE_ID"]
p api_instance.get_fleet_schedule_v2(SCHEDULE_ID)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
##### 

```go
// Get a schedule by ID returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	// there is a valid "fleet_schedule" in the system
	ScheduleID := os.Getenv("SCHEDULE_ID")

	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.GetFleetScheduleV2(ctx, ScheduleID)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `FleetAutomationApi.GetFleetScheduleV2`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.GetFleetScheduleV2`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
##### 

```java
// Get a schedule by ID returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.FleetAutomationApi;
import com.datadog.api.client.v2.model.FleetScheduleV2Response;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    FleetAutomationApi apiInstance = new FleetAutomationApi(defaultClient);

    // there is a valid "fleet_schedule" in the system
    String SCHEDULE_ID = System.getenv("SCHEDULE_ID");

    try {
      FleetScheduleV2Response result = apiInstance.getFleetScheduleV2(SCHEDULE_ID);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#getFleetScheduleV2");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
##### 

```rust
// Get a schedule by ID returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;

#[tokio::main]
async fn main() {
    // there is a valid "fleet_schedule" in the system
    let schedule_id = std::env::var("SCHEDULE_ID").unwrap();
    let configuration = datadog::Configuration::new();
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api.get_fleet_schedule_v2(schedule_id.clone()).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
##### 

```typescript
/**
 * Get a schedule by ID returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v2.FleetAutomationApi(configuration);

// there is a valid "fleet_schedule" in the system
const SCHEDULE_ID = process.env.SCHEDULE_ID as string;

const params: v2.FleetAutomationApiGetFleetScheduleV2Request = {
  id: SCHEDULE_ID,
};

apiInstance
  .getFleetScheduleV2(params)
  .then((data: v2.FleetScheduleV2Response) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"
{% /tab %}
