---
title: "Bulk update attendance entries for an employee"
method: PATCH
path: "/attendance/employees/{employeeId}/entries"
tags: ["Attendance"]
---

# Bulk update attendance entries for an employee

`PATCH /attendance/employees/{employeeId}/entries`

Update one or more attendance entries (time log entries) for a specific employee. Only provided fields are updated. Entries must match the <b>reporting method</b> (duration or start-end) and rules of the <b>attendance policy</b> linked to the employee. Update is scoped per employee to keep authorization, validation (such as overlaps or locked days), and transactional boundaries simple and safe, since those rules are typically employee-centric.
<ul> <li>Each item must include the entry <code>id</code> field to identify the entry to update.</li> <li>Maximum 100 entries per request.</li> <li><b>Read-only fields</b>: <code>employeeId</code>, <code>clockInDate</code>, <code>type</code>.</li> <li><b>Reporting method</b>: <ul> <li><b>Duration</b>: Update <code>duration</code>, maximum 24 hours..</li> <li><b>Start-end</b>: Update <code>clockInTime</code> and/or <code>clockOutTime</code> (timestamps).</li> <li><b>Start-end (cross-midnight)</b>: <code>clockInTime</code> and <code>clockOutTime</code> must be on the <b>same date</b>. If clock-out is on another day, the API returns an error. Split into two entries: one till 23:59 and one from 00:00 the next day.</li> </ul> </li>
</ul>

## Path parameters

- `employeeId` string, required

## Request body

- EntriesUpdateRequest — Request body for bulk updating attendance entries
  - `items` union[], required — Array of entry update payloads. Each item must conform to either duration reporting (id, reportingMethod duration, duration) or start-end reporting (id, reportingMethod startEnd, clockInTime, optional clockOutTime). Maximum 100 entries per request.
    - union
      - EntryUpdateItemDuration — Attendance entry update item for duration reporting (date + duration).
        - `objectType` 'attendanceEntry', required — Must be attendanceEntry
        - `fields` object, required — Fields for updating an entry that uses **duration** reporting. Required: id, reportingMethod (duration), duration. Read-only: employeeId, clockInDate, clockOutDate, type.
          - `/attendanceEntry/id` object, required — The unique identifier of the attendance entry to update.
            - `value` integer
          - `/attendanceEntry/reportingMethod` object — Must be "duration" and must match the existing entry.
            - `value` 'duration'
          - `/attendanceEntry/duration` object — Duration in minutes. Required for duration entry update. Maximum 24 hours (1440 minutes) per entry.
            - `value` integer
          - `/attendanceEntry/reasonCode` object — Reason code for the attendance entry. This parameter is optional. Must be a valid string ID from the company's "Time Log Entry Reason" list. Use the <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">company lists metadata endpoint</a> to retrieve the reasons list values and provide the list name (timeLogEntryReason) as a parameter.
            - `value` string
          - `/attendanceEntry/notes` object — Free-text notes for the attendance entry. This parameter is optional.
            - `value` string
          - `/attendanceEntry/projectId` object — Update the project for this entry. This parameter is optional. Use the <a href="#operation/post_attendance-projects-search">Search projects</a> endpoint to get available project IDs.
            - `value` integer
          - `/attendanceEntry/taskId` object — Update the task for this entry. This parameter is optional. Use the <a href="#operation/post_attendance-project-tasks-search">Search tasks</a> endpoint to get available task IDs for a given project.
            - `value` integer
      - EntryUpdateItemStartEnd — Attendance entry update item for start-end reporting (clock-in and optional clock-out).
        - `objectType` 'attendanceEntry', required — Must be attendanceEntry
        - `fields` object, required — Fields for updating an entry that uses **start-end** reporting. Required: id, reportingMethod (startEnd), clockInTime. clockOutTime is optional. Read-only: employeeId, clockInDate, clockOutDate, type.
          - `/attendanceEntry/id` object, required — The unique identifier of the attendance entry to update.
            - `value` integer
          - `/attendanceEntry/reportingMethod` object — Must be "startEnd" and must match the existing entry.
            - `value` 'startEnd'
          - `/attendanceEntry/clockInTime` object — Clock-in timestamp. Required for start-end entry update. The value already includes the date; the clock-in date is derived from this timestamp.
            - `value` string, date-time — Timestamp as string in date-time format (e.g. ISO 8601).
          - `/attendanceEntry/clockOutTime` object — Clock-out timestamp. Optional — omit to leave the entry open (clocked-in). Must be on the <b>same date</b> as <code>clockInTime</code>; if clock-out is on another day, the API returns an error. Split cross-midnight work into two entries (e.g. one till 23:59, one from 00:00 the next day).
            - `value` string, date-time — Timestamp as string in date-time format (e.g. ISO 8601).
          - `/attendanceEntry/reasonCode` object — Reason code for the attendance entry. This parameter is optional. Must be a valid string ID from the company's "Time Log Entry Reason" list. Use the <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">company lists metadata endpoint</a> to retrieve the reasons list values and provide the list name (timeLogEntryReason) as a parameter.
            - `value` string
          - `/attendanceEntry/notes` object — Free-text notes for the attendance entry. This parameter is optional.
            - `value` string
          - `/attendanceEntry/projectId` object — Update the project for this entry. This parameter is optional. Use the <a href="#operation/post_attendance-projects-search">Search projects</a> endpoint to get available project IDs.
            - `value` integer
          - `/attendanceEntry/taskId` object — Update the task for this entry. Optional. Use the <a href="#operation/post_attendance-project-tasks-search">Search tasks</a> endpoint to get available task IDs for a given project.
            - `value` integer

## Response `200`

Attendance entries updated successfully

## Other responses

- `400` — The request is malformed or includes invalid parameters
- `401` — Authentication failed. Check your service user credentials
- `403` — The service user or token is missing the required permissions to access the requested data
- `404` — Feature not enabled or entry not found
- `429` — Rate limit exceeded - see <a href="https://apidocs.hibob.com/reference/attendance#rate-limiting" target="_blank">Rate limits</a>
- `500` — An unexpected error occurred. Try again or contact support if the issue persists.

---

[API](https://skmtc.net/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.net/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hibob/employee-data-api/versions/0781ebbdda91/schema)
