Zum Inhalt springen
Leadtime
Deutsch
Esc
navigateopen⌘Jpreview

Create or update weekly working time entry

Creates a new weekly working time entry or updates an existing one for an employee.

How it works:

  • If id is provided in the request body, updates the existing entry with that ID
  • If id is omitted, creates a new entry

What is weekly working time? Weekly working time defines the employee’s work schedule:

  • workingDays: Array of 7 numbers (Monday=0, Sunday=6), where 1 means the employee works that day, 0 means they don’t
  • weeklyWorkingHours: Total hours per week (maximum 168)
  • dateFrom: Date when this configuration starts applying

Active entry selection:

  • The active entry for a given date is the one with the most recent dateFrom that is still on or before that date
  • If no entry exists for a date, no entry is considered active

Returns: The updated employee object with all weekly working time entries.

POST/employees/{id}/weekly-working-time
Authorization
AuthorizationOAuth2 access token · headerrequired
Scopes:api:write
or
AuthorizationBearer token (JWT) · headerrequired
Path parameters
idstringrequired
Query parameters
fieldsToReturnstring
Comma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestring
Advanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:compactfull
Header parameters
LT-Response-Shapestring
Advanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:full
Request body
requiredapplication/json
dateFromstringrequired
Date from which this working time configuration applies, in ISO 8601 date format (YYYY-MM-DD).
idstring
Entry ID. If provided, updates the existing entry. If omitted, creates a new entry.
weeklyWorkingHoursnumberrequired
Weekly working hours (total hours per week). Maximum value is 168 (24 hours × 7 days).
min 1 · max 168
workingDaysnumber[]required
Array of 7 numbers representing working days (Monday=0, Sunday=6). Each value is 1 if the employee works that day, 0 if not. Must have at least one working day (at least one value must be 1).
Responses
200
addressCityobject | nullrequired
City name. Null if address is not set.
addressCountryobject | nullrequired
Country code in ISO 3166-1 alpha-2 format (e.g., "DE", "US"). Null if address is not set.
addressHouseNumberobject | nullrequired
House or building number. Null if address is not set.
addressStreetobject | nullrequired
Street name (without house number). Null if address is not set.
addressZipobject | nullrequired
ZIP or postal code. Null if address is not set.
avatarIdobject | nullrequired
Avatar configuration ID. Use /api/avatars/public/{avatarId}.svg to render it.
avatarUrlobject | nullrequired
Full URL to the employee's avatar image. Generated from the avatar file ID. Null if employee has no avatar. Use this URL to display the avatar in your application.
birthDateobject | nullrequired
Birth date in ISO 8601 date format (YYYY-MM-DD). Null if not set.
canLoginbooleanrequired
Whether the employee can login to the system. If true, the employee has an active user account and can access the system.
chargeableHoursDayGoalobject | nullrequired
Chargeable (billable) hours per day goal. Null if not set.
createdAtstringrequired
Timestamp when the employee record was created, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).
degreeobject | nullrequired
Academic degree (e.g., "B.Sc.", "M.Sc.", "Ph.D."). Null if not set.
emailstringrequired
Email address of the employee. This is also the login email if canLogin is true.
employmentModeobject | nullrequired
Employment mode indicating the type of employment (e.g., "FullTime", "PartTime", "Contract", "Temporary", "Freelance"). Null if not set.
entryDateobject | nullrequired
Date when the employee joined the company, in ISO 8601 date format (YYYY-MM-DD). Null if not set.
exitDateobject | nullrequired
Date when the employee left the company, in ISO 8601 date format (YYYY-MM-DD). Null if employee is still active. Used to calculate isActive status.
firstNamestringrequired
First name of the employee
idstringrequired
Unique identifier of the employee (UUID format)
incomeTaxClassobject | nullrequired
Income tax class (typically used in German tax system, values like "1", "2", "3", etc.). Null if not set.
isActivebooleanrequired
Whether the employee is currently active. Calculated as: exitDate is null OR exitDate is in the future. Active employees appear in employee lists and can be assigned to teams/projects.
lastNamestringrequired
Last name of the employee
phoneobject | nullrequired
Phone number in the format stored in the system. Null if not provided.
positionobject | nullrequired
Job title or position of the employee. Null if not set.
roleIdstringrequired
Role ID assigned to the employee user account. The role determines what permissions the employee has when they log in.
salariesobject[]
Array of salary entries for the employee. Each entry defines a salary amount that applies from a specific date.
teamIdsstring[]required
Array of team IDs the employee is assigned to. Teams are used for organizational structure and permissions. Empty array if employee is not assigned to any teams.
titleobject | nullrequired
Title prefix (e.g., "Mr.", "Mrs.", "Dr.", "Prof."). Null if not set.
updatedAtstringrequired
Timestamp when the employee record was last updated, in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).
userIdstringrequired
ID of the associated user account. This links the employee record to the user account that handles authentication and permissions.
vacationDaysobject[]
Array of vacation days entries for the employee. Each entry defines vacation days per year that apply from a specific date.
weeklyWorkingTimeobject[]
Array of weekly working time entries for the employee. Each entry defines working days and hours that apply from a specific date. The active entry for a given date is the one with the most recent dateFrom that is still on or before that date.
400Validation errors
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/employees/string/weekly-working-time" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "dateFrom": "2021-01-01",
  "id": "wwt_123",
  "weeklyWorkingHours": 40,
  "workingDays": [
    1,
    1,
    1,
    1,
    1,
    0,
    0
  ]
}'
Response
{
  "addressCity": "Berlin",
  "addressCountry": "DE",
  "addressHouseNumber": "42",
  "addressStreet": "Main Street",
  "addressZip": "12345",
  "avatarId": "123e4567-e89b-12d3-a456-426614174000",
  "avatarUrl": "https://workc.example.com/api/avatars/public/avatar_123.svg",
  "birthDate": "1990-01-15",
  "canLogin": true,
  "chargeableHoursDayGoal": 6.5,
  "createdAt": "2020-01-15T10:00:00Z",
  "degree": "M.Sc.",
  "email": "john.doe@company.com",
  "employmentMode": "FullTime",
  "entryDate": "2020-01-15",
  "exitDate": null,
  "firstName": "John",
  "id": "emp_123",
  "incomeTaxClass": "1",
  "isActive": true,
  "lastName": "Doe",
  "phone": "+1234567890",
  "position": "Software Engineer",
  "roleId": "ws_abc_role_123",
  "salaries": [
    {
      "dateFrom": "2021-01-01",
      "id": "sal_123",
      "salary": 5000
    }
  ],
  "teamIds": [
    "team_1",
    "team_2"
  ],
  "title": "Mr.",
  "updatedAt": "2020-01-15T10:00:00Z",
  "userId": "user_123",
  "vacationDays": [
    {
      "dateFrom": "2021-01-01",
      "days": 30,
      "id": "vac_123"
    }
  ],
  "weeklyWorkingTime": [
    {
      "dateFrom": "2021-01-01",
      "id": "wwt_123",
      "weeklyWorkingHours": 40,
      "workingDays": [
        1,
        1,
        1,
        1,
        1,
        0,
        0
      ]
    }
  ]
}