diff --git a/src/shiftings/shifts/forms/shift.py b/src/shiftings/shifts/forms/shift.py
index 147e851..9070ab2 100644
--- a/src/shiftings/shifts/forms/shift.py
+++ b/src/shiftings/shifts/forms/shift.py
@@ -36,6 +36,8 @@ def clean(self) -> Dict[str, Any]:
start = cleaned_data.get('start')
end = cleaned_data.get('end')
if start and end and start > end:
+ self.add_error('end', ValidationError(""))
+ self.add_error('start', ValidationError(""))
raise ValidationError(_('End time must be after start time'))
## TODO: raise form error if not valid, but first implement proper error display in template
diff --git a/src/shiftings/shifts/templates/shifts/create_shift.html b/src/shiftings/shifts/templates/shifts/create_shift.html
index 9b5b425..c41abad 100644
--- a/src/shiftings/shifts/templates/shifts/create_shift.html
+++ b/src/shiftings/shifts/templates/shifts/create_shift.html
@@ -29,6 +29,16 @@
Update Shift "{{ name }} for {{ organization }}"
{% csrf_token %}
+ {% if form.non_field_errors %}
+
+ {% for error in form.non_field_errors %}
+ {% if 'constraint' not in error|lower %}
+