Schedule API

API Requests

Create an API Integration and obtain your apiKey to make requests listed below. Please make sure that the integration is not restricted to access configurations.

Create Schedule Request

Create schedule request is used to create schedules in OpsGenie. It takes the following parameters:

Mandatory Parameters

Parameter Limit
apiKey API key is used for authenticating API requests
name Name of schedule 100 chars

Optional Parameters

Parameter
timezone Timezone of schedule. Please look at /docs/miscellaneous/supported-timezone-ids for available timezones. Defaults to Root Timezone, explained in Time Constraints and Timezones document.
enabled Enable/disable state of schedule
rotations List of schedule rotations
team Name of the team that the schedule will be assigned to. If left empty, the schedule will be global and not belong to any team.
description The description of schedule.

Mandatory Parameters Of Schedule Rotation

Parameter
startDate Date which this schedule rotation will be active. Should be given in yyyy-MM-dd HH:mm format.
Minute may take 00 or 30 values. Other values will be converted to nearest one of 00 and 30
participants List of groups, escalations, teams, users or the reserved word none which will be used in schedule. Each of them can be used multiple times. They will be rotated in the order they given.
rotationType Type of rotation. May be one of daily, weekly and hourly

Optional Parameters Of Schedule Rotation

Parameter
name Name of rotation
rotationLength Length of rotation. Default is 1
restrictions Used to limit schedule rotation to certain day and time of the week, using multiple start and end times for each day of the week. This allows applying different scheduling rotations at different times.
endDate Date which this schedule rotation will end. Should be given in yyyy-MM-dd HH:mm format.
Minute may take 00 or 30 values. Other values will be converted to nearest one of 00 and 30

Mandatory Parameters Of Restriction

Parameter
startHour Value of the hour that frame will start.
startMinute Value of the minute that frame will start. Minute may take 00 or 30 values. Other values will be converted to nearest one of 00 and 30
endHour Value of the hour that frame will end.
endMinute Value of the minute that frame will end. Minute may take 00 or 30 values. Other values will be converted to nearest one of 00 and 30
startDay Name of day which time frame will start. May be one of monday, tuesday, wednesday, thursday, friday, saturday, sunday
endDay Name of day which time frame will end. May be one of monday, tuesday, wednesday, thursday, friday, saturday, sunday
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/schedule' -d '
{
     "apiKey": "eb243592-faa2-4ba2-a551q-1afdf565c889",
     "name" : "network_team_schedule",
     "timezone" : "America/New_York",
     "enabled" : true,
     "description" : "network schedule",
     "rotations" : [
         {
             "name":"Off Hours"
             "startDate":"2013-02-10 18:00",
             "endDate":"2013-07-10 12:00",
             "participants":["john.smith@opsgenie.com", "group1"],
             "rotationType":"daily"
         },
         {
             "startDate":"2013-02-10 18:00",
             "participants":["group1"],
             "rotationType":"hourly",
             "rotationLength":8,
             "restrictions":[
                   {"startDay":"monday", "endDay":"thursday","startHour":"8","startMinute":"30","endHour":"17","endMinute":"00"}
             ]
         }
    ]
}'
Response:
{
     "id" : "ac463592-dbd2-4ca3-a651d-48fhf5j5c871",
     "status" : "successful",
     "code" : 200
}

Update Schedule Request

Update schedule request is used to update schedules in OpsGenie. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule to be updated
name Name of schedule to be updated
One of id or name parameters should be specified with update schedule request

Optional Parameters

Parameter
name Name of schedule
timezone Timezone of schedule. Please look at /docs/miscellaneous/supported-timezone-ids for available timezones.
enabled Enable/disable state of schedule
rotations List of schedule rotations
team Name of the team that the schedule will be assigned to.
description The description of schedule.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/schedule' -d '
{
     "apiKey": "eb243592-faa2-4ba2-a551q-1afdf565c889",
     "id" : "ac463592-dbd2-4ca3-a651d-48fhf5j5c871",
     "timezone" : "America/New_York",
     "enabled" : true,
     "rotations" : [
         {
             "startDate":"2013-02-10 18:00",
             "endDate":"2013-11-10 12:00",
             "participants":["john.smith@opsgenie.com", "group1", "none"],
             "rotationType":"daily"
         },
         {
             "startDate":"2013-02-10 18:00",
             "participants":["group1"],
             "rotationType":"hourly",
             "rotationLength":8,
             "restrictions":[
                   {"startDay":"monday", "endDay":"thursday","startHour":"8","startMinute":"30","endHour":"12","endMinute":"00"}
             ]
         }
    ]
}'
Response:
{
     "status" : "successful",
     "code" : 200
}

Delete Schedule Request

Delete schedule request is used to delete schedules in OpsGenie. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule to be deleted
name Name of schedule to be deleted
One of id or name parameters should be specified with delete schedule request
Sample Request
curl -XDELETE 'https://api.opsgenie.com/v1/json/schedule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule'
curl -XDELETE 'https://api.opsgenie.com/v1/json/schedule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871'
Response:
{
     "status" : "successful",
     "code" : 200
}

Get Schedule Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Get schedule request is used to search and retrieve schedules in OpsGenie. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule to be retrieved
name Name of schedule to be retrieved
One of id or name parameters should be specified with get schedule request.
Sample Request For Schedule Retrieve
curl -XGET 'https://api.opsgenie.com/v1/json/schedule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871'
Response:
{
    "id": "ac463592-dbd2-4ca3-a651d-48fhf5j5c871",
    "name": "network_team_schedule",
    "timezone": "America/New_York",
    "enabled": true,
    "team": "operations",
    "rules": [
        {
            "id": "3bafd5f2-10c5-4bac-8300-cd2c72e5ca39",
            "startDate": "2013-02-10 18:00",
            "endDate":"2013-11-10 12:00",
            "participants": [
                {"participant": "john.smith@opsgenie.com","type": "user"},
                {"participant": "group1","type": "group"}
            ],
            "rotationType": "daily"
        },
        {
            "id": "d179d522-577e-47cb-955c-226003e92ca2",
            "startDate": "2013-02-10 18:00",
            "participants": [
                {"participant": "group1","type": "group"},
                {"participant": "none"}
            ],
            "rotationType": "hourly",
            "rotationLength": 8,
            "restrictions": [
                       {"startDay":"monday", "endDay":"thursday","startHour":"8","startMinute":"30","endHour":"17","endMinute":"00"}
            ]
        }
    ]
}

Get Schedule Timeline Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Get Schedule Timeline request is used to get the timeline of the given schedule that includes time and on-call recipient details. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule to be retrieved
name Name of schedule to be retrieved
One of id or name parameters should be specified with get schedule request.

Optional Parameters

Parameter
interval Length of time as integer in intervalUnits to retrieve the timeline. Default value is 1
intervalUnit Unit of the time to retrieve the timeline. Available values are days, weeks and months. Default value is weeks
date Starting date of the timeline that will be provided. Should be given in yyyy-MM-dd HH:mm format. Default date is the moment of the time that request is received.
details Boolean value to decide whether the details of timeline should be provided or not. If false, only the final schedule will be provided. If true; the details of the base schedule, forwardings and overrides will also be provided if exist. Default value is false
Sample Request For Schedule Retrieve
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/timeline?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule&intervalUnit=weeks'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/timeline?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871&intervalUnit=weeks'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/timeline?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871&date=2016-04-16%2018:00'
Response:
{
  "schedule": {
    "timezone": "Europe/Istanbul",
    "name": "timeline_test",
    "id": "74aba6a4-8a86-4dce-9a7b-83eaa7af7b3e",
    "team": "",
    "enabled": true
  },
  "took": 18,
  "timeline": {
    "startTime": 1454277600000,
    "endTime": 1454882400000,
    "finalSchedule": {
      "rotations": [
        {
          "name": "",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "Dawson Creek",
                  "name": "dawson@opsgenie.com",
                  "id": "b165db52-aa87-465e-861a-7017f3359bc4",
                  "type": "user"
                }
              ],
              "startTime": 1454479200000,
              "endTime": 1454515140000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ]
            },
            {
              "recipients": [
                {
                  "displayName": "David Copperfield",
                  "name": "david@opsgenie.com",
                  "id": "dc259f25-9358-441f-9576-fd99872f8509",
                  "type": "user"
                }
              ],
              "startTime": 1454515140000,
              "endTime": 1454882400000,
              "type": "override"
            }
          ],
          "id": "1c16ecb8-f315-4795-88d3-7308f9d18076",
          "order": 0
        },
        {
          "name": "",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "flattenedRecipients": [
                {
                  "displayName": "David Copperfield",
                  "name": "david@opsgenie.com",
                  "id": "dc259f25-9358-441f-9576-fd99872f8509",
                  "type": "user"
                },
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user",
                  "forwardedFrom": "b165db52-aa87-465e-861a-7017f3359bc4"
                }
              ],
              "startTime": 1454479200000,
              "endTime": 1454515200000,
              "type": "group"
            },
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "startTime": 1454565600000,
              "endTime": 1454601600000,
              "type": "group"
            },
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "startTime": 1454652000000,
              "endTime": 1454688000000,
              "type": "group"
            }
          ],
          "id": "ae456709-8581-43ac-a9b6-0232bd260680",
          "order": 0
        }
      ]
    },
    "baseSchedule": {
      "rotations": [
        {
          "name": "Rot1",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ],
              "startTime": 1454479200000,
              "endTime": 1454565600000,
              "type": "user"
            },
            {
              "recipients": [
                {
                  "displayName": "John Smith",
                  "name": "john.smith@opsgenie.com",
                  "id": "e6e7b896-d869-42f3-8e1c-3c4c89fb9582",
                  "type": "user"
                }
              ],
              "startTime": 1454565600000,
              "endTime": 1454652000000,
              "type": "user"
            },
            {
              "recipients": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ],
              "startTime": 1454652000000,
              "endTime": 1454738400000,
              "type": "user"
            },
            {
              "recipients": [
                {
                  "displayName": "John Smith",
                  "name": "john.smith@opsgenie.com",
                  "id": "e6e7b896-d869-42f3-8e1c-3c4c89fb9582",
                  "type": "user"
                }
              ],
              "startTime": 1454738400000,
              "endTime": 1454824800000,
              "type": "user"
            },
            {
              "recipients": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ],
              "startTime": 1454824800000,
              "endTime": 1454882400000,
              "type": "user"
            }
          ],
          "id": "1c16ecb8-f315-4795-88d3-7308f9d18076",
          "order": 1
        },
        {
          "name": "Rot2",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "startTime": 1454479200000,
              "endTime": 1454515200000,
              "type": "group"
            },
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "startTime": 1454565600000,
              "endTime": 1454601600000,
              "type": "group"
            },
            {
              "recipients": [
                {
                  "displayName": "test_group",
                  "name": "test_group",
                  "id": "839a9dbe-8276-4c53-81be-5009c6c56a7b",
                  "type": "group"
                }
              ],
              "startTime": 1454652000000,
              "endTime": 1454688000000,
              "type": "group"
            }
          ],
          "id": "ae456709-8581-43ac-a9b6-0232bd260680",
          "order": 2
        }
      ]
    },
    "overrides": {
      "rotations": [
        {
          "name": "",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "David Copperfield",
                  "name": "david@opsgenie.com",
                  "id": "dc259f25-9358-441f-9576-fd99872f8509",
                  "type": "user"
                }
              ],
              "startTime": 1454515140000,
              "endTime": 1454882400000,
              "type": "override"
            }
          ],
          "id": "or",
          "order": 0
        }
      ]
    },
    "forwardings": {
      "rotations": [
        {
          "name": "",
          "periods": [
            {
              "recipients": [
                {
                  "displayName": "Dawson Creek",
                  "name": "dawson@opsgenie.com",
                  "id": "b165db52-aa87-465e-861a-7017f3359bc4",
                  "type": "user"
                }
              ],
              "startTime": 1454479200000,
              "endTime": 1454565600000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ]
            },
            {
              "recipients": [
                {
                  "displayName": "Jefferson Taylor",
                  "name": "jefferson@opsgenie.com",
                  "id": "f53866e7-ea32-4a16-bddb-0d82ca3b291e",
                  "type": "user"
                }
              ],
              "startTime": 1454565600000,
              "endTime": 1454652000000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "John Smith",
                  "name": "john.smith@opsgenie.com",
                  "id": "e6e7b896-d869-42f3-8e1c-3c4c89fb9582",
                  "type": "user"
                }
              ]
            },
            {
              "recipients": [
                {
                  "displayName": "Dawson Creek",
                  "name": "dawson@opsgenie.com",
                  "id": "b165db52-aa87-465e-861a-7017f3359bc4",
                  "type": "user"
                }
              ],
              "startTime": 1454652000000,
              "endTime": 1454738400000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ]
            },
            {
              "recipients": [
                {
                  "displayName": "Jefferson Taylor",
                  "name": "jefferson@opsgenie.com",
                  "id": "f53866e7-ea32-4a16-bddb-0d82ca3b291e",
                  "type": "user"
                }
              ],
              "startTime": 1454738400000,
              "endTime": 1454824800000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "John Smith",
                  "name": "john.smith@opsgenie.com",
                  "id": "e6e7b896-d869-42f3-8e1c-3c4c89fb9582",
                  "type": "user"
                }
              ]
            },
            {
              "recipients": [
                {
                  "displayName": "Dawson Creek",
                  "name": "dawson@opsgenie.com",
                  "id": "b165db52-aa87-465e-861a-7017f3359bc4",
                  "type": "user"
                }
              ],
              "startTime": 1454824800000,
              "endTime": 1454882400000,
              "type": "forwarding",
              "fromUsers": [
                {
                  "displayName": "Leonardo da Vinci",
                  "name": "leonardo@opsgenie.com",
                  "id": "e3cb0402-0e2f-494a-8cb9-2aa785f7bbac",
                  "type": "user"
                }
              ]
            }
          ],
          "id": "1c16ecb8-f315-4795-88d3-7308f9d18076",
          "order": 0
        },
        {
          "name": "",
          "periods": [],
          "id": "ae456709-8581-43ac-a9b6-0232bd260680",
          "order": 0
        }
      ]
    }
  }
}

flattenedRecipients field is returned when the period is historical, i.e. it starts and ends before now.


List Schedules Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

List schedules request is used to list schedules in OpsGenie. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
Sample Requests
curl -XGET 'https://api.opsgenie.com/v1/json/schedule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889'
Response:
{
    "schedules": [
        {
            "id": "ac463592-dbd2-4ca3-a651d-48fhf5j5c871",
            "name": "network_team_schedule",
            "timezone": "America/New_York",
            "enabled": true,
            "team": "operations",
            "rules": [
                {
                    "id": "d179d522-577e-47cb-955c-226003e92ca2",
                    "startDate": "2013-02-10 18:00",
                    "endDate":"2013-11-10 12:00",
                    "participants": [
                        {"participant": "john.smith@opsgenie.com","type": "user"},
                        {"participant": "group1","type": "group"}
                    ],
                    "rotationType": "daily",
                    "rotationLength": 3,
                    "restrictions": []
                },
                {
                    "id": "3bafd5f2-10c5-4bac-8300-cd2c72e5ca39",
                    "startDate": "2013-02-10 18:00",
                    "participants": [
                        {"participant": "group1","type": "group"}
                    ],
                    "rotationType": "hourly",
                    "rotationLength": 8,
                    "restrictions": [
                       {"startDay":"monday", "endDay":"thursday","startHour":"8","startMinute":"30","endHour":"17","endMinute":"00"}
                    ]
                }
            ]
        },
        {
            "id": "ac463592-dbd2-4ca3-a651d-48fhf5j5c871",
            "name": "database_team_schedule",
            "timezone": "Europe/Istanbul",
            "enabled": true,
            "team": "",
            "rules": [
                {
                    "id": "8cbacee1-36ac-445f-acd5-52f7ffe02987"
                    "startDate": "2013-02-10 18:00",
                    "participants": [
                        {"participant": "group2","type": "group"}
                    ],
                    "rotationType": "daily",
                    "rotationLength": 3,
                    "restrictions": []
                }
            ]
        }
    ]
}

Who Is On Call Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Who is on call request is used to retrieve current oncall participants of a specific schedule. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule whose current participant list will be retrieved
name Name of schedule whose current participant list will be retrieved
One of id or name parameters should be specified with who is on call request.

Optional Parameters

Parameter
timezone Timezone will be used to parse the optional time parameter below.  Please look at /docs/miscellaneous/supported-timezone-ids for available timezones.
time Time to return future date oncall participants. Should be given in yyyy-MM-dd HH:mm format.
flat When enabled, retrieves usernames of all on call participants.
Sample Request For Who is OnCall Retrieve
You should escape the spaces in your url with '%20' if you are using console for curl requests.
curl -XGET 'https://api.opsgenie.com/v1.1/json/schedule/whoIsOnCall?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule'
curl -XGET 'https://api.opsgenie.com/v1.1/json/schedule/whoIsOnCall?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871'
curl -XGET 'https://api.opsgenie.com/v1.1/json/schedule/whoIsOnCall?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule&timezone=America/New_York&time=2013-11-12 10:00'
Response:
{
    "id": "279fd0c6-c872-44fe-98a7-6843eb3abf07",
    "name": "network_team_schedule",
    "type": "schedule",
    "participants": [
        {
            "name": "john.smith@opsgenie.com",
            "type": "user",
            "forwarded": "false"
        },
        {
            "name": "network_group",
            "type": "group"
        },
        {
            "name": "network_escalation",
            "type": "escalation"
            "participants" : [
                {
                    "name" : "db_team_schedule",
                    "type" : "schedule",
                    "notifyType" : "next"
                }
            ]
        }
    ]
}

notifyType is the escalation rule's notify type for schedules. Possible values are:

  • default: On-call users of the schedule.
  • next: Next user in the schedule.
  • previous: Previous user in the schedule.

Sample Request For Who is OnCall Retrieve When Flat Option Enabled
http://api.opsgenie.com/v1.1/json/schedule/whoIsOnCall?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=ops_team_schedule&flat=true
Response
{
    took: 66,
    recipients: [
        "john.smith@opsgenie.com",
        "jane.black@opsgenie.com"
    ],
    isEnabled: true,
    name: "ops_team_schedule",
    id: "edcab14a-94cf-4525-8d3b-224c30653023",
    type: "schedule"
}

Who Is On Call Next Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Who is on call next request is used to retrieve next oncall participants of a specific schedule. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of schedule whose current participant list will be retrieved
name Name of schedule whose current participant list will be retrieved
One of id or name parameters should be specified with who is on call next request.

Optional Parameters

Parameter
flat When enabled, retrieves usernames of all on call participants.
Sample Request For Who is OnCall Next Retrieve
You should escape the spaces in your url with '%20' if you are using console for curl requests.
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/whoIsOnCallNext?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/whoIsOnCallNext?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&id=ac463592-dbd2-4ca3-a651d-48fhf5j5c871'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/whoIsOnCallNext?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule
Response:
{
    "id": "279fd0c6-c872-44fe-98a7-6843eb3abf07",
    "name": "network_team_schedule",
    "type": "schedule",
    "finalNextOnCalls": [
        {
            "name": "jane.smith@opsgenie.com",
            "type": "user",
            "forwarded": "false"
        },
        {
            "name": "network_escalation",
            "type": "escalation"
            "participants" : [
                {
                    "name" : "db_team_schedule",
                    "type" : "schedule",
                    "notifyType" : "next"
                }
            ]
        }
    ],
    "rotationNextOnCalls": [
        {
            "name": "john.smith@opsgenie.com",
            "type": "user",
            "forwarded": "false"
        },
        {
            "name": "network_group",
            "type": "group"
        },
        {
            "name": "network_escalation",
            "type": "escalation"
            "participants" : [
                {
                    "name" : "db_team_schedule",
                    "type" : "schedule",
                    "notifyType" : "next"
                }
            ]
        }
    ]
}
rotationNextOnCalls field contains next on-call participants in the schedule rotation with more detailed display (including forwarding of these users). On the other hand, finalNextOnCalls contains next on-call recipients (final form) like in the final schedule view. For example, it will be different from rotationNextOnCalls, if there are overrides to the rotation. Other than that, the response format is the same for both fields.

notifyType is the escalation rule's notify type for schedules. Possible values are:

  • default: On-call users of the schedule.
  • next: Next user in the schedule.
  • previous: Previous user in the schedule.

Sample Request For Who is OnCall Next Retrieve When Flat Option Enabled
http://api.opsgenie.com/v1/json/schedule/whoIsOnCallNext?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=ops_team_schedule&flat=true
Response
{
    took: 66,
    finalNextRecipients: [
        "john.smith@opsgenie.com",
        "jane.black@opsgenie.com"
    ],
    rotationNextRecipients: [
        "dave.smith@opsgenie.com",
        "jane.black@opsgenie.com"
    ],
    isEnabled: true,
    name: "ops_team_schedule",
    id: "edcab14a-94cf-4525-8d3b-224c30653023",
    type: "schedule"
}

The difference between rotationNextRecipients and finalNextRecipients fields is the same for non-flat response. rotationNexRecipients contains next on-call recipients in the schedule rotation configuration. finalNextRecipients contains next on-call recipients in the final schedule view.


List Who Is On Call Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

List Who is on call request is used to retrieve current oncall participants of all schedules. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests

Optional Parameters

Parameter
timezone Timezone will be used to parse the optional time parameter below.  Please look at /docs/miscellaneous/supported-timezone-ids for available timezones.
time Time to return future date oncall participants. Should be given in yyyy-MM-dd HH:mm format.
flat When enabled, retrieves usernames of all on call participants.

Optional parameters are handled the same as in who is on-call request.

Sample Request For List Who is OnCall Retrieve of All Defined Schedules
curl -XGET 'https://api.opsgenie.com/v1.1/json/schedule/whoIsOnCall?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889'
Response:
{
    "oncalls": [
        {
    "id": "279fd0c6-c872-44fe-98a7-6843eb3abf07",
    "type": "schedule",
            "name": "network_team_schedule",
            "participants": [
                {
                    "name": "john.smith@opsgenie.com",
                    "type": "user",
                    "forwarded": "false"
                }
            ]
        },

        {
    "id": "279fd0c6-c872-44fe-98a7-6843eb3abf07",
    "type": "schedule",
            "name": "db_team_schedule",
            "participants": [
                {
                    "name": "network_group",
                    "type": "group"
                }
            ]
        }
    ]
}

Export Schedule Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Export schedule request is used to export a schedule or personal on-call timeline of 3 months to a .ics file. It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
id Id of the schedule to be exported
name Name of the schedule or username of a specific user for export.
One of id or name parameters should be specified with export schedule request.
Sample Request
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/export?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=network_team_schedule'
curl -XGET 'https://api.opsgenie.com/v1/json/schedule/export?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&name=johnsmith@mycompany.com'
Response:
Returns an .ics file with the name of the schedule or user.