Zeiterfassung

Überblick
Hier werden Zeiten erfasst — auf ein Arbeitspaket, also eine Aufgabe oder ein Ticket. Die Liste zeigt Datum, Mitarbeiter, Arbeitspaket, Projekt, Kategorie, Dauer, Abrechenbarkeit und Status, dazu eine Summe über den gewählten Zeitraum.
Ein Grundsatz prägt die ganze Fläche: Gebuchte Zeit wird nicht gelöscht, sondern storniert. Ein gesperrter Eintrag lässt sich nur per negativer Gegenbuchung korrigieren. Das ist unbequem und richtig — eine Stunde, die in einer Rechnung steckt, darf nicht rückwirkend verschwinden.
Kernaufgaben
Zeit erfassen. Zeit erfassen verlangt Datum, Kategorie, Arbeitspaket, Dauer und optional eine Beschreibung; die Abrechenbarkeit lässt sich setzen.
Mit der Stoppuhr arbeiten. Stoppuhr starten läuft mit, pausiert und wird über Stoppen & buchen zum Zeiteintrag.
Besonders nützlich ist der geparkte Timer: Starten Sie ohne Arbeitspaket, wenn Sie mitten in etwas stecken und nicht erst suchen wollen — die Zuordnung holen Sie später nach. Das ist der Unterschied zwischen erfasster und geschätzter Zeit.
Stornieren. Storno erzeugt eine Gegenbuchung; der ursprüngliche Eintrag bleibt lesbar. Storno- Einträge selbst sind schreibgeschützt.
Den Status verstehen. Fünf Zustände: Entwurf, Eingereicht, Genehmigt, Fakturiert, Gesperrt. Ab Gesperrt geht nur noch der Storno-Weg.
Felder im Detail
Die Spalte Was es bewirkt beantwortet, was sich im System ändert — nicht, wie das Feld heißt. Der graue Name dahinter ist das Feld der API: unter ihm läuft dasselbe über Automation, Import und KI-Werkzeuge.
Zeit erfassen und bearbeiten
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Mitarbeiter employeeId | ja | Mitarbeiter | Wessen Zeit erfasst wird. Für die eigene Zeit genügt time.entry.create_own; wer für andere erfassen oder fremde Einträge ändern soll, braucht time.entry.edit_any. |
Datum workDate | ja | Datum | Der Arbeitstag. Er entscheidet über die Woche des Stundenzettels und darüber, ob die Zeit in eine bereits freigegebene Woche fiele — dann wird sie abgewiesen. |
Aufgabe workItemUlid | nein | Kennung einer Aufgabe oder eines Tickets | Worauf gebucht wird. Über die Aufgabe erbt die Zeit Projekt und Kunde — deshalb ist das der übliche Weg statt der freien Beschreibung. |
Dauer (Minuten) durationMinutes | ja | 0 oder mehr | Wie lange gearbeitet wurde. Die Rundungsregel des Projekts oder Vertrags greift beim Speichern, nicht beim Tippen. |
Dauer (Stunden) durationHours | ja | Dezimalzahl, 0 oder mehr | Dieselbe Angabe in Stunden. Beide Felder schreiben denselben Wert — Sie erfassen so, wie Sie denken, das System rechnet in Minuten. |
Beginn startedAt | nein | Zeitpunkt | Wann die Buchung anfängt. Die Dauer bleibt die maßgebliche Größe — Beginn und Ende sind die Ergänzung, die die Buchung auf dem Tages-Zeitstrahl an die richtige Stelle setzt. Ohne sie liegt sie dort nirgends. |
Ende endedAt | nein | Zeitpunkt, nicht vor dem Beginn | Wann die Buchung endet. Zusammen mit dem Beginn ergibt sich die Spanne auf dem Zeitstrahl. |
Abrechenbar billable | nein | Ja/Nein | Ob die Zeit in eine Rechnung darf. Vorbelegt aus der Kategorie; die Entscheidung im Einzelfall gehört hierher. Nicht abrechenbare Zeit zählt weiter in Auslastung und Projekt-Aufwand. |
Kategorie categoryId | nein | Stammdaten „Zeit-Kategorien" | Die Art der Tätigkeit (Beratung, Entwicklung, Fahrt …). Sie liefert die Vorbelegung für abrechenbar und die Achse jeder Auswertung. |
Beschreibung description | nein | Text, max. 5000 Zeichen | Was gemacht wurde. Steht auf dem Leistungsnachweis, wenn er aus den Zeiten erzeugt wird — hier lohnt sich ein ganzer Satz. |
Nur über Schnittstelle und Automation
| Feld | Werte / Format | Was es bewirkt |
|---|---|---|
workItemId | interne Kennung einer Aufgabe | Dasselbe Ziel wie workItemUlid, angesprochen über die interne Nummer. |
rejectNote | Text, max. 5000 Zeichen | Der Grund, mit dem eine Freigabe eine Zeit zurückweist. Er geht an den Erfasser und steht am Eintrag. |
Einstellungen & Rechte
- Modul
module.timetracking. - Fein geschnittene Rechte:
time.entry.view_own,time.entry.create_own,
time.entry.edit_own, time.entry.delete_own für die eigenen Zeiten; time.entry.view_project für die Zeiten eines Projekts und time.entry.edit_any für fremde. time.entry.invoice für die Fakturierung.
- Ein Konto braucht ein Mitarbeiterprofil. Ohne Verknüpfung — siehe
Benutzer — gibt es niemanden, auf den gebucht wird.
- Die Abrechenbarkeit kann erben. Eine Tätigkeitsart ohne eigene Vorgabe übernimmt sie vom
Projekttyp, siehe Zeiterfassung-Einstellungen.
FAQ & Fehlerbilder
Ich kann einen Eintrag nicht ändern. Dann ist er gesperrt oder bereits fakturiert. Korrigieren Sie per Storno und buchen Sie neu.
Die Stoppuhr lief, ist aber nicht gebucht. Ein Timer wird erst mit Stoppen & buchen zum Eintrag. Ein geparkter Timer wartet zusätzlich auf die Zuordnung eines Arbeitspakets.
Eine Zeit ist fälschlich nicht abrechenbar. Prüfen Sie die Tätigkeitsart: Erbt sie vom Projekttyp, entscheidet dessen Vorgabe.
Ich finde das Arbeitspaket nicht. Gebucht wird auf Aufgaben und Tickets. Existiert keines, legen Sie es an — Zeit ohne Bezug lässt sich später niemandem zuordnen.