---
title: List all schedules
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > API Reference > Fleet Automation
---

# List all schedules{% #list-all-schedules %}
Copy pageCopied
{% tab title="v2" %}
This endpoint is in Preview and may introduce breaking changes. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
| Datadog site      | API endpoint                                                   |
| ----------------- | -------------------------------------------------------------- |
| ap1.datadoghq.com | GET https://api.ap1.datadoghq.com/api/unstable/fleet/schedules |
| ap2.datadoghq.com | GET https://api.ap2.datadoghq.com/api/unstable/fleet/schedules |
| app.datadoghq.eu  | GET https://api.datadoghq.eu/api/unstable/fleet/schedules      |
| app.ddog-gov.com  | GET https://api.ddog-gov.com/api/unstable/fleet/schedules      |
| us2.ddog-gov.com  | GET https://api.us2.ddog-gov.com/api/unstable/fleet/schedules  |
| app.datadoghq.com | GET https://api.datadoghq.com/api/unstable/fleet/schedules     |
| us3.datadoghq.com | GET https://api.us3.datadoghq.com/api/unstable/fleet/schedules |
| us5.datadoghq.com | GET https://api.us5.datadoghq.com/api/unstable/fleet/schedules |

### Overview



Retrieve a list of all schedules for automated fleet deployments.

Schedules allow you to automate package upgrades by defining maintenance windows and recurrence rules. Each schedule automatically creates deployments based on its configuration.
This endpoint requires the `hosts_read` permission.


### Response

{% tab title="200" %}
OK
{% tab title="Model" %}
Response containing a list of schedules.

| Parent field | Field                                         | Type     | Description                                                                                                                                 |
| ------------ | --------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]                        | [object] | Array of schedules.                                                                                                                         |
| data         | attributes [*required*]                  | object   | Attributes of a schedule in the response.                                                                                                   |
| attributes   | created_at_unix                               | int64    | Unix timestamp (seconds since epoch) when the schedule was created.                                                                         |
| attributes   | created_by                                    | string   | User handle of the person who created the schedule.                                                                                         |
| attributes   | name                                          | string   | Human-readable name for the schedule.                                                                                                       |
| attributes   | query                                         | string   | Query used to filter and select target hosts for scheduled deployments. Uses the Datadog query syntax.                                      |
| attributes   | rule                                          | object   | Defines the recurrence pattern for the schedule. Specifies when deployments should be automatically triggered based on maintenance windows. |
| rule         | days_of_week [*required*]                | [string] | List of days of the week when the schedule should trigger. Valid values are: "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun".               |
| rule         | maintenance_window_duration [*required*] | int64    | Duration of the maintenance window in minutes.                                                                                              |
| rule         | start_maintenance_window [*required*]    | string   | Start time of the maintenance window in 24-hour clock format (HH:MM). Deployments will be triggered at this time on the specified days.     |
| rule         | timezone [*required*]                    | string   | Timezone for the schedule in IANA Time Zone Database format (e.g., "America/New_York", "UTC").                                              |
| attributes   | status                                        | enum     | The status of the schedule.                                                                                                                 |
| attributes   | updated_at_unix                               | int64    | Unix timestamp (seconds since epoch) 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_unix": 1699999999,
        "created_by": "user@example.com",
        "name": "Weekly Production Agent Updates",
        "query": "env:prod AND service:web",
        "rule": {
          "days_of_week": [
            "Mon",
            "Wed",
            "Fri"
          ],
          "maintenance_window_duration": 1200,
          "start_maintenance_window": "02:00",
          "timezone": "America/New_York"
        },
        "status": "active",
        "updated_at_unix": 1699999999,
        "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="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

##### 
                  \# Curl command curl -X GET "https://api.datadoghq.com/api/unstable/fleet/schedules" \
-H "Accept: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" 
                
##### 

```python
"""
List all schedules returns "OK" response
"""

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

configuration = Configuration()
configuration.unstable_operations["list_fleet_schedules"] = True
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.list_fleet_schedules()

    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
# List all schedules returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.list_fleet_schedules".to_sym] = true
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new
p api_instance.list_fleet_schedules()
```

#### 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
// List all schedules 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() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.ListFleetSchedules", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.ListFleetSchedules(ctx)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.ListFleetSchedules`:\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
// List all schedules 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.FleetSchedulesResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.listFleetSchedules", true);
    FleetAutomationApi apiInstance = new FleetAutomationApi(defaultClient);

    try {
      FleetSchedulesResponse result = apiInstance.listFleetSchedules();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#listFleetSchedules");
      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
// List all schedules returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.ListFleetSchedules", true);
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api.list_fleet_schedules().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
/**
 * List all schedules returns "OK" response
 */

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

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.listFleetSchedules"] = true;
const apiInstance = new v2.FleetAutomationApi(configuration);

apiInstance
  .listFleetSchedules()
  .then((data: v2.FleetSchedulesResponse) => {
    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 %}
