TimeEntries

Updates the time entry with the specified id.

Updates the time entry with the specified id. Depending on the time entry, the calling users has to have several permissions to update the time entry: No permissions are required if the calling user is owner of this time entry. If the calling user is not the creator of the time entry and the time entry is connected to a project, 'write' permissions on the 'project-timetracking' feature are necessary. If the time entry is connected to a task, the user needs to be assignee of this task or the user needs permissions on: 'project-planning-data' if it is a project task. The break duration of the time entry is kept the same. The break duration cannot be smaller than the duration of the time entry. To remove the breaks, use the endpoint POST /timeentries/{id}/removeBreaks. Following combination of times and duration are allowed for already completed time entries: - start time (local or utc) and end time (local or utc) (this option always takes precedence) - start time (local or utc) and duration - end time (local or utc) and duration For running time entries, you can only update the start time (local or utc) while the duration stays 0.

<Check title="Required Permissions" icon="key">Any authenticated user.</Check>

put/timeentries/{timeEntryId}

Path parameters

timeEntryIdstring uuid required

The id of the time entry.

Request body

isBillableboolean

Whether the time tracking is billable or not.

isBilledboolean

Whether the time tracking is billed or not.

taskIdstring uuid nullable

The id of the task.

projectIdstring uuid nullable

The id of the project.

notestring nullable

The note of the time tracking.

isDateOnlyboolean

Whether the time entry is a date only entry.

startDatestring date-time

The date and time when the time entry was started in UTC. Required.

endDatestring date-time nullable

The date and time when the time entry ends in UTC. Not set if the time entry is still running.

timezonestring required

The original timezone of the time tracking. The format of the timezone is the IANA standard.

durationinteger nullable

The duration of the time tracking in seconds. Required when the time entry is not running.

typeOfWorkIdstring uuid required

The id of the type of work.

userIdstring uuid nullable

The id of the user. Can be null if the user was deleted.

Example request

{
  "isBillable": true,
  "taskId": "123e4567-e89b-12d3-a456-426614174000",
  "projectId": "123e4567-e89b-12d3-a456-426614174000",
  "note": "I created a first draft for the new sitemap",
  "timezone": "Europe/Berlin",
  "duration": 8635,
  "typeOfWorkId": "123e4567-e89b-12d3-a456-426614174000",
  "userId": "123e4567-e89b-12d3-a456-426614174000"
}

Response

OK

isBillableboolean

Whether the time tracking is billable or not.

isBilledboolean

Whether the time tracking is billed or not.

taskIdstring uuid nullable

The id of the task.

projectIdstring uuid nullable

The id of the project.

notestring nullable

The note of the time tracking.

isDateOnlyboolean

Whether the time entry is a date only entry.

startDatestring date-time

The date and time when the time entry was started in UTC. Required.

endDatestring date-time nullable

The date and time when the time entry ends in UTC. Not set if the time entry is still running.

timezonestring required

The original timezone of the time tracking. The format of the timezone is the IANA standard.

durationinteger nullable

The duration of the time tracking in seconds. Required when the time entry is not running.

typeOfWorkIdstring uuid required

The id of the type of work.

userIdstring uuid nullable

The id of the user. Can be null if the user was deleted.

idstring uuid

The id of the time tracking.

breakDurationinteger nullable

The duration of the break in seconds. Cannot be set via API.

createdBystring uuid

The id of the user who created this time tracking.

createdOnstring date-time

The date this time tracking was created.

updatedBystring uuid

The id of the user who last updated this time tracking.

updatedOnstring date-time

The date this time tracking was last modified.

resourceVersioninteger

The version of the entity, updated on every modification, to the ticks in UTC. Not identical to UpdatedOn.

isExternalboolean

True if this entity is coming from an external workspace (awork Connect).

Example response

{
  "isBillable": true,
  "taskId": "123e4567-e89b-12d3-a456-426614174000",
  "projectId": "123e4567-e89b-12d3-a456-426614174000",
  "note": "I created a first draft for the new sitemap",
  "timezone": "Europe/Berlin",
  "duration": 8635,
  "typeOfWorkId": "123e4567-e89b-12d3-a456-426614174000",
  "userId": "123e4567-e89b-12d3-a456-426614174000",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "createdBy": "123e4567-e89b-12d3-a456-426614174000",
  "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
  "typeOfWork": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "Design",
    "icon": "thumb_up"
  },
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "firstName": "Carla",
    "lastName": "Creative"
  },
  "task": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "Design",
    "baseType": "projecttask",
    "taskStatusId": "123e4567-e89b-12d3-a456-426614174000",
    "typeOfWorkId": "123e4567-e89b-12d3-a456-426614174000",
    "project": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design",
      "projectStatus": {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "name": "Design",
        "description": "Work in progress",
        "type": "todo"
      },
      "company": {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "name": "Design",
        "hasImage": true,
        "description": "One of our customers"
      },
      "projectType": {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "name": "Design",
        "icon": "thumb_up"
      },
      "hasImage": true,
      "createdBy": "123e4567-e89b-12d3-a456-426614174000"
    },
    "projectId": "123e4567-e89b-12d3-a456-426614174000",
    "plannedDuration": 21600,
    "taskStatus": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design",
      "description": "Work in progress",
      "type": "todo",
      "order": 1,
      "icon": "arrow_forward"
    },
    "createdBy": "123e4567-e89b-12d3-a456-426614174000",
    "correlationId": "123e4567-e89b-12d3-a456-426614174000",
    "parentId": "123e4567-e89b-12d3-a456-426614174000",
    "parentTask": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design"
    }
  },
  "project": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "Design",
    "projectStatus": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design",
      "description": "Work in progress",
      "type": "todo"
    },
    "company": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design",
      "hasImage": true,
      "description": "One of our customers"
    },
    "projectType": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Design",
      "icon": "thumb_up"
    },
    "hasImage": true,
    "createdBy": "123e4567-e89b-12d3-a456-426614174000"
  },
  "breaks": [
    {
      "startDate": "2022-01-01T12:00:00Z",
      "duration": 3600,
      "endDate": "2022-01-01T13:00:00Z"
    }
  ],
  "resourceVersion": 637825154598057900,
  "isExternal": true
}

Changes

Changed in 5 of the 20 revisions of this API.188

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • api operation id PutTimeEntryV2 removed and replaced with PutTimeEntryByIdV2

      api-operation-id-removed

    • api operation id PutTimeEntryV2 was added

      api-operation-id-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property / to the response with the status

      response-optional-property-added

  • v2b4107303220b13See the full diff
    • request body became required

      request-body-became-required

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added