Skip to content

Add a schedule

POST
/orgs/{org}/projects/{id}/schedules
curl --request POST \
--url https://api.sloose.com/orgs/org_9f3c/projects/b3f1c8a2/schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "cron": "0 2 * * *", "timezone": "Australia/Sydney", "enabled": true, "sourceConfig": "example" }'

Attaches a cron schedule to the project.

Stored, not run. Schedules are persisted so a project can carry them, but the server-side runner that executes them is V2. Creating one today changes nothing about when imports happen.

org
required

The org id the session was issued for. A token for one org can never read another.

string
Example
org_9f3c

The org id the session was issued for. A token for one org can never read another.

id
required

The project id.

string
Example
b3f1c8a2

The project id.

Media typeapplication/json
object
name
required
string
>= 1 characters <= 200 characters
cron
required

Five-field cron expression.

string
/^\s*(\S+\s+){4}\S+\s*$/
Example
0 2 * * *
timezone

IANA zone. Defaults to UTC.

string
>= 1 characters <= 64 characters
Example
Australia/Sydney
enabled
boolean
sourceConfig

Where rows come from when the schedule fires. Shape depends on the source package.

object | null

Created.

Media typeapplication/json
object
schedule
required

Stored now, executed by the V2 server-side runner. Creating one does not run anything yet.

object
id
required
string
orgId
required
string
projectId
required
string
name
required
string
cron
required

Five-field cron expression.

string
timezone
required
string
enabled
required
boolean
sourceConfig
required
object | null
createdByUserId
required
string | null
lastRunAt
required
string | null
nextRunAt
required
string | null
createdAt
required
string
updatedAt
required
string
Examplegenerated
{
"schedule": {
"id": "example",
"orgId": "example",
"projectId": "example",
"name": "example",
"cron": "example",
"timezone": "example",
"enabled": true,
"sourceConfig": "example",
"createdByUserId": "example",
"lastRunAt": "example",
"nextRunAt": "example",
"createdAt": "example",
"updatedAt": "example"
}
}

The request body did not match the schema. issues carries the Zod issue list.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

No bearer, or one that is expired, revoked or no longer resolves to a member.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

The bearer’s role is too low, or it was issued for a different org.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

No such project, or it is not visible to this session.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}