iTwin Schedules API

Plan and manage 4D construction schedules. The largest iTwin API surface — 128 operations — covering tasks, resources, calendars, baselines, animations, work breakdown structures, and progress tracking for SYNCHRO-grade project management.

OpenAPI Specification

itwin-schedules-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: iTwin Schedules API
  description: "Plan and manage 4D construction schedules \u2014 tasks, resources, calendars, baselines, animations, and work\
    \ breakdown."
  version: '1.0'
  contact:
    name: Bentley Developer Relations
    url: https://developer.bentley.com/apis/schedules/
  license:
    name: Bentley Developer Portal Terms
    url: https://developer.bentley.com/legal/
servers:
- url: https://api.bentley.com/schedules
  description: iTwin Platform Production
externalDocs:
  description: iTwin Schedules API Documentation
  url: https://developer.bentley.com/apis/schedules/
tags:
- name: Schedules
  description: Schedules resources for the iTwin Schedules API.
- name: Tasks
  description: Tasks resources for the iTwin Schedules API.
- name: Resources
  description: Resources resources for the iTwin Schedules API.
- name: Calendars
  description: Calendars resources for the iTwin Schedules API.
- name: Animations
  description: Animations resources for the iTwin Schedules API.
- name: Baselines
  description: Baselines resources for the iTwin Schedules API.
- name: Work Breakdown
  description: Work Breakdown resources for the iTwin Schedules API.
security:
- OAuth2: []
paths:
  /:
    get:
      tags:
      - Schedules
      summary: Get Schedules
      operationId: GetSchedules
      responses:
        '200':
          description: List of Schedules
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Schedules
      summary: Create Schedule
      operationId: CreateSchedule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Schedule created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Schedules
      summary: Get Schedules
      operationId: GetSchedules
      responses:
        '200':
          description: List of Schedules
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Schedules
      summary: Update Schedule
      operationId: UpdateSchedule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Schedule updated
    delete:
      tags:
      - Schedules
      summary: Delete Schedule
      operationId: DeleteSchedule
      responses:
        '204':
          description: Schedule deleted
  /{scheduleId}/tasks:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Tasks
      summary: Get Tasks
      operationId: GetTasks
      responses:
        '200':
          description: List of Tasks
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Tasks
      summary: Create Task
      operationId: CreateTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Task created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}/tasks/{taskId}:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    - name: taskId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Tasks
      summary: Get Tasks
      operationId: GetTasks
      responses:
        '200':
          description: List of Tasks
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Tasks
      summary: Update Task
      operationId: UpdateTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Task updated
    delete:
      tags:
      - Tasks
      summary: Delete Task
      operationId: DeleteTask
      responses:
        '204':
          description: Task deleted
  /{scheduleId}/resources:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Resources
      summary: Get Resources
      operationId: GetResources
      responses:
        '200':
          description: List of Resources
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Resources
      summary: Create Resource
      operationId: CreateResource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Resource created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}/resources/{resourceId}:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    - name: resourceId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Resources
      summary: Get Resources
      operationId: GetResources
      responses:
        '200':
          description: List of Resources
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Resources
      summary: Update Resource
      operationId: UpdateResource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Resource updated
    delete:
      tags:
      - Resources
      summary: Delete Resource
      operationId: DeleteResource
      responses:
        '204':
          description: Resource deleted
  /{scheduleId}/calendars:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Calendars
      summary: Get Calendars
      operationId: GetCalendars
      responses:
        '200':
          description: List of Calendars
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Calendars
      summary: Create Calendar
      operationId: CreateCalendar
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Calendar created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}/animations:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Animations
      summary: Get Animations
      operationId: GetAnimations
      responses:
        '200':
          description: List of Animations
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Animations
      summary: Create Animation
      operationId: CreateAnimation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Animation created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}/baselines:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Baselines
      summary: Get Baselines
      operationId: GetBaselines
      responses:
        '200':
          description: List of Baselines
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Baselines
      summary: Create Baseline
      operationId: CreateBaseline
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Baseline created
          content:
            application/json:
              schema:
                type: object
  /{scheduleId}/wbs:
    parameters:
    - name: scheduleId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Work Breakdown
      summary: Get Work Breakdown
      operationId: GetWorkBreakdown
      responses:
        '200':
          description: List of Work Breakdown
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Work Breakdown
      summary: Create Work Breakdown
      operationId: CreateWorkBreakdown
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Work Breakdown created
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      description: "iTwin Platform OAuth2 \u2014 Bentley IMS"
      flows:
        authorizationCode:
          authorizationUrl: https://ims.bentley.com/connect/authorize
          tokenUrl: https://ims.bentley.com/connect/token
          scopes:
            itwin-platform: Full access to iTwin Platform APIs
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: array
              items:
                type: object