OpenProject Work Schedule API

The work schedule defines if days are working days or non-working days. A day can be a non-working day if any of these two conditions are met: - the day is a recurring non-working week day: a weekend day. For instance Sunday is not worked in most countries; - the day has been defined as a non-working day: national bank holidays or other days deemed special. For instance the 1st of January is New Year's day and is a bank holiday in most countries. Endpoints can define which week days are working/non-working days, and which dates are non-working days. To represent the work schedule, `Day`, `WeekDay`, and `NonWorkingDay` models are used. ## Day Actions None ## Day Linked Properties | Link | Description | Type | Constraints | Supported operations | | :---------------: | ---------------------------------------------------------------- | ------------------------- | ----------- | -------------------- | | self | This day | Day | not null | READ | | nonWorkingReasons | A list of resources describing why this day is a non-working day | (WeekDay/NonWorkingDay)[] | | READ | | weekDay | The week day for this day | WeekDay | not null | READ | ## Day Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------: | ------------------------------------------- | ------- | -------------- | -------------------- | | date | The date in ISO8601 format (YYYY-MM-DD) | Date | not null | READ | | name | The name of the day | String | not null | READ | | working | `true` for a working day, `false` otherwise | Boolean | not null | READ | ## WeekDay Actions | Link | Description | Condition | | :----: | -------------------- | ---------------------------------- | | update | Update this week day | **Permission**: edit work schedule | ## WeekDay Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | ------------- | ------- | ----------- | -------------------- | | self | This week day | WeekDay | not null | READ | ## WeekDay Local Properties | Property | Description | Type | Constraints | Supported operations | | :------: | --------------------------------------------------- | ------- | -------------- | -------------------- | | day | The week day from 1 to 7. 1 is Monday. 7 is Sunday. | Integer | x >= 1, x <= 7 | READ | | name | The name of the week day | String | not null | READ | | working | `true` for a working week day, `false` otherwise | Boolean | not null | READ/WRITE | ## NonWorkingDay Actions | Link | Description | Condition | | :----: | --------------------------- | ---------------------------------- | | update | Update this non-working day | **Permission**: edit work schedule | ## NonWorkingDay Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | -------------------- | ------------- | ----------- | -------------------- | | self | This non-working day | NonWorkingDay | not null | READ | ## NonWorkingDay Local Properties | Property | Description | Type | Constraints | Supported operations | | :------: | --------------------------------------- | ------ | ----------- | -------------------- | | date | The date in ISO8601 format (YYYY-MM-DD) | Date | not null | READ | | name | The name of the non-working day day | String | not null | READ/WRITE |

Operations 11

GET /api/v3/days/non_working Lists all non working days #
POST /api/v3/days/non_working Creates a non-working day (NOT IMPLEMENTED) #
GET /api/v3/days/non_working/{date} View a non-working day #
PATCH /api/v3/days/non_working/{date} Update a non-working day attributes (NOT IMPLEMENTED) #
DELETE /api/v3/days/non_working/{date} Removes a non-working day (NOT IMPLEMENTED) #
GET /api/v3/days/week Lists week days #
PATCH /api/v3/days/week Update week days (NOT IMPLEMENTED) #
GET /api/v3/days/week/{day} View a week day #
PATCH /api/v3/days/week/{day} Update a week day attributes (NOT IMPLEMENTED) #
GET /api/v3/days Lists days #
GET /api/v3/days/{date} View day #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openproject-work-schedule-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openproject-work-schedule-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: You're looking at the current **stable** documentation of the OpenProject APIv3.
  title: OpenProject API V3 (Stable) Work Schedule API
  version: '3'
servers:
- url: https://qa.openproject-edge.com
  description: Edge QA instance
- url: https://qa.openproject-stage.com
  description: Staging instance
- url: https://community.openproject.org
  description: Community instance
security:
- BasicAuth: []
tags:
- name: Work Schedule
  description: The work schedule defines if days are working days or non-working days.
paths:
  /api/v3/days/non_working:
    get:
      summary: Lists all non working days
      operationId: list_non_working_days
      tags:
      - Work Schedule
      description: 'Lists all one-time non working days, such as holidays.

        It does not lists the non working weekdays, such as each Saturday, Sunday.

        For listing the weekends, the `/api/v3/days` endpoint should be used.


        All days from current year are returned by default.'
      parameters:
      - name: filters
        in: query
        description: "JSON specifying filter conditions.\n\nAccepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/)\nendpoint. Currently supported filters are:\n\n+ date: the inclusive date interval to scope days to look up. When\n  unspecified, default is from the beginning to the end of current year.\n\n  Example: `{ \"date\": { \"operator\": \"<>d\", \"values\": [\"2022-05-02\",\"2022-05-26\"] } }`\n  would return days between May 5 and May 26 2022, inclusive."
        example: '[{ "date": { "operator": "<>d", "values": ["2022-05-02","2022-05-26"] } }]'
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/NonWorkingDayCollectionModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
    post:
      summary: Creates a non-working day (NOT IMPLEMENTED)
      operationId: create_non_working_day
      tags:
      - Work Schedule
      description: '**(NOT IMPLEMENTED)**

        Marks a day as being a non-working day.


        Note: creating a non-working day will not affect the start and finish dates

        of work packages but will affect their duration.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NonWorkingDayModel'
            example:
              _type: NonWorkingDay
              date: '2022-12-25'
              name: Christmas
      responses:
        '201':
          description: Non-working day created.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/NonWorkingDayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '403':
          description: Returned if the client does not have sufficient permissions.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
                message: You are not authorized to access this resource.
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
  /api/v3/days/non_working/{date}:
    get:
      summary: View a non-working day
      operationId: view_non_working_day
      tags:
      - Work Schedule
      description: Returns the non-working day information for a given date.
      parameters:
      - name: date
        in: path
        required: true
        description: The date of the non-working day to view in ISO 8601 format.
        schema:
          type: string
          format: date
        example: '2022-05-06'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/NonWorkingDayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '404':
          description: Returned if the given date is not a non-working day.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                message: The requested resource could not be found.
    patch:
      summary: Update a non-working day attributes (NOT IMPLEMENTED)
      operationId: update_non_working_day
      tags:
      - Work Schedule
      description: '**(NOT IMPLEMENTED)**

        Update the non-working day information for a given date.'
      parameters:
      - name: date
        in: path
        required: true
        description: The date of the non-working day to view in ISO 8601 format.
        schema:
          type: string
          format: date
        example: '2022-05-06'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NonWorkingDayModel'
            example:
              _type: NonWorkingDay
              date: '2022-05-01'
              name: Labour day
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/NonWorkingDayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '404':
          description: Returned if the given date is not a non-working day.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                message: The requested resource could not be found.
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
    delete:
      summary: Removes a non-working day (NOT IMPLEMENTED)
      operationId: delete_non_working_day
      tags:
      - Work Schedule
      description: '**(NOT IMPLEMENTED)**

        Removes the non-working day at the given date.


        Note: deleting a non-working day will not affect the start and finish dates

        of work packages but will affect their duration.'
      parameters:
      - name: date
        in: path
        required: true
        description: The date of the non-working day to view in ISO 8601 format.
        schema:
          type: string
          format: date
        example: '2022-05-06'
      responses:
        '204':
          description: 'No Content.


            The operation succeeded.'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '404':
          description: Returned if the given date is not a non-working day.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                message: The requested resource could not be found.
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
  /api/v3/days/week:
    get:
      summary: Lists week days
      operationId: list_week_days
      tags:
      - Work Schedule
      description: Lists week days with work schedule information.
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WeekDayCollectionModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
    patch:
      summary: Update week days (NOT IMPLEMENTED)
      operationId: update_week_days
      tags:
      - Work Schedule
      description: '**(NOT IMPLEMENTED)**

        Update multiple week days with work schedule information.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WeekDayCollectionWriteModel'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WeekDayCollectionModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '404':
          description: Returned if a week day resource can not be found.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
                message: The requested resource could not be found.
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
  /api/v3/days/week/{day}:
    get:
      summary: View a week day
      operationId: view_week_day
      tags:
      - Work Schedule
      description: View a week day and its attributes.
      parameters:
      - name: day
        in: path
        required: true
        description: The week day from 1 to 7. 1 is Monday. 7 is Sunday.
        schema:
          type: integer
          minimum: 1
          maximum: 7
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WeekDayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '404':
          description: Returned if the day is out of the 1-7 range.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                message: The requested resource could not be found.
    patch:
      summary: Update a week day attributes (NOT IMPLEMENTED)
      operationId: update_week_day
      description: '**(NOT IMPLEMENTED)**

        Makes a week day a working or non-working day.


        Note: changing a week day working attribute will not affect the start and

        finish dates of work packages but will affect their duration attribute.'
      tags:
      - Work Schedule
      parameters:
      - name: day
        in: path
        required: true
        description: The week day from 1 to 7. 1 is Monday. 7 is Sunday.
        schema:
          type: integer
          minimum: 1
          maximum: 7
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WeekDayWriteModel'
            example:
              _type: WeekDay
              working: false
      responses:
        '200':
          description: 'Update succeeded.


            Response will include the week day with updated attributes.'
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WeekDayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '403':
          description: Returned if the client does not have sufficient permissions.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
                message: You are not authorized to access this resource.
        '404':
          description: Returned if the day is out of the 1-7 range.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
                message: The requested resource could not be found.
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
  /api/v3/days:
    get:
      summary: Lists days
      operationId: list_days
      tags:
      - Work Schedule
      description: 'Lists days information for a given date interval.


        All days from the beginning of current month to the end of following month

        are returned by default.'
      parameters:
      - name: filters
        in: query
        description: "JSON specifying filter conditions.\n\nAccepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/)\nendpoint. Currently supported filters are:\n\n+ date: the inclusive date interval to scope days to look up. When\n  unspecified, default is from the beginning of current month to the end\n  of following month.\n\n  Example: `{ \"date\": { \"operator\": \"<>d\", \"values\": [\"2022-05-02\",\"2022-05-26\"] } }`\n  would return days between May 5 and May 26 2022, inclusive.\n\n+ working: when `true`, returns only the working days. When `false`,\n  returns only the non-working days (weekend days and non-working days).\n  When unspecified, returns both working and non-working days.\n\n  Example: `{ \"working\": { \"operator\": \"=\", \"values\": [\"t\"] } }`\n  would exclude non-working days from the response."
        example: '[{ "date": { "operator": "<>d", "values": ["2022-05-02","2022-05-26"] } }, { "working": { "operator": "=", "values": ["f"] } }]'
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DayCollectionModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
        '406':
          $ref: '#/components/responses/MissingContentType'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
  /api/v3/days/{date}:
    get:
      summary: View day
      operationId: view_day
      tags:
      - Work Schedule
      description: View the day information for a given date.
      parameters:
      - name: date
        in: path
        required: true
        description: The date of the non-working day to view in ISO 8601 format.
        schema:
          type: string
          format: date
        example: '2022-05-06'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DayModel'
        '400':
          $ref: '#/components/responses/InvalidRequestBody'
components:
  schemas:
    WeekDayWriteModel:
      type: object
      description: Describes a week day as a working day or a non-working day (weekend).
      required:
      - _type
      - working
      properties:
        _type:
          type: string
          enum:
          - WeekDay
        working:
          type: boolean
          description: '`true` for a working day. `false` for a weekend day.'
      example:
        _type: WeekDay
        working: false
    WeekDayModel:
      type: object
      required:
      - _type
      - day
      - name
      - working
      properties:
        _type:
          type: string
          enum:
          - WeekDay
        day:
          type: integer
          description: The week day from 1 to 7. 1 is Monday. 7 is Sunday.
          readOnly: true
          minimum: 1
          maximum: 7
        name:
          type: string
          description: The week day name.
        working:
          type: boolean
          description: '`true` for a working week day, `false` otherwise.'
        _links:
          allOf:
          - $ref: '#/components/schemas/WeekDaySelfLinkModel'
      example:
        _type: WeekDay
        day: 5
        name: Friday
        working: false
        _links:
          self:
            href: /api/v3/day/week/5
            title: Friday
    CollectionLinks:
      type: object
      required:
      - self
      properties:
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
          - description: 'This collection resource.


              **Resource**: Collection'
    NonWorkingDayCollectionModel:
      allOf:
      - $ref: '#/components/schemas/CollectionModel'
      - type: object
        required:
        - _links
        - _embedded
        properties:
          _links:
            type: object
            required:
            - self
            properties:
              self:
                allOf:
                - $ref: '#/components/schemas/Link'
                - description: 'This non working days collection


                    **Resource**: NonWorkingDayCollectionModel'
          _embedded:
            type: object
            required:
            - elements
            properties:
              elements:
                type: array
                description: The array of non working days. Each day has a name and a date.
                items:
                  $ref: '#/components/schemas/NonWorkingDayModel'
      example:
        _type: Collection
        total: 2
        count: 2
        _links:
          self:
            href: /api/v3/non_working?filters=[{"interval":{"operator":"<>d","values":["2022-04-29","2022-12-24"]}}]
        _embedded:
          elements:
          - _type: NonWorkingDay
            date: '2022-12-24'
            name: Christmas Evening
            _links:
              self:
                href: /api/v3/days/non_working/2022-04-24
              weekday:
                href: /api/v3/days/week/6
                title: Saturday
          - _type: NonWorkingDay
            date: '2022-05-01'
            name: Labour day
            _links:
              self:
                href: /api/v3/days/non_working/2022-05-01
              weekday:
                href: /api/v3/days/week/7
                title: Sunday
    Link:
      type: object
      required:
      - href
      properties:
        href:
          type:
          - string
          - 'null'
          description: URL to the referenced resource (might be relative)
        title:
          type: string
          description: Representative label for the resource
        templated:
          type: boolean
          default: false
          description: If true the href contains parts that need to be replaced by the client
        method:
          type: string
          default: GET
          description: The HTTP verb to use when requesting the resource
        payload:
          type: object
          description: The payload to send in the request to achieve the desired result
        identifier:
          type: string
          description: An optional unique identifier to the link object
        type:
          type: string
          description: The MIME-Type of the returned resource.
      example:
        href: /api/v3/work_packages
        method: POST
    DayCollectionModel:
      allOf:
      - $ref: '#/components/schemas/CollectionModel'
      - type: object
        required:
        - _links
        - _embedded
        properties:
          _links:
            type: object
            required:
            - self
            properties:
              self:
                allOf:
                - $ref: '#/components/schemas/Link'
                - description: 'This days collection


                    **Resource**: DayCollectionModel'
          _embedded:
            type: object
            required:
            - elements
            properties:
              elements:
                type: array
                description: 'The array of days. Each day has a name and a working status

                  indicating if it is a working or a non-working day.'
                items:
                  $ref: '#/components/schemas/DayModel'
      example:
        _type: Collection
        total: 5
        count: 5
        _links:
          self:
            href: /api/v3/days?filters=[{"interval":{"operator":"<>d","values":["2022-04-29","2022-05-03"]}}]
        _embedded:
          elements:
          - _type: Day
            date: '2022-04-29'
            name: Friday
            working: true
            _links:
              self:
                href: /api/v3/days/2022-04-29
              weekday:
                href: /api/v3/days/week/5
                title: Friday
          - _type: Day
            date: '2022-04-30'
            name: Saturday
            working: false
            _links:
              self:
                href: /api/v3/days/2022-04-30
              nonWorkingReasons:
              - href: /api/v3/days/week/6
                title: Saturday
              weekday:
                href: /api/v3/days/week/6
                title: Saturday
          - _type: Day
            date: '2022-05-01'
            name: Sunday (Labour day)
            working: false
            _links:
              self:
                href: /api/v3/days/2022-05-01
              nonWorkingReasons:
              - href: /api/v3/days/week/7
                title: Sunday
              - href: /api/v3/days/non_working/2022-05-01
                title: Labour day
              weekday:
                href: /api/v3/days/week/7
                title: Sunday
          - _type: Day
            date: '2022-05-02'
            name: Monday
            working: true
            _links:
              self:
                href: /api/v3/days/2022-05-02
              weekday:
                href: /api/v3/days/week/1
                title: Monday
          - _type: Day
            date: '2022-05-03'
            name: Tuesday
            working: true
            _links:
              self:
                href: /api/v3/days/2022-05-03
              weekday:
                href: /api/v3/days/week/2
                title: Tuesday
    DayModel:
      type: object
      required:
      - _type
      - date
      - name
      - working
      properties:
        _type:
          type: string
          enum:
          - Day
        date:
          type: string
          format: date
          description: Date of the day.
        name:
          type: string
          description: Descriptive name for the day.
        working:
          type: boolean
          description: '`true` for a working day, `false` otherwise.'
        _links:
          type: object
          required:
          - self
          properties:
            self:
              $ref: '#/components/schemas/Link'
            nonWorkingReasons:
              type: array
              description: 'A list of resources describing why this day is a non-working day.

                Linked resources can be `NonWorkingDay` and `WeekDay` resources.

                This property is absent for working days.'
              items:
                $ref: '#/components/schemas/Link'
            weekDay:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: The week day for this day.
      example:
        _type: Day
        date: '2022-12-25'
        name: Sunday (Christmas)
        working: false
        _links:
          self:
            href: /api/v3/days/2022-12-25
          nonWorkingReasons:
          - href: /api/v3/days/week/7
            title: Sunday
          - href: /api/v3/days/non_working/2022-12-25
            title: Christmas
          weekday:
            href: /api/v3/days/week/7
            title: Sunday
    WeekDayCollectionModel:
      allOf:
      - $ref: '#/components/schemas/CollectionModel'
      - type: object
        required:
        - _links
        - _embedded
        properties:
          _links:
            type: object
            required:
            - self
            properties:
              self:
                allOf:
                - $ref: '#/components/schemas/Link'
                - description: 'This week days collection


                    **Resource**: WeekDayCollectionModel'
          _embedded:
            type: object
            required:
            - elements
            properties:
              elements:
                type: array
                description: The array of week days.
                minItems: 7
                maxItems: 7
                items:
                  $ref: '#/components/schemas/WeekDayModel'
      example:
        _type: Collection
        total: 7
        count: 7
        _links:
          self:
            href: /api/v3/days/week
        _embedded:
          elements:
          - _type: WeekDay
            day: 1
            name: Monday
            working: true
            _links:
              self:
                href: /api/v3/days/week/1
                title: Monday
          - _type: WeekDay
            day: 2
            name: Tuesday
            working: true
            _links:
              self:
                href: /api/v3/days/week/2
                title: Tuesday
          - _type: WeekDay
            day: 3
            name: Wednesday
            working: true
            _links:
              self:
                href: /api/v3/days/week/3
                title: Wednesday
          - _type: WeekDay
            day: 4
            name: Thursday
            working: true
            _links:
              self:
                href: /api/v3/days/week/4
                title: Thursday
          - _type: WeekDay
            day: 5
            name: Friday
            working: true
            _links:
              self:
                href: /api/v3/days/week/5
                title: Friday
          - _type: WeekDay
            day: 6
            name: Saturday
            working: false
            _links:
              self:
                href: /api/v3/days/week/6
                title: Saturday
          - _type: WeekDay
            day: 7
            name: Sunday
            working: false
            _links:
              self:
                href: /api/v3/days/week/7
                title: Sunday
    NonWorkingDayModel:
      type: object
      required:
      - _type
      - date
      - name
      properties:
        _type:
          type: string
          enum:
          - NonWorkingDay
        date:
          type: string
          format: date
          description: Date of the non-working day.
        name:
          type: string
          description: Descriptive name for the non-working day.
        _links:
          type: object
          required:
          - self
          properties:
            self:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: 'This non-working day.


                  **Resource**: NonWorkingDay'
      example:
        _type: NonWorkingDay
        date: '2022-12-25'
        name: Christmas
        _links:
          self:
            href: /api/v3/days/non_working/2022-12-25
            title: Christmas
    WeekDaySelfLinkModel:
      type: object
      description: Identify a particular week day by its href.
      properties:
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
          - description: 'This week day resource link.


              **Resource**: WeekDay'
            readOnly: true
      example:
        self:
          href: /api/v3/days/week/3
          title: Wednesday
    ErrorResponse:
      type: object
      required:
      - _type
      - errorIdentifier
      - message
      properties:
        _embedded:
          type: object
          properties:
            details:
              type: object
              properties:
                attribute:
                  type: string
                  example: project
        _type:
          type: string
          enum:
          - Error
        errorIdentifier:
          type: string
          example: urn:openproject-org:api:v3:errors:PropertyConstraintViolation
        message:
          type: string
          example: Project can't be blank.
    WeekDayCollectionWriteModel:
      type: object
      required:
      - _type
      - _embedded
      properties:
        _type:
          type: string
          enum:
          - Collection
        _embedded:
          type: object
          required:
          - elements
          properties:
            elements:
              type: array
              description: The array of week days.
              minItems: 1
              maxItems: 7
              items:
                allOf:
                - $ref: '#/components/schemas/WeekDayWriteModel'
                - type: object
                  required:
                  - _links
                  properties:
                    _links:
                      allOf:
                      - $ref: '#/components/schemas/WeekDaySelfLinkModel'
      example:
        _type: Collection
        _embedded:
          elements:
          - _type: WeekDay
            working: true
            _links:
              self:
                href: /api/v3/days/week/1
          - _type: WeekDay
            working: true
            _links:
              self:
                href: /api/v3/days/week/2
          - _type: WeekDay
            working: true
            _links:
              self:
                href: /api/v3/days/week/4
          - _type: WeekDay
            working: false
            _links:
              self:
                href: /api/v3/days/week/6
          - _type: WeekDay
            working: false
            _links:
              self:
                href: /api/v3/days/week/7
    CollectionModel:
      type: object
      required:
      - _type
      - total
      - count
      - _links
      properties:
        _type:
          type: string
          enum:
          - Collection
        total:
          type: integer
          description: The total amount of elements available in the collection.
          minimum: 0
        count:
          type: integer
          description: Actual amount of elements in this response.
          minimum: 0
        _links:
          $ref: '#/components/schemas/CollectionLinks'
  responses:
    MissingContentType:
      description: Occurs when the client did not send a Content-Type header
      content:
        text/plain:
          schema:
            type: string
          example: Missing content-type header
    InvalidRequestBody:
      description: Occurs when the client did not send a valid JSON object in the request body.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            _type: Error
            errorIdentifier: urn:openproject-org:api:v3:errors:InvalidRequestBody
            message: The request body was not a single JSON object.
    UnsupportedMediaType:
      description: Occurs when the client sends an unsupported Content-Type header.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            _type: Error
            errorIdentifier: urn:openproject-org:api:v3:errors:TypeNotSupported
            message: Expected CONTENT-TYPE to be (expected value) but got (actual value).
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic