curl --request POST \
--url https://api.example.com/api/crew-schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cron": "<string>",
"timezone": "UTC",
"task_input": {},
"name": "",
"enabled": true,
"run_as_identity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.example.com/api/crew-schedules"
payload = {
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cron": "<string>",
"timezone": "UTC",
"task_input": {},
"name": "",
"enabled": True,
"run_as_identity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cron: '<string>',
timezone: 'UTC',
task_input: {},
name: '',
enabled: true,
run_as_identity_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.example.com/api/crew-schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/crew-schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cron' => '<string>',
'timezone' => 'UTC',
'task_input' => [
],
'name' => '',
'enabled' => true,
'run_as_identity_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/crew-schedules"
payload := strings.NewReader("{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/crew-schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/crew-schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"template_id": "<string>",
"name": "<string>",
"owner_id": "<string>",
"cron": "<string>",
"timezone": "<string>",
"task_input": {},
"enabled": true,
"is_owner": true,
"created_at": "<string>",
"updated_at": "<string>",
"template_name": "<string>",
"run_as_kind": "owner",
"run_as": "<string>",
"run_as_identity_id": "<string>",
"next_run_at": "<string>",
"last_run_at": "<string>",
"last_run_id": "<string>",
"last_run_status": "<string>",
"last_error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}Create schedule
Schedule a saved crew template to run on a cron, as you.
The template must be yours or shared. task_input is checked against
the template’s variables now and again at every run.
curl --request POST \
--url https://api.example.com/api/crew-schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cron": "<string>",
"timezone": "UTC",
"task_input": {},
"name": "",
"enabled": true,
"run_as_identity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.example.com/api/crew-schedules"
payload = {
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cron": "<string>",
"timezone": "UTC",
"task_input": {},
"name": "",
"enabled": True,
"run_as_identity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cron: '<string>',
timezone: 'UTC',
task_input: {},
name: '',
enabled: true,
run_as_identity_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.example.com/api/crew-schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/crew-schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cron' => '<string>',
'timezone' => 'UTC',
'task_input' => [
],
'name' => '',
'enabled' => true,
'run_as_identity_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/crew-schedules"
payload := strings.NewReader("{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/crew-schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/crew-schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cron\": \"<string>\",\n \"timezone\": \"UTC\",\n \"task_input\": {},\n \"name\": \"\",\n \"enabled\": true,\n \"run_as_identity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"template_id": "<string>",
"name": "<string>",
"owner_id": "<string>",
"cron": "<string>",
"timezone": "<string>",
"task_input": {},
"enabled": true,
"is_owner": true,
"created_at": "<string>",
"updated_at": "<string>",
"template_name": "<string>",
"run_as_kind": "owner",
"run_as": "<string>",
"run_as_identity_id": "<string>",
"next_run_at": "<string>",
"last_run_at": "<string>",
"last_run_id": "<string>",
"last_run_status": "<string>",
"last_error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Schedule a saved crew template to run on a cron.
ID of a crew template you own or that is shared with you.
Five-field cron: minute hour day-of-month month day-of-week, e.g. 0 6 * * 1-5 for 06:00 on weekdays.
100IANA time zone the cron is read in, e.g. Europe/London.
64Values for the template's variables, fixed for every run. Validated against the template now and again at each run.
Label for the schedule. Defaults to the template's name.
200Whether the schedule fires.
Run as this service identity (GET /api/registry/identities) instead of as you. You must be allowed to use it, now and at every run. Omit to run as yourself.
Response
Successful Response
A crew schedule with its last and next run.
Username of the user the schedule belongs to.
Whether the caller owns this schedule.
Null if the template can no longer be read.
owner: runs act as the owner. identity: as a service identity.
Username its runs act as: the owner's, or the service identity's service account. Null if that identity no longer exists.
The service identity it runs as, if any.
Next slot (ISO 8601, UTC). Null while disabled.
When a slot last fired or was skipped (UTC).
Crew-run id of the last run it started.
Status of that run: pending, running, completed or failed.
Why the last slot did not start a run.
Was this page helpful?

