Skip to main content
POST
Create schedule

Permissions

Requires a service user with the ManageOrgSchedules permission at the organization level.

Schedule type

The schedule_type field controls whether the schedule is recurring or one-time:
  • recurring (default) — Requires the frequency field with a cron expression
  • one_time — Requires the scheduled_at field with an ISO 8601 datetime in the future

Frequency

For recurring schedules, the frequency field accepts a standard cron expression (e.g., 0 9 * * 1-5 for weekdays at 9 AM UTC).

Scheduled at

For one-time schedules, the scheduled_at field accepts an ISO 8601 datetime with timezone (e.g., 2026-03-01T09:00:00Z). The datetime must be in the future. After execution, the schedule is automatically disabled.

Agent types

User impersonation

The create_as_user_id parameter allows creating a schedule on behalf of another user. This requires:
  1. The service user must have ImpersonateOrgSessions permission
  2. The target user must be a member of the organization
  3. The target user must have UseDevinSessions permission

Authorizations

Authorization
string
header
required

Service User credential (prefix: cog_)

Path Parameters

org_id
string
required

Organization ID (prefix: org-)

Example:

"org-abc123def456"

Body

application/json
name
string
required
prompt
string
required
agent
enum<string>
default:devin
Available options:
devin,
data_analyst
bypass_approval
boolean
default:false
create_as_user_id
string | null
frequency
string | null
interval_count
integer
default:1
notify_on
enum<string>
default:failure
Available options:
always,
failure,
never
platform
string | null

VM platform for sessions spawned by this schedule (e.g. 'windows'). When omitted, sessions fall back to the org's default platform at trigger time. Value must match a platform configured for the organization (case-insensitive); unknown values are rejected with a 400 that lists the available platform labels.

playbook_id
string | null
schedule_type
enum<string>
default:recurring
Available options:
recurring,
one_time
scheduled_at
string<date-time> | null
slack_channel_id
string | null
slack_team_id
string | null
tags
string[] | null
target_devin_id
string | null

Response

Successful Response

agent
enum<string>
required
Available options:
devin,
data_analyst
consecutive_failures
integer
required
created_at
string<date-time>
required
created_by
string | null
required
enabled
boolean
required
frequency
string | null
required
last_error_at
string<date-time> | null
required
last_error_message
string | null
required
last_executed_at
string<date-time> | null
required
name
string
required
notify_on
enum<string>
required
Available options:
always,
failure,
never
org_id
string
required
playbook
PlaybookInfo · object | null
required
prompt
string
required
scheduled_session_id
string
required
updated_at
string<date-time>
required
bypass_approval
boolean
default:false
interval_count
integer
default:1
last_edited_by
string | null
platform
string | null
schedule_type
enum<string>
default:recurring
Available options:
recurring,
one_time
scheduled_at
string<date-time> | null
slack_channel_id
string | null
slack_team_id
string | null
tags
string[] | null
target_devin_id
string | null