openapi: 3.0.3 info: title: Duvo Public Agent Folders Schedules API description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard. version: 1.0.0 servers: - url: https://api.duvo.ai description: Production server tags: - name: Schedules description: List schedules configured for an agent paths: /v2/agents/{agent_id}/schedules: post: operationId: createSchedule tags: - Schedules description: Create a schedule for an agent. The schedule fires against the agent's live build. The authenticated user owns the schedule. requestBody: required: true content: application/json: schema: type: object properties: enabled: type: boolean frequency: type: string enum: - every_5_minutes - every_15_minutes - hourly - daily - workday - weekly - monthly - custom time: nullable: true type: string timezone: type: string day: nullable: true type: string enum: - monday - tuesday - wednesday - thursday - friday - saturday - sunday day_of_month: nullable: true type: integer minimum: 1 maximum: 31 cron: nullable: true type: string recurring: nullable: true type: boolean required: - enabled - frequency - timezone parameters: - schema: type: string format: uuid in: path name: agent_id required: true description: The agent's unique identifier security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string build_id: type: string agent_id: type: string user_id: type: string enabled: type: boolean frequency: type: string enum: - every_5_minutes - every_15_minutes - hourly - daily - workday - weekly - monthly - custom time: nullable: true type: string timezone: type: string day: nullable: true type: string day_of_month: nullable: true type: number cron: nullable: true type: string source: nullable: true type: string task: nullable: true type: string recurring: nullable: true type: boolean auto_disabled_at: nullable: true type: string auto_disabled_reason: nullable: true type: string consecutive_missing_connection_failures: type: integer minimum: 0 maximum: 9007199254740991 first_missing_connection_failure_at: nullable: true type: string last_missing_connection_failure_at: nullable: true type: string created_at: type: string updated_at: type: string user_name: nullable: true type: string user_email: nullable: true type: string required: - id - build_id - agent_id - user_id - enabled - frequency - time - timezone - day - day_of_month - cron - source - task - recurring - auto_disabled_at - auto_disabled_reason - consecutive_missing_connection_failures - first_missing_connection_failure_at - last_missing_connection_failure_at - created_at - updated_at additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false summary: Create Schedule get: operationId: listAgentSchedules tags: - Schedules description: List all schedules configured for an agent. Returns the schedules you own on this agent. parameters: - schema: type: string format: uuid in: path name: agent_id required: true description: The agent's unique identifier security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: schedules: type: array items: type: object properties: id: type: string build_id: type: string agent_id: type: string user_id: type: string enabled: type: boolean frequency: type: string enum: - every_5_minutes - every_15_minutes - hourly - daily - workday - weekly - monthly - custom time: nullable: true type: string timezone: type: string day: nullable: true type: string day_of_month: nullable: true type: number cron: nullable: true type: string source: nullable: true type: string task: nullable: true type: string recurring: nullable: true type: boolean auto_disabled_at: nullable: true type: string auto_disabled_reason: nullable: true type: string consecutive_missing_connection_failures: type: integer minimum: 0 maximum: 9007199254740991 first_missing_connection_failure_at: nullable: true type: string last_missing_connection_failure_at: nullable: true type: string created_at: type: string updated_at: type: string user_name: nullable: true type: string user_email: nullable: true type: string required: - id - build_id - agent_id - user_id - enabled - frequency - time - timezone - day - day_of_month - cron - source - task - recurring - auto_disabled_at - auto_disabled_reason - consecutive_missing_connection_failures - first_missing_connection_failure_at - last_missing_connection_failure_at - created_at - updated_at additionalProperties: false description: Schedules the authenticated user owns on this agent required: - schedules additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false summary: List Agent Schedules /v2/agents/{agent_id}/schedules/{schedule_id}: patch: operationId: updateSchedule tags: - Schedules description: Update fields on an existing schedule. Only supplied fields are changed; omitted fields retain their current values. Owners may update their own schedules; team superadmins may update any schedule on agents in the current team. requestBody: required: true content: application/json: schema: type: object properties: enabled: type: boolean frequency: type: string enum: - every_5_minutes - every_15_minutes - hourly - daily - workday - weekly - monthly - custom time: nullable: true type: string timezone: type: string day: nullable: true type: string enum: - monday - tuesday - wednesday - thursday - friday - saturday - sunday day_of_month: nullable: true type: integer minimum: 1 maximum: 31 cron: nullable: true type: string recurring: nullable: true type: boolean parameters: - schema: type: string format: uuid in: path name: agent_id required: true description: The agent's unique identifier - schema: type: string format: uuid in: path name: schedule_id required: true description: The schedule's unique identifier security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string build_id: type: string agent_id: type: string user_id: type: string enabled: type: boolean frequency: type: string enum: - every_5_minutes - every_15_minutes - hourly - daily - workday - weekly - monthly - custom time: nullable: true type: string timezone: type: string day: nullable: true type: string day_of_month: nullable: true type: number cron: nullable: true type: string source: nullable: true type: string task: nullable: true type: string recurring: nullable: true type: boolean auto_disabled_at: nullable: true type: string auto_disabled_reason: nullable: true type: string consecutive_missing_connection_failures: type: integer minimum: 0 maximum: 9007199254740991 first_missing_connection_failure_at: nullable: true type: string last_missing_connection_failure_at: nullable: true type: string created_at: type: string updated_at: type: string user_name: nullable: true type: string user_email: nullable: true type: string required: - id - build_id - agent_id - user_id - enabled - frequency - time - timezone - day - day_of_month - cron - source - task - recurring - auto_disabled_at - auto_disabled_reason - consecutive_missing_connection_failures - first_missing_connection_failure_at - last_missing_connection_failure_at - created_at - updated_at additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false summary: Update Schedule delete: operationId: deleteSchedule tags: - Schedules description: Delete a schedule. Owners may delete their own schedules; team superadmins may delete any schedule on agents in the current team. parameters: - schema: type: string format: uuid in: path name: agent_id required: true description: The agent's unique identifier - schema: type: string format: uuid in: path name: schedule_id required: true description: The schedule's unique identifier security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: success: type: boolean enum: - true required: - success additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string required: - error additionalProperties: false summary: Delete Schedule components: securitySchemes: bearerAuth: type: http scheme: bearer description: API key authentication. Get your API key from the Duvo dashboard.