---
title: "Updates the time entry with the specified id."
method: PUT
path: "/timeentries/{timeEntryId}"
tags: ["TimeEntries"]
---

# Updates the time entry with the specified id.

`PUT /timeentries/{timeEntryId}`

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>

## Path parameters

- `timeEntryId` string, uuid, required

## Request body

- TimeEntryForm
  - `isBillable` boolean — Whether the time tracking is billable or not.
  - `isBilled` boolean — Whether the time tracking is billed or not.
  - `taskId` string, uuid, nullable — The id of the task.
  - `projectId` string, uuid, nullable — The id of the project.
  - `note` string, nullable — The note of the time tracking.
  - `isDateOnly` boolean — Whether the time entry is a date only entry.
  - `startDate` string, date-time — The date and time when the time entry was started in UTC. Required.
  - `endDate` string, date-time, nullable — The date and time when the time entry ends in UTC. Not set if the time entry is still running.
  - `timezone` string, required — The original timezone of the time tracking. The format of the timezone is the IANA standard.
  - `duration` integer, nullable — The duration of the time tracking in seconds. Required when the time entry is not running.
  - `typeOfWorkId` string, uuid, required — The id of the type of work.
  - `userId` string, uuid, nullable — The id of the user. Can be null if the user was deleted.

## Response `200`

OK

- TimeEntry
  - `isBillable` boolean — Whether the time tracking is billable or not.
  - `isBilled` boolean — Whether the time tracking is billed or not.
  - `taskId` string, uuid, nullable — The id of the task.
  - `projectId` string, uuid, nullable — The id of the project.
  - `note` string, nullable — The note of the time tracking.
  - `isDateOnly` boolean — Whether the time entry is a date only entry.
  - `startDate` string, date-time — The date and time when the time entry was started in UTC. Required.
  - `endDate` string, date-time, nullable — The date and time when the time entry ends in UTC. Not set if the time entry is still running.
  - `timezone` string, required — The original timezone of the time tracking. The format of the timezone is the IANA standard.
  - `duration` integer, nullable — The duration of the time tracking in seconds. Required when the time entry is not running.
  - `typeOfWorkId` string, uuid, required — The id of the type of work.
  - `userId` string, uuid, nullable — The id of the user. Can be null if the user was deleted.
  - `id` string, uuid — The id of the time tracking.
  - `breakDuration` integer, nullable — The duration of the break in seconds. Cannot be set via API.
  - `createdBy` string, uuid — The id of the user who created this time tracking.
  - `createdOn` string, date-time — The date this time tracking was created.
  - `updatedBy` string, uuid — The id of the user who last updated this time tracking.
  - `updatedOn` string, date-time — The date this time tracking was last modified.
  - `typeOfWork` NestedTypeModel
    - `id` string, uuid — Gets or sets the id of the nested model.
    - `name` string, nullable — The name of the entity.
    - `icon` string, nullable — The icon of the type.
    - `isArchived` boolean — Whether the type is archived.
  - `user` UserModelForTimeTrackings
    - `id` string, uuid — Gets or sets the id of the nested model.
    - `firstName` string, nullable — The first name of the user.
    - `lastName` string, nullable — The last name of the user.
    - `hasImage` boolean, nullable — Whether this user has a profile image.
    - `isExternal` boolean — Whether the user is external.
  - `task` TaskModelForTimeTrackings
    - `id` string, uuid — Gets or sets the id of the nested model.
    - `name` string, nullable — The name of the entity.
    - `baseType` string, nullable — The base type of the task. Can be 'private' for a private task or 'projecttask' for a project task.
    - `taskIdentifier` string, nullable — The full task identifier combining project key and task number (e.g., "NIKE-42"). Maintained by the service layer, updated when project key changes.
    - `taskStatusId` string, uuid — The id of the status for this task.
    - `typeOfWorkId` string, uuid — The id of the type of work of this task.
    - `project` ProjectModelForTimeTrackings
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
      - `projectStatus` NestedStatusModel
        - `id` string, uuid — Gets or sets the id of the nested model.
        - `name` string, nullable — The name of the entity.
        - `description` string, nullable — The description of the type.
        - `type` string, nullable — The type of the status.
        - `isArchived` boolean — Whether the type is archived.
      - `company` NestedCompanyModel
        - `id` string, uuid — Gets or sets the id of the nested model.
        - `name` string, nullable — The name of the entity.
        - `hasImage` boolean — Whether the company has a profile image.
        - `description` string, nullable — The description of the company.
      - `projectType` NestedTypeModel
        - `id` string, uuid — Gets or sets the id of the nested model.
        - `name` string, nullable — The name of the entity.
        - `icon` string, nullable — The icon of the type.
        - `isArchived` boolean — Whether the type is archived.
      - `projectKey` string, nullable — The unique project key within the workspace (e.g., "NIKE"). Maximum 32 characters, uppercase letters, numbers, and dashes only.
      - `isPrivate` boolean — Whether the project is private.
      - `hasImage` boolean — Whether the project has an image.
      - `isExternal` boolean — Whether the project is external.
      - `isBillableByDefault` boolean, nullable — Whether project times should be billable by default.
      - `createdBy` string, uuid — The id of the user who created the project.
    - `projectId` string, uuid, nullable — The id of the project this task is assigned to. Only set if this is a project task. In this case, it is equal to the EntityId.
    - `plannedDuration` integer, nullable — The expected planned workload of the task, in seconds.
    - `closedOn` string, date-time, nullable — The date the task was set to closed.
    - `taskStatus` NestedTaskStatusModel
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
      - `description` string, nullable — The description of the type.
      - `type` string, nullable — The type of the status.
      - `order` number, double, nullable — The order of the task status in a task.
      - `icon` string, nullable — The icon of the task status in a task.
    - `createdBy` string, uuid — The id of the user who created this task.
    - `correlationId` string, uuid — The correlation id between parent and subtasks, meaning it's either the ParentId or its own Id.
    - `parentId` string, uuid, nullable — The id of the parent task this of this subtask. Only set if this is a subtask.
    - `parentTask` NestedModel
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
  - `project` ProjectModelForTimeTrackings
    - `id` string, uuid — Gets or sets the id of the nested model.
    - `name` string, nullable — The name of the entity.
    - `projectStatus` NestedStatusModel
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
      - `description` string, nullable — The description of the type.
      - `type` string, nullable — The type of the status.
      - `isArchived` boolean — Whether the type is archived.
    - `company` NestedCompanyModel
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
      - `hasImage` boolean — Whether the company has a profile image.
      - `description` string, nullable — The description of the company.
    - `projectType` NestedTypeModel
      - `id` string, uuid — Gets or sets the id of the nested model.
      - `name` string, nullable — The name of the entity.
      - `icon` string, nullable — The icon of the type.
      - `isArchived` boolean — Whether the type is archived.
    - `projectKey` string, nullable — The unique project key within the workspace (e.g., "NIKE"). Maximum 32 characters, uppercase letters, numbers, and dashes only.
    - `isPrivate` boolean — Whether the project is private.
    - `hasImage` boolean — Whether the project has an image.
    - `isExternal` boolean — Whether the project is external.
    - `isBillableByDefault` boolean, nullable — Whether project times should be billable by default.
    - `createdBy` string, uuid — The id of the user who created the project.
  - `breaks` Break[], nullable — The breaks of the time tracking.
    - `startDate` string, date-time — The start date and time of the break in UTC. Required.
    - `duration` integer, nullable — The duration of the break in seconds. Required when the end date is set. When a time tracking is paused, it has at least one break with a start date and no duration or end date.
    - `endDate` string, date-time, nullable — The end date and time of the break in UTC. Required when the duration is set and the break is finished.
  - `resourceVersion` integer — The version of the entity, updated on every modification, to the ticks in UTC. Not identical to UpdatedOn.
  - `isExternal` boolean — True if this entity is coming from an external workspace (awork Connect).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.net/awork-io/apis/awork-api.md) · [All operations](https://skmtc.net/awork-io/apis/awork-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/awork-io/awork-api/versions/e2278b9be9e3/schema)
