Create a Schedule for a Job Template

post

/api/v2/job_templates/{id}/schedules/

Make a POST request to this resource with the following schedule fields to create a new schedule associated with this job template.

  • rrule: A value representing the schedules iCal recurrence rule. (string, required)

  • name: Name of this schedule. (string, required)

  • description: Optional description of this schedule. (string, default="")
  • extra_data: (json, default={})
  • inventory: Inventory applied as a prompt, assuming job template prompts for inventory (id, default=``)
  • scm_branch: (string, default="")
  • job_type: (choice)
    • None: --------- (default)
    • "": ---------
    • run: Run
    • check: Check
  • job_tags: (string, default="")
  • skip_tags: (string, default="")
  • limit: (string, default="")
  • diff_mode: (boolean, default=None)
  • verbosity: (choice)

    • None: --------- (default)
    • 0: 0 (Normal)
    • 1: 1 (Verbose)
    • 2: 2 (More Verbose)
    • 3: 3 (Debug)
    • 4: 4 (Connection Debug)
    • 5: 5 (WinRM Debug)
  • enabled: Enables processing of this schedule. (boolean, default=True)

POST requests to this resource must include a proper rrule value following a particular format and conforming to subset of allowed rules.

The following lists the expected format and details of our rrules:

  • DTSTART is required and must follow the following format: DTSTART:YYYYMMDDTHHMMSSZ
  • DTSTART is expected to be in UTC
  • INTERVAL is required
  • SECONDLY is not supported
  • TZID is not supported
  • RRULE must precede the rule statements
  • BYDAY is supported but not BYDAY with a numerical prefix
  • BYYEARDAY and BYWEEKNO are not supported
  • Only one rrule statement per schedule is supported
  • COUNT must be < 1000

Here are some example rrules:

"DTSTART:20500331T055000Z RRULE:FREQ=MINUTELY;INTERVAL=10;COUNT=5"
"DTSTART:20240331T075000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1"
"DTSTART:20140331T075000Z RRULE:FREQ=MINUTELY;INTERVAL=1;UNTIL=20230401T075000Z"
"DTSTART:20140331T075000Z RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR"
"DTSTART:20140331T075000Z RRULE:FREQ=WEEKLY;INTERVAL=5;BYDAY=MO"
"DTSTART:20140331T075000Z RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=6"
"DTSTART:20140331T075000Z RRULE:FREQ=MONTHLY;INTERVAL=1;BYSETPOS=4;BYDAY=SU"
"DTSTART:20140331T075000Z RRULE:FREQ=MONTHLY;INTERVAL=1;BYSETPOS=-1;BYDAY=MO,TU,WE,TH,FR"
"DTSTART:20140331T075000Z RRULE:FREQ=MONTHLY;INTERVAL=1;BYSETPOS=-1;BYDAY=MO,TU,WE,TH,FR,SA,SU"
"DTSTART:20140331T075000Z RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=4;BYMONTHDAY=1"
"DTSTART:20140331T075000Z RRULE:FREQ=YEARLY;INTERVAL=1;BYSETPOS=-1;BYMONTH=8;BYDAY=SU"
"DTSTART:20140331T075000Z RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20230401T075000Z;BYDAY=MO,WE,FR"
"DTSTART:20140331T075000Z RRULE:FREQ=HOURLY;INTERVAL=1;UNTIL=20230610T075000Z"

Request

Supported Media Types
Path Parameters
Body ()
Root Schema : schema
Example:
{
    "extra_data":"{\"var1\": \"foo\"}",
    "name":"test sch",
    "rrule":"DTSTART:20151117T050000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1"
}
Back to Top

Response

Supported Media Types

201 Response

Body
Example Response (application/json)
{
    "created":"2018-02-01T08:00:00.000000Z",
    "description":"",
    "diff_mode":null,
    "dtend":"2015-11-17T05:00:00Z",
    "dtstart":"2015-11-17T05:00:00Z",
    "enabled":true,
    "extra_data":{
        "var1":"$encrypted$"
    },
    "id":1,
    "inventory":null,
    "job_tags":null,
    "job_type":null,
    "limit":null,
    "modified":"2018-02-01T08:00:00.000000Z",
    "name":"test sch",
    "next_run":null,
    "related":{
        "credentials":"/api/v2/schedules/1/credentials/",
        "inventory":"/api/v2/inventories/1/",
        "project":"/api/v2/projects/1/",
        "unified_job_template":"/api/v2/job_templates/2/",
        "unified_jobs":"/api/v2/schedules/1/jobs/"
    },
    "rrule":"DTSTART:20151117T050000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1",
    "scm_branch":null,
    "skip_tags":null,
    "summary_fields":{
        "inventory":{
            "description":"",
            "has_active_failures":false,
            "has_inventory_sources":false,
            "hosts_with_active_failures":0,
            "id":1,
            "insights_credential_id":null,
            "inventory_sources_with_failures":0,
            "kind":"",
            "name":"test-inv",
            "organization_id":1,
            "total_groups":0,
            "total_hosts":0,
            "total_inventory_sources":0
        },
        "unified_job_template":{
            "description":"",
            "id":2,
            "name":"test-jt",
            "unified_job_type":"job"
        },
        "user_capabilities":{
            "delete":true,
            "edit":true
        }
    },
    "timezone":"UTC",
    "type":"schedule",
    "unified_job_template":2,
    "until":"",
    "url":"/api/v2/schedules/1/",
    "verbosity":null
}

400 Response

Body
Example Response (application/json)
{
    "rrule":[
        "DTSTART cannot be a naive datetime.  Specify ;TZINFO= or YYYYMMDDTHHMMSSZZ."
    ]
}
Back to Top