---
title: "Add a new time entry"
method: POST
path: "/v1/workspaces/{workspaceId}/time-entries"
tags: ["Time entry"]
---

# Add a new time entry

`POST /v1/workspaces/{workspaceId}/time-entries`

Important: if workspace has time entry custom fields configured that are marked as required you must provide them in the `customFields` array.

## Path parameters

- `workspaceId` string, required — Represents a workspace identifier across the system.

## Request body

- CreateTimeEntryRequest
  - `billable` boolean — Indicates whether a time entry is billable or not.
  - `customAttributes` CreateCustomAttributeRequest[] — Represents a list of create custom field request objects.
    - `name` string, required — Represents custom attribute name.
    - `namespace` string, required — Represents custom attribute namespace.
    - `value` string, required — Represents custom attribute value.
  - `customFields` UpdateCustomFieldRequest[] — Represents a list of values for time entry custom fields defined in the workspace settings.
    - `customFieldId` string, required — Represents custom field identifier across the system.
    - `sourceType` 'WORKSPACE' | 'PROJECT' | 'TIMEENTRY' — Represents a custom field value source type.
    - `value` object — Represents a custom field's value.
  - `description` string — Represents time entry description.
  - `end` string, date-time — Represents an end date in yyyy-MM-ddThh:mm:ssZ format.
  - `projectId` string — Represents a project identifier across the system.
  - `start` string, date-time — Represents a start date in yyyy-MM-ddThh:mm:ssZ format.
  - `tagIds` string[] — Represents a list of tag ids.
  - `taskId` string — Represents a task identifier across the system.
  - `type` 'REGULAR' | 'BREAK' — Valid time entry type.

## Response `201`

Created

- TimeEntryDtoImplV1
  - `billable` boolean — Indicates whether a time entry is billable.
  - `customFieldValues` CustomFieldValueDtoV1[] — Represents a list of custom field value objects.
    - `customFieldId` string — Represents custom field identifier across the system.
    - `name` string — Represents custom field name.
    - `timeEntryId` string — Represents time entry identifier across the system.
    - `type` string — Represents a custom field value source type.
    - `value` object — Represents custom field value.
  - `description` string — Represents time entry description.
  - `id` string — Represents time entry identifier across the system.
  - `isLocked` boolean — Represents whether time entry is locked for modification.
  - `kioskId` string — Represents kiosk identifier across the system.
  - `projectId` string — Represents project identifier across the system.
  - `tagIds` string[] — Represents a list of tag identifiers across the system.
  - `taskId` string — Represents task identifier across the system.
  - `timeInterval` TimeIntervalDtoV1 — Represents a time interval object.
    - `duration` string — Represents a time duration.
    - `end` string, date-time — Represents an end date in yyyy-MM-ddThh:mm:ssZ format.
    - `start` string, date-time — Represents a start date in yyyy-MM-ddThh:mm:ssZ format.
  - `type` 'REGULAR' | 'BREAK' | 'HOLIDAY' | 'TIME_OFF' — Represents a time entry type enum.
  - `userId` string — Represents user identifier across the system.
  - `workspaceId` string — Represents workspace identifier across the system.

---

[API](https://skmtc.dev/clockify/apis/clockify-api.md) · [All operations](https://skmtc.dev/clockify/apis/clockify-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/clockify/clockify-api/revisions/a5b636acbcd8/schema)
