Time & Attendance
Track employee hours, manage approvals, and handle time corrections.
The Time Tracking section lets HR managers view, create, edit, and approve employee work hours. Access it via Zeiterfassung in the sidebar under "Event planen". The sub-item Teamleiter provides supervisor management for check-in/check-out operations.
Time Tracking Overview
The page shows a paginated data table titled Zeiterfassungen with all time entries for the selected event.
Table Columns
| Column | Description |
|---|---|
| Info | Problem and supervisor notes indicators. Icons appear if notes are present. |
| Mitarbeiter | Employee name with profile picture and hover card |
| Position | Event name (bold) and task name (below, lighter) |
| Check-In | Check-in time and date. Hover over the camera icon for exact timestamp and who performed the check-in ("Eingecheckt von"). A pencil icon in orange indicates the time was manually edited. Planned start time shown in parentheses if available. |
| Check-Out | Check-out time and date. Same hover behavior as Check-In ("Ausgecheckt von"). Orange pencil icon if edited. |
| Dauer | Duration of the shift. Shows running time with a pulsing timer icon if not yet checked out. A warning badge appears if duration exceeds the legal limit. The column header shows a sum total. If time adjustments (breaks, surcharges) are applied, a calculator icon appears -- hover for details. |
| Abrechnung | Calculated pay amount (hourly rate times duration). Shows employment type badge and hourly rate below. The column header shows a sum total. Volunteer entries show a green "Volunteer" badge instead. |
| Status | Status badge: Erfasst (blue), Freigegeben (green), Abgelehnt (red) |
| Aktionen | Action buttons (see below) |
Action Buttons
For entries with status Erfasst (recorded):
- Green checkmark -- Approve (set to "Freigegeben")
- Red X -- Reject (set to "Abgelehnt")
- Message bubble -- Open or edit HR notes (filled icon if notes exist)
- Three-dot menu with options:
- Bearbeiten -- Open the edit form
- Freigeben -- Approve the entry
- Ablehnen -- Reject the entry
- Notizen bearbeiten -- Edit HR notes
For entries with status Freigegeben or Abgelehnt:
- Rotate arrow -- Reset to "Erfasst" (via "Zurücksetzen")
- Toggle button -- Switch between "Freigeben" and "Ablehnen"
- Message bubble -- Open or edit HR notes
- Three-dot menu with:
- Bearbeiten -- Open the edit form
- Zurücksetzen -- Reset to "Erfasst"
- Ablehnen / Freigeben -- Toggle the other status
- Notizen bearbeiten -- Edit HR notes
Filtering Time Entries
Click the filter button to reveal filter options:
| Filter | Description |
|---|---|
| Event | Select a specific event or "Alle Events". |
| Tätigkeiten | Multi-select for tasks. Default: "Alle Tätigkeiten". |
| Monat | Filter by month. Default: "Alle Monate". Shows months in German format (e.g., "Maerz 2026"). |
| Personengruppenschluessel | Filter by employment type (brutto, netto, rechnung, minijob). |
| Dienstleister | Filter by subcontractor company (only shown if subcontractor data exists). Default: "Alle Dienstleister". |
Status Badges
Below the filters, clickable status badges provide quick filtering:
- Alle: [count] -- All entries regardless of status.
- Eingecheckt: [count] -- Currently running entries (checked in, not yet checked out), shown with a pulsing timer icon.
- Erfasst: [count] -- Recorded entries pending review (default view).
- Freigegeben: [count] -- Approved entries.
- Abgelehnt: [count] -- Rejected entries.
Creating a New Time Entry
- Click the Neue Zeiterfassung button (with plus icon) below the table.
- A dialog opens titled Neue Zeiterfassung erstellen with the description: "Erstellen Sie eine neue Zeiterfassung für einen Mitarbeiter."
Form Fields
| Field | Description | Required |
|---|---|---|
| Mitarbeiter | Search and select an employee (placeholder: "Mitarbeiter suchen..."). Once selected, their name and email appear in a card. | Yes |
| Event | Select from available events (placeholder: "Event auswaehlen"). | Yes |
| Tätigkeit | Select a task for the chosen event (placeholder: "Tätigkeit auswaehlen" or "Bitte zuerst Event auswaehlen" if no event is selected). | Yes |
| Stundenlohn | Hourly pay in EUR (placeholder: "15,00"). Auto-filled from employee default pay or task pay rate. | Yes |
| Personengruppenschluessel | Employment type: brutto, netto, rechnung, or minijob. | Yes |
| Check-In Datum | Date picker for check-in date. | Yes |
| Check-In Zeit | Time input for check-in time (placeholder: "hh:mm"). | Yes |
| Check-Out Datum | Date picker for check-out date. | No |
| Check-Out Zeit | Time input for check-out time (placeholder: "hh:mm"). | No |
| Notizen | Free-text notes field (placeholder: "Notizen eingeben..."). | No |
Duration Preview
As you fill in check-in and check-out times, the form shows: "Berechnete Dauer: [X Stunden Y Minuten]".
If check-out is before check-in, a red warning appears: "Die Check-Out Zeit liegt vor der Check-In Zeit. Dies fuehrt zu einer negativen Dauer, was nicht moeglich ist. Bitte korrigieren Sie die Zeiten vor dem Speichern."
Submitting
- Click Erstellen to save.
- Click Abbrechen to close without saving.
- While saving: "Wird gespeichert..."
- Success: "Zeiterfassung erfolgreich erstellt"
- Error: "Fehler beim Erstellen der Zeiterfassung: [details]"
Editing a Time Entry
- Click the three-dot menu on a time entry row and select Bearbeiten.
- The same form opens, now titled Zeiterfassung bearbeiten with the description: "Bearbeiten Sie die Details dieser Zeiterfassung. Der Mitarbeiter kann nicht geaendert werden."
- The employee field is locked and shows: "Mitarbeiter kann nicht geaendert werden."
- All other fields are pre-filled with current data.
- Click Aktualisieren to save changes.
- Success: "Zeiterfassung erfolgreich aktualisiert"
- Error: "Fehler beim Aktualisieren der Zeiterfassung: [details]"
Approval Workflow
Time entries follow a three-status workflow:
- Erfasst (Recorded) -- The initial state after check-in/check-out. Entries appear in blue and need review.
- Freigegeben (Released/Approved) -- Approved by HR. Entries appear in green.
- Abgelehnt (Rejected) -- Rejected by HR. Entries appear in red.
How to Approve or Reject
Single entry:
- Find the entry in the table.
- Click the green checkmark to approve, or the red X to reject.
- The status changes immediately (optimistic update).
Changing a decision:
- For an approved or rejected entry, click the rotate arrow to reset to "Erfasst".
- Or click the toggle button to switch directly between "Freigegeben" and "Abgelehnt".
HR Notes
- Click the message bubble icon on any entry.
- A dialog opens where you can enter or edit notes.
- The notes are only visible to HR staff, not to the employee.
- If notes exist, the message bubble icon appears filled.
Time Adjustments and Breaks
When time rules (Verguetungsregeln) are configured for your organization, the Dauer column may show adjusted durations. A calculator icon next to the duration indicates that automatic adjustments have been applied. Hover over the icon to see a breakdown of break deductions, time surcharges, day-based surcharges, and bonus adjustments. The displayed duration and the Abrechnung amount already include these adjustments.
Export
Below the table, a TimesExportButton allows you to export time data. The export respects all active filters including event, tasks, status, month, employment type, subcontractor, and search query.
Supervisor Management (Teamleiter)
Access the supervisor page via Zeiterfassung > Teamleiter in the sidebar.
What You See
The supervisor page shows:
-
SupervisorCard -- A QR code scanner component that allows supervisors to check employees in and out by scanning their QR codes. The scanner can be opened by default if the URL contains
?openScanner=true. -
Dein Team -- A data table showing all employees managed by the current user as their team leader. This uses the same column layout as the employee-facing supervisor view.
How Supervisors Work
Supervisors (Teamleiter) are employees with elevated permissions for a specific event. They can:
- Scan QR codes to check employees in and out.
- View their team members' time entries.
- The HR version of this page provides the same functionality but is accessible from the HR navigation.
Troubleshooting
| Problem | Solution |
|---|---|
| No time entries appear | Check your status filter -- it defaults to "Erfasst". Click "Alle" to see all entries. Also check the Event filter. |
| Duration shows a pulsing timer | The employee is currently checked in but not yet checked out. The duration updates in real time. |
| Duration appears in red with a warning badge | The shift duration exceeds the legal working time limit. Review and correct if needed. |
| "Fehler beim Aktualisieren des Status" | A network error occurred. Try again. The entry will revert to its previous status automatically. |
| "Fehler beim Speichern der Notizen" | A network error occurred while saving HR notes. Try again. |
| Check-out time error | "Die Check-Out Zeit kann nicht vor der Check-In Zeit liegen" -- Correct the check-in or check-out times. |
| "Bitte waehlen Sie einen Mitarbeiter aus" | You must select an employee before creating a time entry. Use the search field to find and select one. |