diff --git a/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
index 783e1076a67b177d132dc8504be757d40a23d42d..631b70a62a2f021bfb9288681747b7e41eb50d71 100644
--- a/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -22,7 +22,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr ""
 
@@ -70,17 +70,17 @@ msgstr ""
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr ""
 
@@ -104,323 +104,319 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr ""
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
index a185a87cf907dea78d899ad4558a80c611e4e7a4..4507a959084f53ea99bd296204379daf1acdb2ce 100644
--- a/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2021-05-21 16:12+0000\n"
 "Last-Translator: Lloyd Meins <teckids@lloydmeins.de>\n"
-"Language-Team: German <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-chronos/de/>\n"
+"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/de/>\n"
 "Language: de_DE\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +22,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr "Einstellungen für Stundenpläne"
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr "Stundenpläne"
 
@@ -71,17 +70,17 @@ msgstr "Kann Personenstundenpläne sehen"
 msgid "School term"
 msgstr "Schuljahr"
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr "Startdatum"
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr "Enddatum"
 
@@ -105,323 +104,319 @@ msgstr "Gültigkeitsbereich"
 msgid "Validity ranges"
 msgstr "Gültigkeitsbereiche"
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr "Wochentag"
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr "Nummer der Stunde"
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr "Startzeit"
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr "Endzeit"
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr "Stunde"
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr "Stunden"
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr "Kurzname"
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr "Langname"
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr "Vordergrundfarbe"
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr "Hintergrundfarbe"
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Fach"
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 msgid "Subjects"
 msgstr "Fächer"
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr "Kann Raumstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr "Raum"
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr "Räume"
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr "Lehrkräfte"
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr "Stunden"
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr "Woche"
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr "Jahr"
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr "Entfällt?"
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr "Entfällt für Lehrkräfte?"
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr "Kommentar"
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr "Unterrichtsstunden können nur entweder vertreten werden oder ausfallen."
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr "Vertretung"
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr "Vertretungen"
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr "Stundenplanwidget"
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr "Stundenplanwidgets"
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr "Absenzgrund"
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr "Absenzgründe"
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr "Lehrkraft"
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr "Gruppe"
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr "Startstunde"
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr "Unbekannte Absenz"
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr "Absenz"
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr "Fehlstunden"
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr "Datum der Klausur"
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr "Titel"
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr "Klausur"
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr "Klausuren"
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr "Kommentare"
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr "Ferien"
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr "Ferien"
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr "Aufsichtsgebiet"
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr "Aufsichtsgebiete"
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr "Stunde, nach der die Pause startet"
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr "Stunde nach der Pause"
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr "Pause"
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr "Pausen"
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr "Aufsicht"
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr "Aufsichten"
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr "Datum"
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr "Aufsichtsvertretung"
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr "Aufsichtsvertretungen"
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr "Startstunde"
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr "Endstunde"
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr "Veranstaltung {self.pk}"
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr "Veranstaltung"
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr "Veranstaltungen"
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr "Sonderstunde"
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr "Sonderstunden"
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr "Kann alle Raumstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr "Kann alle Gruppenstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr "Kann alle Personenstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr "Kann Stundenplanübersicht sehen"
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr "Kann alle Tagesstunden sehen"
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr "Chronos"
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr "Elterngruppen in Stundenplanansichten benutzen"
@@ -590,6 +585,9 @@ msgstr "Die Vertretung wurde gespeichert."
 msgid "The substitution has been deleted."
 msgstr "Die Vertretung wurde gelöscht."
 
+#~ msgid "Chronos"
+#~ msgstr "Chronos"
+
 #~ msgid "Short name of subject"
 #~ msgstr "Kurzname des Faches"
 
diff --git a/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
index 587918b30a585327a67b2985b411c026557233d0..1d890ce4e1804daf92d20fb0b5eccd5d01a2dbd7 100644
--- a/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2020-04-29 12:01+0000\n"
 "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/fr/>\n"
@@ -22,7 +22,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr ""
 
@@ -70,17 +70,17 @@ msgstr ""
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr ""
 
@@ -104,325 +104,321 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 #, fuzzy
 #| msgid "Subject"
 msgid "Subjects"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr "Salle"
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr "Profs"
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr "Cours"
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr "Profs"
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr "Absences"
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr "Date"
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr ""
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
index 0e49cd219957525a22ff74510c1952786aacb57c..d8c87e1f24f0e8100e5629f717f493108da57e87 100644
--- a/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2020-08-23 13:49+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/la/>\n"
@@ -22,7 +22,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr ""
 
@@ -70,17 +70,17 @@ msgstr ""
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr ""
 
@@ -104,323 +104,319 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr "Grex"
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr ""
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
index 3d7d0db5771014fdf728a52f20eaecebceea0886..7dee014a4b09bffaafd6ecb297a9878b962cc7ce 100644
--- a/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr ""
 
@@ -69,17 +69,17 @@ msgstr ""
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr ""
 
@@ -103,323 +103,319 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr ""
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
index 3d7d0db5771014fdf728a52f20eaecebceea0886..7dee014a4b09bffaafd6ecb297a9878b962cc7ce 100644
--- a/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-20 21:05+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "Options for timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/menus.py:6
+#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:8
 msgid "Timetables"
 msgstr ""
 
@@ -69,17 +69,17 @@ msgstr ""
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:591
+#: aleksis/apps/chronos/models.py:74 aleksis/apps/chronos/models.py:617
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:641
-#: aleksis/apps/chronos/models.py:711 aleksis/apps/chronos/models.py:913
+#: aleksis/apps/chronos/models.py:76 aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:744 aleksis/apps/chronos/models.py:956
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:642
-#: aleksis/apps/chronos/models.py:712 aleksis/apps/chronos/models.py:914
+#: aleksis/apps/chronos/models.py:77 aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:745 aleksis/apps/chronos/models.py:957
 msgid "End date"
 msgstr ""
 
@@ -103,323 +103,319 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:130
+#: aleksis/apps/chronos/models.py:135
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:132
+#: aleksis/apps/chronos/models.py:137
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:134
+#: aleksis/apps/chronos/models.py:139
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:135
+#: aleksis/apps/chronos/models.py:140
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:303 aleksis/apps/chronos/models.py:449
-#: aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:313 aleksis/apps/chronos/models.py:474
+#: aleksis/apps/chronos/models.py:1071
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:304
+#: aleksis/apps/chronos/models.py:314
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:308 aleksis/apps/chronos/models.py:324
-#: aleksis/apps/chronos/models.py:590 aleksis/apps/chronos/models.py:756
-#: aleksis/apps/chronos/models.py:773
+#: aleksis/apps/chronos/models.py:318 aleksis/apps/chronos/models.py:340
+#: aleksis/apps/chronos/models.py:616 aleksis/apps/chronos/models.py:789
+#: aleksis/apps/chronos/models.py:811
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:309 aleksis/apps/chronos/models.py:325
-#: aleksis/apps/chronos/models.py:757 aleksis/apps/chronos/models.py:774
+#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:341
+#: aleksis/apps/chronos/models.py:790 aleksis/apps/chronos/models.py:812
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:311
+#: aleksis/apps/chronos/models.py:321
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:312
+#: aleksis/apps/chronos/models.py:322
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:319 aleksis/apps/chronos/models.py:342
-#: aleksis/apps/chronos/models.py:392 aleksis/apps/chronos/models.py:1034
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:363
+#: aleksis/apps/chronos/models.py:414 aleksis/apps/chronos/models.py:1078
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:46
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:320
+#: aleksis/apps/chronos/models.py:330
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:334
+#: aleksis/apps/chronos/models.py:350
 msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:336 aleksis/apps/chronos/models.py:397
-#: aleksis/apps/chronos/models.py:453 aleksis/apps/chronos/models.py:638
-#: aleksis/apps/chronos/models.py:1043
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:419
+#: aleksis/apps/chronos/models.py:478 aleksis/apps/chronos/models.py:669
+#: aleksis/apps/chronos/models.py:1087
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:47
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
 msgid "Room"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:337 aleksis/apps/chronos/models.py:927
+#: aleksis/apps/chronos/models.py:353 aleksis/apps/chronos/models.py:970
 #: aleksis/apps/chronos/templates/chronos/all.html:39
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:345 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:929 aleksis/apps/chronos/models.py:1040
+#: aleksis/apps/chronos/models.py:366 aleksis/apps/chronos/models.py:417
+#: aleksis/apps/chronos/models.py:972 aleksis/apps/chronos/models.py:1084
 #: aleksis/apps/chronos/tables.py:35
 #: aleksis/apps/chronos/templates/chronos/all.html:17
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:348
+#: aleksis/apps/chronos/models.py:369
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:350 aleksis/apps/chronos/models.py:926
-#: aleksis/apps/chronos/models.py:1037 aleksis/apps/chronos/tables.py:34
+#: aleksis/apps/chronos/models.py:371 aleksis/apps/chronos/models.py:969
+#: aleksis/apps/chronos/models.py:1081 aleksis/apps/chronos/tables.py:34
 #: aleksis/apps/chronos/templates/chronos/all.html:28
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:372 aleksis/apps/chronos/models.py:446
-#: aleksis/apps/chronos/models.py:678
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:471
+#: aleksis/apps/chronos/models.py:710
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:373
+#: aleksis/apps/chronos/models.py:395
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
 #: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:379 aleksis/apps/chronos/models.py:1024
+#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1068
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:380 aleksis/apps/chronos/models.py:1025
+#: aleksis/apps/chronos/models.py:402 aleksis/apps/chronos/models.py:1069
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:383 aleksis/apps/chronos/models.py:546
+#: aleksis/apps/chronos/models.py:405 aleksis/apps/chronos/models.py:572
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:421
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401
+#: aleksis/apps/chronos/models.py:423
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:657
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:1046
+#: aleksis/apps/chronos/models.py:426 aleksis/apps/chronos/models.py:688
+#: aleksis/apps/chronos/models.py:730 aleksis/apps/chronos/models.py:1090
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:408
+#: aleksis/apps/chronos/models.py:430
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:436
+#: aleksis/apps/chronos/models.py:461
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437
+#: aleksis/apps/chronos/models.py:462
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:547
+#: aleksis/apps/chronos/models.py:573
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:585
+#: aleksis/apps/chronos/models.py:611
 msgid "Timetable widget"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:586
+#: aleksis/apps/chronos/models.py:612
 msgid "Timetable widgets"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:600 aleksis/apps/chronos/models.py:613
+#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:644
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:601
+#: aleksis/apps/chronos/models.py:627
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:622 aleksis/apps/chronos/models.py:844
-#: aleksis/apps/chronos/models.py:890
+#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:887
+#: aleksis/apps/chronos/models.py:933
 #: aleksis/apps/chronos/templates/chronos/substitutions.html:45
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:661
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646 aleksis/apps/chronos/models.py:685
+#: aleksis/apps/chronos/models.py:677 aleksis/apps/chronos/models.py:717
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:653 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:684 aleksis/apps/chronos/models.py:724
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:667
+#: aleksis/apps/chronos/models.py:698
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:672
+#: aleksis/apps/chronos/models.py:704
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:673
+#: aleksis/apps/chronos/models.py:705
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:681
+#: aleksis/apps/chronos/models.py:713
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:697 aleksis/apps/chronos/models.py:710
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:729 aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:954
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:703
+#: aleksis/apps/chronos/models.py:736
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:704
+#: aleksis/apps/chronos/models.py:737
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:713
+#: aleksis/apps/chronos/models.py:746
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:751
+#: aleksis/apps/chronos/models.py:784
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:752
+#: aleksis/apps/chronos/models.py:785
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:837
+#: aleksis/apps/chronos/models.py:799 aleksis/apps/chronos/models.py:880
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:767
+#: aleksis/apps/chronos/models.py:800
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:779
+#: aleksis/apps/chronos/models.py:817
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:825
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:841
+#: aleksis/apps/chronos/models.py:865 aleksis/apps/chronos/models.py:884
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:828
+#: aleksis/apps/chronos/models.py:866
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:875 aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:918 aleksis/apps/chronos/models.py:927
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
 #: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:876
+#: aleksis/apps/chronos/models.py:919
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:882
+#: aleksis/apps/chronos/models.py:925
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:902
+#: aleksis/apps/chronos/models.py:945
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:946
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:919
+#: aleksis/apps/chronos/models.py:962
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:923
+#: aleksis/apps/chronos/models.py:966
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/models.py:979
 #, python-brace-format
 msgid "Event {self.pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1013
+#: aleksis/apps/chronos/models.py:1057
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:1058
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:1109
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1065
+#: aleksis/apps/chronos/models.py:1110
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:1118
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1074
+#: aleksis/apps/chronos/models.py:1119
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:1120
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1076
+#: aleksis/apps/chronos/models.py:1121
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1077
+#: aleksis/apps/chronos/models.py:1122
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:8
-msgid "Chronos"
-msgstr ""
-
 #: aleksis/apps/chronos/preferences.py:16
 msgid "Use parent groups in timetable views"
 msgstr ""