diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
index 962b04a775382c82fc260698e432a3cfeac48ba5..70033ab8473df0e7892d6d1c2979a27f436a898c 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
@@ -28,6 +28,7 @@ export default {
     LessonInformation,
     MobileFullscreenDialog,
     SlideIterator,
+    TardinessField,
   },
   mixins: [documentationPartMixin, mutateMixin],
   data() {
@@ -53,14 +54,27 @@ export default {
   },
   methods: {
     sendToServer(participations, field, value) {
-      if (field !== "absenceReason") return;
+      let fieldValue;
+
+      if (field === "absenceReason") {
+        fieldValue = {
+          absenceReason: value === "present" ? null : value,
+        };
+      } else if (field === "tardiness") {
+        fieldValue = {
+          tardiness: value,
+        };
+      } else {
+        console.error(`Wrong field '${field}' for sendToServer`);
+        return;
+      }
 
       this.mutate(
         updateParticipationStatuses,
         {
           input: participations.map((participation) => ({
             id: participation.id,
-            absenceReason: value === "present" ? null : value,
+            ...fieldValue
           })),
         },
         (storedDocumentations, incomingStatuses) => {
@@ -73,6 +87,7 @@ export default {
               (part) => part.id === newStatus.id,
             );
             participationStatus.absenceReason = newStatus.absenceReason;
+            participationStatus.tardiness = newStatus.tardiness;
             participationStatus.isOptimistic = newStatus.isOptimistic;
           });
 
@@ -156,7 +171,7 @@ export default {
               item.absenceReason ||
               item.notesWithNote?.length > 0 ||
               item.notesWithExtraMark?.length > 0 ||
-              item.noteWithTardiness
+              item.tardiness
             "
             class="d-flex flex-wrap gap"
           >
@@ -184,8 +199,8 @@ export default {
               small
             />
             <tardiness-chip
-              v-if="item.noteWithTardiness"
-              :tardiness="item.noteWithTardiness.tardiness"
+              v-if="item.tardiness"
+              :tardiness="item.tardiness"
               small
             />
           </v-list-item-subtitle>
@@ -211,6 +226,14 @@ export default {
               :value="item.absenceReason?.id || 'present'"
               @input="sendToServer([item], 'absenceReason', $event)"
             />
+            <tardiness-field
+              v-bind="documentationPartProps"
+              :loading="loading"
+              :disabled="loading"
+              :participation="item"
+              :value="item.tardiness"
+              @input="sendToServer([item], 'tardiness', $event)"
+            />
           </v-card-text>
           <v-divider />
           <v-card-text>