OpenProject User Working Times API

User working times allow configuring per-user working hours and personal non-working days, in addition to the system-wide work schedule. A `UserWorkingHours` record defines how many hours a user works on each day of the week, along with an availability factor, effective from a given date (`validFrom`). Multiple records can exist for a user, each representing a period of their working time configuration. Only the most recently effective record (i.e., the one with the latest `validFrom` that is not in the future) is used for capacity calculations. A `UserNonWorkingTime` marks a date range as non-working for a user (e.g., a personal day off or a local holiday not covered by the system-wide non-working days). If a personal non-working time overlaps with system-wide non-working days, those days are not counted twice. ## UserWorkingHours Actions | Link | Description | Condition | | :----: | ----------------------------------- | --------------------------------------------------------------------------------------------- | | update | Update this working hours record | Record has not yet taken effect (`validFrom` is in the future); **Permission**: see below | | delete | Delete this working hours record | **Permission**: see below | ## UserWorkingHours Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | -------------------------------------------------------- | ----------------- | ----------- | -------------------- | | self | This working hours record | UserWorkingHours | not null | READ | | user | The user this working hours record belongs to | User | not null | READ | ## UserWorkingHours Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------: | ----------------------------------------------------------------------------------------- | ------- | -------------------- | -------------------- | | id | The unique identifier of the record | Integer | x > 0 | READ | | validFrom | The date from which this working hours configuration takes effect (ISO 8601 format) | Date | not null | READ / WRITE | | mondayHours | Hours worked on Monday | Float | x >= 0 | READ / WRITE | | tuesdayHours | Hours worked on Tuesday | Float | x >= 0 | READ / WRITE | | wednesdayHours | Hours worked on Wednesday | Float | x >= 0 | READ / WRITE | | thursdayHours | Hours worked on Thursday | Float | x >= 0 | READ / WRITE | | fridayHours | Hours worked on Friday | Float | x >= 0 | READ / WRITE | | saturdayHours | Hours worked on Saturday | Float | x >= 0 | READ / WRITE | | sundayHours | Hours worked on Sunday | Float | x >= 0 | READ / WRITE | | availabilityFactor| Percentage of working hours the user is available (0–100) | Integer | 0 0 | READ | | startDate | The first date of the non-working time range (ISO 8601 format) | Date | not null | READ / WRITE | | endDate | The last date of the non-working time range (ISO 8601 format) | Date | not null, >= startDate | READ / WRITE | ## UserNonWorkingTime Permissions - **Administrators** can read and manage personal non-working days for any user. - Users with the global **`manage_own_working_times`** permission can read and manage their own non-working days. - Users with the global **`manage_working_times`** permission can read and manage non-working days for any user. - A personal non-working time must not overlap with another non-working time record for the same user.

Operations 10

GET /api/v3/users/{id}/non_working_times List personal non-working times for a user #
POST /api/v3/users/{id}/non_working_times Create a personal non-working day for a user #
GET /api/v3/users/{id}/non_working_times/{non_working_time_id} View a personal non-working time record #
PATCH /api/v3/users/{id}/non_working_times/{non_working_time_id} Update a personal non-working time record #
DELETE /api/v3/users/{id}/non_working_times/{non_working_time_id} Delete a personal non-working time record #
GET /api/v3/users/{id}/working_hours List working hours for a user #
POST /api/v3/users/{id}/working_hours Create a working hours record for a user #
GET /api/v3/users/{id}/working_hours/{working_hours_id} View a working hours record #
PATCH /api/v3/users/{id}/working_hours/{working_hours_id} Update a working hours record #
DELETE /api/v3/users/{id}/working_hours/{working_hours_id} Delete a working hours record #

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-user-working-times-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-user-working-times-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) User Working Times 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:


# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openproject/refs/heads/main/openapi/openproject-user-working-times-api-openapi.yml