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

Parameters: log_attendance
NameTypeDescription
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
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"}'
Python
result = client.call("personio", "log_attendance", {"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"})
Node.js
const result = await cotlet.call('personio', 'log_attendance', {"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"});
CLI
cotlet call personio log_attendance --data '{"employee_id":"employee_8c41d2","date":"date","start":"start","end":"end"}'

Example response

JSON

{
  "attendance_id": "att_7d21",
  "employee_id": "emp_2041",
  "date": "2026-10-13",
  "start": "09:00",
  "end": "17:30",
  "break_minutes": 30,
  "status": "pending"
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.