For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/api/latest/fleet-automation/list-all-schedules.md. A documentation index is available at /llms.txt.

List all schedules

GET https://api.ap1.datadoghq.com/api/v2/fleet/scheduleshttps://api.ap2.datadoghq.com/api/v2/fleet/scheduleshttps://api.datadoghq.eu/api/v2/fleet/scheduleshttps://api.ddog-gov.com/api/v2/fleet/scheduleshttps://api.us2.ddog-gov.com/api/v2/fleet/scheduleshttps://api.uk1.datadoghq.com/api/v2/fleet/scheduleshttps://api.datadoghq.com/api/v2/fleet/scheduleshttps://api.us3.datadoghq.com/api/v2/fleet/scheduleshttps://api.us5.datadoghq.com/api/v2/fleet/schedules

Overview

Retrieve all upgrade schedules for the organization.

Schedules 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

OK

Response containing a list of fleet schedules.

Expand All

Field

Type

Description

data [required]

[object]

Array of schedules for the organization.

attributes [required]

object

Attributes of a fleet schedule in the v2 API response.

created_at

string

RFC3339 timestamp when the schedule was created.

created_by

string

User handle of the person who created the schedule.

is_default

boolean

Whether this is the default schedule for the organization.

name

string

Human-readable name for the schedule.

next_run

string

RFC3339 timestamp of the next scheduled maintenance window start time. Absent when the next run time cannot be computed.

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.

handles

[string]

Notification handles (for example, Slack channels or PagerDuty integrations).

tags

[string]

Tags associated with the notification rule.

query

string

Query used to filter and select target hosts for scheduled deployments.

rule

object

Defines the recurrence pattern for the schedule.

days_of_week

[string]

Days of the week when the schedule triggers. Valid values are "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun".

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.

maintenance_window_duration

int64

Duration of the maintenance window in minutes.

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.

timezone

string

Timezone in IANA Time Zone Database format.

status

enum

The status of the schedule.

  • active: The schedule is active and will create deployments according to its recurrence rule.
  • inactive: The schedule is inactive and will not create any deployments. Allowed enum values: active,inactive

updated_at

string

RFC3339 timestamp when the schedule was last updated.

updated_by

string

User handle of the person who last updated the schedule.

version_to_latest

int64

Number of major versions behind the latest to target for upgrades.

  • 0: Always upgrade to the latest version.
  • 1: Upgrade to latest minus 1 major version.
  • 2: Upgrade to latest minus 2 major versions.

id [required]

string

Unique identifier for the schedule.

type [required]

enum

The type of schedule resource. Allowed enum values: schedule

default: schedule

meta

object

Metadata for the v2 list of schedules response.

page

object

Pagination details for the v2 list of schedules.

total_count

int64

Total number of schedules returned.

{
  "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"
    }
  ],
  "meta": {
    "page": {
      "total_count": 5
    }
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Unauthorized

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Code Example

                  # Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/fleet/schedules" \ -H "Accept: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}"
"""
List all schedules 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

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.list_fleet_schedules_v2()

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# List all schedules returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new
p api_instance.list_fleet_schedules_v2()

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
// 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())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.ListFleetSchedulesV2(ctx)

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

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

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
// 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.FleetSchedulesV2Response;

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

    try {
      FleetSchedulesV2Response result = apiInstance.listFleetSchedulesV2();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#listFleetSchedulesV2");
      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 and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
// 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 configuration = datadog::Configuration::new();
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api.list_fleet_schedules_v2().await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * List all schedules returns "OK" response
 */

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

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.FleetAutomationApi(configuration);

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

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"