diff --git a/aleksis/apps/chronos/forms.py b/aleksis/apps/chronos/forms.py
index 16301fbf5c89ef008fee39ffbc0611ce3ea5afb4..cbec05e91df886da00703c768ac76e882b1bd6c6 100644
--- a/aleksis/apps/chronos/forms.py
+++ b/aleksis/apps/chronos/forms.py
@@ -11,10 +11,8 @@ class LessonSubstitutionForm(forms.ModelForm):
 
     class Meta:
         model = LessonSubstitution
-        fields = ["week", "lesson_period", "subject", "teachers", "room", "cancelled"]
+        fields = ["subject", "teachers", "room", "cancelled"]
         widgets = {
-            "week": forms.NumberInput(attrs={"disabled": True}),
-            "lesson_period": forms.Select(attrs={"disabled": True}),
             "teachers": ModelSelect2MultipleWidget(
                 search_fields=[
                     "first_name__icontains",
diff --git a/aleksis/apps/chronos/templates/chronos/edit_substitution.html b/aleksis/apps/chronos/templates/chronos/edit_substitution.html
index 7f58113afe0f4c09092913b7a0e28dcbbf3e4bf4..297d70139684f71d17b43f3bb4b4c875c985b9a7 100644
--- a/aleksis/apps/chronos/templates/chronos/edit_substitution.html
+++ b/aleksis/apps/chronos/templates/chronos/edit_substitution.html
@@ -12,6 +12,7 @@
 {% block page_title %}{% blocktrans %}Edit substitution{% endblocktrans %}{% endblock %}
 
 {% block content %}
+  <p class="flow-text">{{ date }}: {{ lesson_period }}</p>
   <form method="post">
     {% csrf_token %}
 
@@ -19,7 +20,6 @@
 
     {% include "core/partials/save_button.html" %}
     {% if substitution %}
-      {# FIXME Respect year as well #}
       <a href="{% url 'delete_substitution' substitution.lesson_period.id substitution.week %}"
          class="btn red waves-effect waves-light">
         <i class="material-icons iconify left" data-icon="mdi:delete-outline"></i> {% trans "Delete" %}
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index ebec49468803b158825342158f9d1a863efaed42..de21fe4584f06ac8fd7c622618ff87bbbed98058 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -30,7 +30,7 @@ from .util.chronos_helpers import (
     get_substitutions_context_data,
     get_teachers,
 )
-from .util.date import CalendarWeek, get_weeks_for_year
+from .util.date import CalendarWeek, get_weeks_for_year, week_weekday_to_date
 from .util.js import date_unix
 
 
@@ -248,6 +248,8 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse
 
     lesson_period = get_object_or_404(LessonPeriod, pk=id_)
     wanted_week = lesson_period.lesson.get_calendar_week(week)
+    context["lesson_period"] = lesson_period
+    context["date"] = week_weekday_to_date(wanted_week, lesson_period.period.weekday)
 
     lesson_substitution = get_substitution_by_id(request, id_, week)
 
@@ -265,7 +267,12 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse
 
     if request.method == "POST":
         if edit_substitution_form.is_valid():
-            edit_substitution_form.save(commit=True)
+            lesson_substitution = edit_substitution_form.save(commit=False)
+            if not lesson_substitution.pk:
+                lesson_substitution.lesson_period = lesson_period
+                lesson_substitution.week = wanted_week.week
+                lesson_substitution.year = wanted_week.year
+            lesson_substitution.save()
 
             messages.success(request, _("The substitution has been saved."))