diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt
index 0e822c842aca62574fad8ef7c5078b89262a2f97..a4213b87a71013a0975aa97cff48e1474479b7e6 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt
@@ -94,7 +94,9 @@ class EditCheckInFragment : Fragment(R.layout.fragment_edit_check_in), AutoInjec
 
                 editCheckinDurationEditHintCard.isGone = !uiState.diaryWarningVisible
 
-                editCheckinConfirmButton.isEnabled = uiState.canSaveChanges
+                editCheckinConfirmButton.isEnabled = uiState.saveButtonEnabled
+
+                editCheckinWrongInputWarning.isGone = !uiState.wrongInputErrorShown
             }
         }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInViewModel.kt
index a266e7e6d8ab74f5f64edcefa1e50e96e7963c4b..7cfc15b894c9aeb71ae03e455d3deed3ebb896f6 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInViewModel.kt
@@ -14,6 +14,7 @@ import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filterNotNull
+import org.joda.time.Days
 import org.joda.time.Instant
 import org.joda.time.LocalDate
 import org.joda.time.LocalTime
@@ -33,10 +34,10 @@ class EditCheckInViewModel @AssistedInject constructor(
             val checkIn = checkInRepository.checkInForId(editCheckInId ?: 0)
 
             if (checkInStartTime.value == null) {
-                checkInStartTime.value = checkIn.checkInStart
+                checkInStartTime.value = checkIn.checkInStart.toDateTime().toInstant()
             }
             if (checkInEndTime.value == null) {
-                checkInEndTime.value = checkIn.checkInEnd
+                checkInEndTime.value = checkIn.checkInEnd.toDateTime().toInstant()
             }
 
             checkInFlow.value = checkIn
@@ -50,13 +51,13 @@ class EditCheckInViewModel @AssistedInject constructor(
 
     val uiState = combine(
         checkInFlow.filterNotNull(),
-        checkInStartTime,
-        checkInEndTime
+        checkInStartTime.filterNotNull(),
+        checkInEndTime.filterNotNull()
     ) { checkIn, checkInStartTime, checkInEndTime ->
         UiState(
             checkIn = checkIn,
-            checkInStartInstant = checkInStartTime ?: checkIn.checkInStart,
-            checkInEndInstant = checkInEndTime ?: checkIn.checkInEnd
+            checkInStartInstant = checkInStartTime,
+            checkInEndInstant = checkInEndTime
         )
     }.asLiveData()
 
@@ -144,7 +145,15 @@ class EditCheckInViewModel @AssistedInject constructor(
         val checkInStartTime: String get() = checkInStartInstant.toDateTime().toString(timeFormatter)
         val checkInEndDate: String get() = checkInEndInstant.toDateTime().toString(dateFormatter)
         val checkInEndTime: String get() = checkInEndInstant.toDateTime().toString(timeFormatter)
-        val canSaveChanges: Boolean get() = checkInStartInstant.isBefore(checkInEndInstant)
+        val saveButtonEnabled: Boolean get() = isInputValid()
+        val wrongInputErrorShown: Boolean get() = !saveButtonEnabled
+
+        private fun isInputValid(): Boolean {
+            val startBeforeEnd = checkInStartInstant.isBefore(checkInEndInstant)
+            val lessThan24h = Days.daysBetween(checkInStartInstant, checkInEndInstant).days < 1
+
+            return startBeforeEnd and lessThan24h
+        }
     }
 
     sealed class DateTimePickerEvent {
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_edit_check_in.xml b/Corona-Warn-App/src/main/res/layout/fragment_edit_check_in.xml
index 89f49d4ca8894f916057eb240bc49c8f5f93f857..c81751a1d61be0f975de25004fc941fcc2f3bb90 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_edit_check_in.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_edit_check_in.xml
@@ -223,7 +223,6 @@
                     style="@style/Card.NoElevation"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginBottom="24dp"
                     android:layout_marginHorizontal="@dimen/spacing_normal"
                     android:layout_marginTop="@dimen/spacing_tiny">
 
@@ -234,6 +233,17 @@
                         android:text="@string/edit_checkin_duration_edit_hint_card_text" />
                 </LinearLayout>
 
+                <TextView
+                    android:id="@+id/edit_checkin_wrong_input_warning"
+                    style="@style/body2"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginHorizontal="@dimen/spacing_normal"
+                    android:layout_marginTop="@dimen/spacing_tiny"
+                    android:text="@string/edit_checkin_wrong_input_warning_text"
+                    android:textColor="@color/colorTextSemanticRed"
+                    android:visibility="gone" />
+
             </LinearLayout>
 
         </androidx.core.widget.NestedScrollView>
diff --git a/Corona-Warn-App/src/main/res/values-de/event_registration_strings.xml b/Corona-Warn-App/src/main/res/values-de/event_registration_strings.xml
index cab3723167e097ae414c81b2b58c9eed310ddff1..813647b6add831d706867c47231f9c3d781fd1fc 100644
--- a/Corona-Warn-App/src/main/res/values-de/event_registration_strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/event_registration_strings.xml
@@ -238,6 +238,8 @@
     <string name="edit_checkin_edit_card_checkin_time_label">"Eingecheckt"</string>
     <!-- XTXT: Checkin Edit: hint for unchanged contact diary checkin duration -->
     <string name="edit_checkin_duration_edit_hint_card_text">"Die Aufenthaltsdauer wird nicht automatisch in Ihrem Kontakt-Tagebuch angepasst."</string>
+    <!-- XTXT: Checkin Edit: warning if user input is incorrect -->
+    <string name="edit_checkin_wrong_input_warning_text">"Sie können für maximal 24 Stunden eingecheckt sein und die Auscheck-Zeit muss nach der Eincheck-Zeit liegen."</string>
     <!-- XBUT: Checkin Edit: Save Button -->
     <string name="edit_checkin_confirm_button_text">"Speichern"</string>
 
diff --git a/Corona-Warn-App/src/main/res/values/event_registration_strings.xml b/Corona-Warn-App/src/main/res/values/event_registration_strings.xml
index b748e76ead86b6fc283427c1629e237575db530e..f6a1f713c447a0c92f0d0f47e258d5db064d6aac 100644
--- a/Corona-Warn-App/src/main/res/values/event_registration_strings.xml
+++ b/Corona-Warn-App/src/main/res/values/event_registration_strings.xml
@@ -239,6 +239,8 @@
     <string name="edit_checkin_edit_card_checkin_time_label">"Eingecheckt"</string>
     <!-- XTXT: Checkin Edit: hint for unchanged contact diary checkin duration -->
     <string name="edit_checkin_duration_edit_hint_card_text">"Die Aufenthaltsdauer wird nicht automatisch in Ihrem Kontakt-Tagebuch angepasst."</string>
+    <!-- XTXT: Checkin Edit: warning if user input is incorrect -->
+    <string name="edit_checkin_wrong_input_warning_text">"Sie können für maximal 24 Stunden eingecheckt sein und die Auscheck-Zeit muss nach der Eincheck-Zeit liegen."</string>
     <!-- XBUT: Checkin Edit: Save Button -->
     <string name="edit_checkin_confirm_button_text">"Speichern"</string>