Skip to content

Create Schedule

POST
/schedules
curl --request POST \
--url https://example.com/schedules \
--header 'Content-Type: application/json' \
--data '{ "account": "example", "amount": 1, "amount_type": "fixed", "autopost_policy": "auto_post", "category": "example", "counterparty_account": "example", "dtstart": "2026-04-15", "estimate_basis": "last", "name": "example", "note": "example", "payee": "example", "propose": false, "rrule": "example" }'

Create a bill/income schedule, active. With propose=true it lands a SUGGESTION instead (status='proposed', suggestion_id) that the user’s decision turns into the schedule. A proposal for a payee or counterparty the account already has a schedule for is refused (422, naming that schedule).

Media typeapplication/json
ScheduleCreate
object
account
required
Account

Account id or path

string
amount
Any of:
number
amount_type
Amount Type
string
default: fixed
Allowed values: fixed estimated
autopost_policy
Autopost Policy
string
default: wait_for_match
Allowed values: auto_post wait_for_match reminder_only
category
Any of:
string
counterparty_account
Any of:
string
dtstart
Any of:
string format: date
estimate_basis
Any of:
string
Allowed values: last rolling_avg_3 rolling_avg_12 counterparty_balance
name
required
Name
string
note
Any of:
string
<= 200 characters
payee
Any of:
string
propose
Propose

Land a suggestion in the inbox for the user to decide instead of creating the schedule; for an agent acting on its own initiative (#436)

boolean
rrule
required
Rrule

RFC 5545 RRULE, e.g. FREQ=MONTHLY;BYMONTHDAY=19

string

Successful Response

Media typeapplication/json
Any of:
ScheduleOut
object
account_id
required
Account Id
string format: uuid
amount
required
Any of:
string
amount_type
required
Amount Type
string
autopost_policy
required
Autopost Policy
string
category_path
Any of:
string
counterparty_account_id
Any of:
string format: uuid
currency
required
Currency
string
dtstart
required
Dtstart
string format: date
ended_at
required
Any of:
string format: date-time
estimate_basis
required
Any of:
string
id
required
Id
string format: uuid
name
required
Name
string
next_due
required
Any of:
string format: date
rrule
required
Rrule
string
source
required
Source
string
status
required
Status
string

Example

{
"kind": "schedule",
"status": "proposed"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string

Example generated

{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}