> ## Documentation Index
> Fetch the complete documentation index at: https://api.buildingswell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule a deliverable

> Body is an action union (see 'ScheduleAction'); 'newStart'/'newFinish' are epoch **seconds**, not ISO date strings. Only one of the two is required per action — the engine derives the other.



## OpenAPI

````yaml /openapi.yaml post /deliverable/root/{rootId}/schedule/{id}
openapi: 3.0.3
info:
  title: BuildingSwell Public API
  version: 2.0.0
  description: >
    BuildingSwell v2 Public API. All endpoints require the `X-API-Key` header.

    Keys are scoped to your organization — all data is automatically filtered.


    See the [Guides](/index) for querying, filtering, joins, and response
    formats.
servers:
  - url: https://{instance}/api/v2
    description: Your BuildingSwell instance
    variables:
      instance:
        default: app.buildingswell.com
        description: Your BuildingSwell host
security:
  - ApiKeyAuth: []
tags:
  - name: Projects
    description: Top-level project groupings
  - name: Stages
    description: Stages — reusable department-scoped shop stations
  - name: Deliverables
    description: Work-tree nodes (orders, routes, phases, stages, steps, etc.)
  - name: Work sessions
    description: Work sessions on deliverables
  - name: Comments
    description: Comments on deliverables
  - name: Documents
    description: Documents attached to deliverables
  - name: Notes
    description: Notes on deliverables
  - name: Notifications
    description: Notifications and read-state
  - name: QC
    description: QC inspection sets and templates
  - name: Dependencies
    description: Dependency links between deliverables
  - name: Workers
    description: Workforce roster
  - name: Timesheets
    description: Unified time-tracking records (read-only)
  - name: Organization
    description: Roles and organization members
  - name: Concepts
    description: Concept-aware deliverable endpoints with validation
paths:
  /deliverable/root/{rootId}/schedule/{id}:
    post:
      tags:
        - Deliverables
      summary: Schedule a deliverable
      description: >-
        Body is an action union (see 'ScheduleAction'); 'newStart'/'newFinish'
        are epoch **seconds**, not ISO date strings. Only one of the two is
        required per action — the engine derives the other.
      parameters:
        - name: rootId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleAction'
      responses:
        '204':
          description: Scheduled — re-fetch the deliverable to see the new `schedule`
components:
  schemas:
    ScheduleAction:
      description: >-
        Discriminated union keyed on 'type'. 'newStart'/'newFinish' are epoch
        seconds. Only one of 'newStart'/'newFinish' needs to be supplied for
        'schedule', 'drag', 'shrink', and 'expand' — the engine derives the
        other from duration/dependencies.
      oneOf:
        - type: object
          required:
            - type
            - newStart
          properties:
            type:
              type: string
              enum:
                - schedule
            newStart:
              type: integer
              description: Epoch seconds
        - type: object
          required:
            - type
            - newFinish
          properties:
            type:
              type: string
              enum:
                - schedule
            newFinish:
              type: integer
              description: Epoch seconds
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - drag
            newStart:
              type: integer
              description: Epoch seconds
            newFinish:
              type: integer
              description: Epoch seconds
        - type: object
          required:
            - type
            - newDuration
          properties:
            type:
              type: string
              enum:
                - shrink
                - expand
            newDuration:
              type: integer
              description: Seconds
            newStart:
              type: integer
              description: Epoch seconds
            newFinish:
              type: integer
              description: Epoch seconds
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - reschedule
      discriminator:
        propertyName: type
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````