Log attendance
Add a work period with an optional break to an employee's attendance.
POST https://cotlet.dev/api/v1/personio/employees/{employee_id}/attendances
write Confirm
Adds one attendance period for the day, with start, end and break. Periods cannot overlap another period of that employee. With Propose permissions the entry goes to approval; with Edit permissions it is saved without approval. Returns the new period and its status. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| employee_id string required | string | Employee ID from list_employees. |
| date string required | string | Day, YYYY-MM-DD. |
| start string required | string | Start time, HH:MM. |
| end string required | string | End time, HH:MM. |
| break_minutes integer | integer | Unpaid break in minutes. Default 0. |
Request
curl -X POST https://cotlet.dev/api/v1/personio/employees/employee_8c41d2/attendances \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"date","start":"start","end":"end"}' result = client.call("personio", "log_attendance", {"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"}) const result = await cotlet.call('personio', 'log_attendance', {"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"}); cotlet call personio log_attendance --data '{"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"}' Example response
{
"attendance_id": "att_7d21",
"employee_id": "emp_2041",
"date": "2026-10-13",
"start": "09:00",
"end": "17:30",
"break_minutes": 30,
"status": "pending"
}