diff --git a/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
index 48f30337626dd0300b7bab3854942507c9f1589f..db8366ea71c2cf96973eee41938629980507dac8 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: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\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"
@@ -54,7 +54,7 @@ msgstr ""
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
@@ -110,168 +110,229 @@ msgstr ""
 msgid "Can manage all substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+msgid "Deleted"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+msgid "Lesson notification"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:752
+msgid "Lesson event alarm"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:753
+msgid "Lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 msgid "Friday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "substitution"
+msgstr ""
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 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 c64f0b51eb786c020e9911d4ebe3c1612b72bd84..beb6150b2660f693ad8d07cc0eb44e1fc5659332 100644
--- a/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: unnamed project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\n"
 "PO-Revision-Date: 2024-10-17 11:54+0200\n"
 "Last-Translator: Jonathan Weth <git@jonathanewth.de>\n"
 "Language-Team: English\n"
@@ -65,7 +65,7 @@ msgstr "Anzahl der Tage, die im Plan angezeigt werden"
 msgid "Show header box"
 msgstr "Kopfbox anzeigen"
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr "Die Kopfbox zeigt betroffene Lehrkräfte/Gruppen."
 
@@ -131,170 +131,243 @@ msgstr "Kann alle Tagesaufsichten sehen"
 msgid "Can manage all substitutions"
 msgstr "Vertretung verwalten"
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+#, fuzzy
+#| msgid "Delete"
+msgid "Deleted"
+msgstr "Löschen"
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr "Startzeitfenster-Nummer"
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr "Endzeitfenster-Nummer"
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr "Kurs"
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr "Räume"
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Lehrkräfte"
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Fach"
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr "Entfall"
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr "Kommentar"
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr "{} (statt {})"
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+#, fuzzy
+#| msgid "Lesson substitution"
+msgid "Lesson notification"
+msgstr "Vertretung"
+
+#: aleksis/apps/chronos/models.py:752
+#, fuzzy
+#| msgid "Lesson Event"
+msgid "Lesson event alarm"
+msgstr "Unterrichtsstunde"
+
+#: aleksis/apps/chronos/models.py:753
+#, fuzzy
+#| msgid "Lesson Events"
+msgid "Lesson event alarms"
+msgstr "Unterrichtsstunden"
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr "Aufsichten"
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr "Aufsicht: {}"
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr "Stundenpläne"
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr "Elterngruppen in Stundenplanansichten benutzen"
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr "Wenn eine Stunde oder Vertretung nur eine Gruppe hat und diese Gruppe Elterngruppen hat, zeige die Elterngruppen anstelle der eigentlichen Gruppe."
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr "Relevante Tage für Vertretungspläne"
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr "Zeit zu der Vertretungspläne zum nächsten Tag wechseln"
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr "Anzahl der Tage, die in der Druckansicht des Vertretungsplanes angezeigt werden soll"
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr "Kopfbox in Vertretungsplänen anzeigen"
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr "Elterngruppen in der Kopfbox in Vertretungsplänen an Stelle der eigentlichen Gruppen anzeigen"
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr "In Stundenplänen anzuzeigende Gruppentypen"
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr "Wenn Sie das Feld frei lassen, werden alle Gruppen angezeigt."
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr "Unterrichtsstunden-Kalenderfarbe"
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr "Aufsichts-Kalenderfarbe"
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+#, fuzzy
+#| msgid "How many days in advance users should be notified about timetable changes?"
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr "Wie viele Tage im Voraus sollen Benutzer über Stundenplanänderungen benachrichtigt werden?"
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr "Sonntag"
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr "Montag"
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr "Dienstag"
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr "Mittwoch"
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr "Donnerstag"
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 #, fuzzy
 #| msgid "Holiday"
 msgid "Friday"
 msgstr "Ferien"
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr "Samstag"
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+#, fuzzy
+#| msgid "Substitution"
+msgid "substitution"
+msgstr "Vertretung"
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr "Abwesende Lehrkräfte"
@@ -428,9 +501,6 @@ msgstr "Bereiche"
 #~ msgid "Lessons can only be either substituted or cancelled."
 #~ msgstr "Unterrichtsstunden können nur entweder vertreten werden oder ausfallen."
 
-#~ msgid "Lesson substitution"
-#~ msgstr "Vertretung"
-
 #~ msgid "Lesson substitutions"
 #~ msgstr "Vertretungen"
 
@@ -549,9 +619,6 @@ msgstr "Bereiche"
 #~ msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 #~ msgstr "Wenn Benutzer*innen die Kürzung von Gruppen aktiviert hat, werden sie ab diesem Limit gekürzt."
 
-#~ msgid "How many days in advance users should be notified about timetable changes?"
-#~ msgstr "Wie viele Tage im Voraus sollen Benutzer über Stundenplanänderungen benachrichtigt werden?"
-
 #~ msgid "Time for sending notifications about timetable changes"
 #~ msgstr "Zeitpunkt zum Senden von Benachrichtigungen über Stundenplanänderungen"
 
@@ -660,9 +727,6 @@ msgstr "Bereiche"
 #~ msgid "Timetable widgets"
 #~ msgstr "Stundenplanwidgets"
 
-#~ msgid "Substitution"
-#~ msgstr "Vertretung"
-
 #~ msgid "No teachers timetables available."
 #~ msgstr "Keine Stundenpläne von Lehrkräften vorhanden."
 
@@ -678,9 +742,6 @@ msgstr "Bereiche"
 #~ msgid "Edit substitution"
 #~ msgstr "Vertretung bearbeiten"
 
-#~ msgid "Delete"
-#~ msgstr "Löschen"
-
 #~ msgid "SMART PLAN"
 #~ msgstr "SMART PLAN"
 
diff --git a/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
index b9def12e9b9cd647d3d85f92828114453926638b..a13ef26d4d513915c30ca861afbe45f0ef77a7fc 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: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\n"
 "PO-Revision-Date: 2021-06-16 11:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/fr/>\n"
@@ -54,7 +54,7 @@ msgstr ""
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
@@ -110,172 +110,237 @@ msgstr ""
 msgid "Can manage all substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+msgid "Deleted"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Profs"
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr "Cours"
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 #, fuzzy
 #| msgid "Lesson"
 msgid "Lesson Event"
 msgstr "Cours"
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 #, fuzzy
 #| msgid "Lesson"
 msgid "Lesson Events"
 msgstr "Cours"
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+msgid "Lesson notification"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:752
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson event alarm"
+msgstr "Cours"
+
+#: aleksis/apps/chronos/models.py:753
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson event alarms"
+msgstr "Cours"
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 msgid "Friday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "substitution"
+msgstr ""
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
index 26cde2d780c2ca05a4dbc69569871856efa6f8ce..62769b2d631daf3dc318ffbdf9f6b27517995aee 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: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\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"
@@ -54,7 +54,7 @@ msgstr ""
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
@@ -110,168 +110,229 @@ msgstr ""
 msgid "Can manage all substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+msgid "Deleted"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+msgid "Lesson notification"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:752
+msgid "Lesson event alarm"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:753
+msgid "Lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 msgid "Friday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "substitution"
+msgstr ""
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 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 fe29db94609091b882fc7088f35760d3e4af793a..60d3a15c1a9bfa0169134cf86fb462c8a935ae60 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: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\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"
@@ -53,7 +53,7 @@ msgstr ""
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
@@ -109,168 +109,229 @@ msgstr ""
 msgid "Can manage all substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+msgid "Deleted"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+msgid "Lesson notification"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:752
+msgid "Lesson event alarm"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:753
+msgid "Lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 msgid "Friday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "substitution"
+msgstr ""
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
index 30010aa14a2911c05e72b66b40d920e43ab50bfb..8df546ab82c6681b194270904508f1bc936e286d 100644
--- a/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\n"
 "PO-Revision-Date: 2023-05-26 04:38+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/ru/>\n"
@@ -64,7 +64,7 @@ msgstr "Количество дней для отображения в план
 msgid "Show header box"
 msgstr "Показать заголовок"
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr "Заголовок отображает преподавателей/группы, на которых влияет."
 
@@ -132,188 +132,261 @@ msgstr "Может просматривать все уроки за день"
 msgid "Can manage all substitutions"
 msgstr "Управление заменами"
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+#, fuzzy
+#| msgid "Delete"
+msgid "Deleted"
+msgstr "Удалить"
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr "Полное имя"
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 #, fuzzy
 #| msgid "Start time"
 msgid "Start slot number"
 msgstr "Время начала"
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 #, fuzzy
 #| msgid "End time"
 msgid "End slot number"
 msgstr "Время окончания"
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr "Комнаты"
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Преподаватели"
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Предмет"
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr "Отменено"
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr "Коментарий"
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 #, fuzzy
 #| msgid "Lesson"
 msgid "Lesson Event"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 #, fuzzy
 #| msgid "Lessons"
 msgid "Lesson Events"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+#, fuzzy
+#| msgid "Lesson substitution"
+msgid "Lesson notification"
+msgstr "Замена урока"
+
+#: aleksis/apps/chronos/models.py:752
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson event alarm"
+msgstr "Урок"
+
+#: aleksis/apps/chronos/models.py:753
+#, fuzzy
+#| msgid "Lessons"
+msgid "Lesson event alarms"
+msgstr "Уроки"
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr "Контроли"
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 #, fuzzy
 #| msgid "Supervision"
 msgid "Supervision: {}"
 msgstr "Контроль"
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr "Расписания"
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr "Использовать родительские группы в обзорах расписания"
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 #, fuzzy
 #| msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr "Если у урока или у замены только одна группа и у этой группы есть родительские группы, отображать их вместо оригинальной группы."
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 #, fuzzy
 #| msgid "Lesson substitutions"
 msgid "Relevant days for substitution plans"
 msgstr "Замены уроков"
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr "Количество дней для отображения в печатном виде замен"
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr "Отображать заголовок в обзоре замен"
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr "В заголовке обзора замен отображать родительские группы вместо оригинальных"
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 #, fuzzy
 #| msgid "Shorten groups in timetable views"
 msgid "Group types to show in timetables"
 msgstr "Сокращать группы в обзорах расписания"
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 #, fuzzy
 #| msgid "Supervision area"
 msgid "Supervision calendar feed color"
 msgstr "Зона контроля"
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+#, fuzzy
+#| msgid "How many days in advance users should be notified about timetable changes?"
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr "За сколько дней до изменений в расписании необходимо уведомлять пользователей?"
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 #, fuzzy
 #| msgid "Holiday"
 msgid "Friday"
 msgstr "Выходной"
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+#, fuzzy
+#| msgid "Substitution"
+msgid "substitution"
+msgstr "Замена"
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr "Отсутствующие преподаватели"
@@ -449,9 +522,6 @@ msgstr ""
 #~ msgid "Lessons can only be either substituted or cancelled."
 #~ msgstr "Уроки могут быть только заменены или отменены."
 
-#~ msgid "Lesson substitution"
-#~ msgstr "Замена урока"
-
 #~ msgid "Lesson substitutions"
 #~ msgstr "Замены уроков"
 
@@ -572,9 +642,6 @@ msgstr ""
 #~ msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 #~ msgstr "Если пользователь активирует сокращение групп и количество больше установленного лимита, они группируются."
 
-#~ msgid "How many days in advance users should be notified about timetable changes?"
-#~ msgstr "За сколько дней до изменений в расписании необходимо уведомлять пользователей?"
-
 #~ msgid "Time for sending notifications about timetable changes"
 #~ msgstr "Время для отправки уведомлений об изменениях в расписании"
 
@@ -685,9 +752,6 @@ msgstr ""
 #~ msgid "Timetable widgets"
 #~ msgstr "Виджеты расписания"
 
-#~ msgid "Substitution"
-#~ msgstr "Замена"
-
 #~ msgid "No teachers timetables available."
 #~ msgstr "Расписания преподавателей недоступны."
 
@@ -703,9 +767,6 @@ msgstr ""
 #~ msgid "Edit substitution"
 #~ msgstr "Редактировать замену"
 
-#~ msgid "Delete"
-#~ msgstr "Удалить"
-
 #~ msgid "SMART PLAN"
 #~ msgstr "SMART PLAN"
 
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 fe29db94609091b882fc7088f35760d3e4af793a..60d3a15c1a9bfa0169134cf86fb462c8a935ae60 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: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\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"
@@ -53,7 +53,7 @@ msgstr ""
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
@@ -109,168 +109,229 @@ msgstr ""
 msgid "Can manage all substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:164
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+msgid "Deleted"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:168
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:171
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:174
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:178
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
 msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:215
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:262 aleksis/apps/chronos/models.py:274
-#: aleksis/apps/chronos/models.py:286
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:630
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:631
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:638
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+msgid "Lesson notification"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:752
+msgid "Lesson event alarm"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:753
+msgid "Lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:646
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:32
 msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:44
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:78
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:88
+#: aleksis/apps/chronos/preferences.py:89
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:110
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:122
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 msgid "Friday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "substitution"
+msgstr ""
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
index 84a66bce3d50f329a5254a4f7e4409a39b97e179..0908537168e3bb97f590286fb6668ae8be540ae3 100644
--- a/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
@@ -7,23 +7,18 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-12-08 13:24+0100\n"
+"POT-Creation-Date: 2024-12-23 13:03+0100\n"
 "PO-Revision-Date: 2022-06-22 19:59+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-chronos/uk/>\n"
+"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != "
-"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % "
-"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || "
-"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
 #: aleksis/apps/chronos/model_extensions.py:10
-#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr "Може бачити групові розклади"
 
@@ -33,7 +28,6 @@ msgid "Can manage group substitutions"
 msgstr "Керування замінами"
 
 #: aleksis/apps/chronos/model_extensions.py:18
-#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr "Може бачити особисті розклади"
 
@@ -57,40 +51,39 @@ msgstr "Може переглядати усі уроки окремого дн
 msgid "Can view course timetable"
 msgstr "Може переглядати групові розклади"
 
-#: aleksis/apps/chronos/models.py:48 aleksis/apps/chronos/models.py:1194
+#: aleksis/apps/chronos/models.py:48
 msgid "Number of days shown in the plan"
 msgstr "Кількість днів для відображення у плані"
 
-#: aleksis/apps/chronos/models.py:52 aleksis/apps/chronos/models.py:1198
+#: aleksis/apps/chronos/models.py:52
 msgid "Show header box"
 msgstr "Показати заголовок"
 
-#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:79
-#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
+#: aleksis/apps/chronos/models.py:53 aleksis/apps/chronos/preferences.py:80
 msgid "The header box shows affected teachers/groups."
 msgstr "Заголовок показує викладачів/групи на яких це впливає."
 
-#: aleksis/apps/chronos/models.py:60 aleksis/apps/chronos/models.py:1206
+#: aleksis/apps/chronos/models.py:60
 msgid "Revision which triggered the last update"
 msgstr "Ревізія, яка запустила останнє оновлення"
 
-#: aleksis/apps/chronos/models.py:132 aleksis/apps/chronos/models.py:1278
+#: aleksis/apps/chronos/models.py:132
 msgid "Automatic plan"
 msgstr "Автоматичний план"
 
-#: aleksis/apps/chronos/models.py:133 aleksis/apps/chronos/models.py:1279
+#: aleksis/apps/chronos/models.py:133
 msgid "Automatic plans"
 msgstr "Автоматичні плани"
 
-#: aleksis/apps/chronos/models.py:147 aleksis/apps/chronos/models.py:1293
+#: aleksis/apps/chronos/models.py:147
 msgid "Can view all room timetables"
 msgstr "Може бачити розклади усіх кімнат"
 
-#: aleksis/apps/chronos/models.py:148 aleksis/apps/chronos/models.py:1294
+#: aleksis/apps/chronos/models.py:148
 msgid "Can view all group timetables"
 msgstr "Може бачити розклади усіх груп"
 
-#: aleksis/apps/chronos/models.py:149 aleksis/apps/chronos/models.py:1295
+#: aleksis/apps/chronos/models.py:149
 msgid "Can view all person timetables"
 msgstr "Може бачити розклади усіх осіб"
 
@@ -99,7 +92,7 @@ msgstr "Може бачити розклади усіх осіб"
 msgid "Can view all course timetables"
 msgstr "Може переглядати розклади усіх груп"
 
-#: aleksis/apps/chronos/models.py:151 aleksis/apps/chronos/models.py:1296
+#: aleksis/apps/chronos/models.py:151
 msgid "Can view timetable overview"
 msgstr "Може бачити загальний розклад"
 
@@ -128,197 +121,242 @@ msgstr "Може переглядати усі уроки окремого дн
 msgid "Can manage all substitutions"
 msgstr "Керування замінами"
 
-#: aleksis/apps/chronos/models.py:164 aleksis/apps/chronos/models.py:395
-#: aleksis/apps/chronos/models.py:1306
+#: aleksis/apps/chronos/models.py:161
+msgid "Created"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:162
+msgid "Edited"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:163
+#, fuzzy
+#| msgid "Delete"
+msgid "Deleted"
+msgstr "Видалити"
+
+#: aleksis/apps/chronos/models.py:170
 msgid "Lessons"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:168 aleksis/apps/chronos/models.py:90
-#: aleksis/apps/chronos/models.py:626 aleksis/apps/chronos/models.py:1310
+#: aleksis/apps/chronos/models.py:174
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/apps/chronos/models.py:1313
+#: aleksis/apps/chronos/models.py:177
 msgid "Start slot number"
 msgstr "Номер першого слота"
 
-#: aleksis/apps/chronos/models.py:1316
+#: aleksis/apps/chronos/models.py:180
 msgid "End slot number"
 msgstr "Номер останнього слота"
 
-#: aleksis/apps/chronos/models.py:1320
+#: aleksis/apps/chronos/models.py:184
 msgid "Course"
 msgstr "Курс"
 
-#: aleksis/apps/chronos/models.py:184
+#: aleksis/apps/chronos/models.py:190
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
-#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
-#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/apps/chronos/models.py:190
+#: aleksis/apps/chronos/models.py:196
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
-#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 msgid "Rooms"
 msgstr "Кімнати"
 
-#: aleksis/apps/chronos/models.py:196
+#: aleksis/apps/chronos/models.py:202
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
 #: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
-#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
-#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
-#: aleksis/apps/chronos/models.py:1338
 msgid "Teachers"
 msgstr "Викладачі"
 
-#: aleksis/apps/chronos/models.py:203
+#: aleksis/apps/chronos/models.py:209
 #: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_description.txt:1
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
-#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
-#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
-#: aleksis/apps/chronos/models.py:1345
 msgid "Subject"
 msgstr "Предмет"
 
-#: aleksis/apps/chronos/models.py:211
+#: aleksis/apps/chronos/models.py:217
 #: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-#: aleksis/apps/chronos/models.py:1353
 msgid "Cancelled"
 msgstr "Скасовано"
 
-#: aleksis/apps/chronos/models.py:215 aleksis/apps/chronos/models.py:433
-#: aleksis/apps/chronos/models.py:692 aleksis/apps/chronos/models.py:734
-#: aleksis/apps/chronos/models.py:1147 aleksis/apps/chronos/models.py:1357
+#: aleksis/apps/chronos/models.py:221
 msgid "Comment"
 msgstr "Коментар"
 
-#: aleksis/apps/chronos/models.py:220
+#: aleksis/apps/chronos/models.py:226
 msgid "Is this a current change?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
-#: aleksis/apps/chronos/models.py:1425
+#: aleksis/apps/chronos/models.py:268 aleksis/apps/chronos/models.py:280
+#: aleksis/apps/chronos/models.py:292
 msgid "{} (instead of {})"
 msgstr "{} (замість {})"
 
-#: aleksis/apps/chronos/models.py:291 aleksis/apps/chronos/models.py:315
-#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
-#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
-#: aleksis/apps/chronos/models.py:1454
+#: aleksis/apps/chronos/models.py:297 aleksis/apps/chronos/models.py:321
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
 msgid "Lesson"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:1614
+#: aleksis/apps/chronos/models.py:658
 msgid "Lesson Event"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:1615
+#: aleksis/apps/chronos/models.py:659
 msgid "Lesson Events"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:638 aleksis/apps/chronos/models.py:924
-#: aleksis/apps/chronos/models.py:1622
+#: aleksis/apps/chronos/models.py:685
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:707
+#, fuzzy
+#| msgid "Lesson substitution"
+msgid "Lesson notification"
+msgstr "Заміна уроку"
+
+#: aleksis/apps/chronos/models.py:752
+#, fuzzy
+#| msgid "Lesson Event"
+msgid "Lesson event alarm"
+msgstr "Урок"
+
+#: aleksis/apps/chronos/models.py:753
+#, fuzzy
+#| msgid "Lesson Events"
+msgid "Lesson event alarms"
+msgstr "Уроки"
+
+#: aleksis/apps/chronos/models.py:760
 msgid "Supervisions"
 msgstr "Наглядачі"
 
-#: aleksis/apps/chronos/models.py:1630
+#: aleksis/apps/chronos/models.py:768
 msgid "Supervision: {}"
 msgstr "Контроль: {}"
 
-#: aleksis/apps/chronos/preferences.py:21
+#: aleksis/apps/chronos/preferences.py:22
 msgid "Timetables"
 msgstr "Розклади"
 
-#: aleksis/apps/chronos/preferences.py:29
+#: aleksis/apps/chronos/preferences.py:30
 msgid "Use parent groups in timetable views"
 msgstr "Використовувати батьківські групи в огляді розкладу"
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid ""
-"If a lesson or substitution has only one group and this group has parent "
-"groups, show the parent groups instead of the original group."
-msgstr ""
-"Якщо урок або заміна має лише одну групу і ця група має батьківські групи, "
-"відображати ці батьківські групи замість дійсної групи."
+#: aleksis/apps/chronos/preferences.py:32
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgstr "Якщо урок або заміна має лише одну групу і ця група має батьківські групи, відображати ці батьківські групи замість дійсної групи."
 
-#: aleksis/apps/chronos/preferences.py:65
+#: aleksis/apps/chronos/preferences.py:45
 msgid "Relevant days for substitution plans"
 msgstr "Відповідні дні для планів заміни"
 
-#: aleksis/apps/chronos/preferences.py:82
+#: aleksis/apps/chronos/preferences.py:62
 msgid "Time when substitution plans switch to the next day"
 msgstr "Час перемикання планів замін на наступний день"
 
-#: aleksis/apps/chronos/preferences.py:70
-#: aleksis/apps/chronos/preferences.py:91
+#: aleksis/apps/chronos/preferences.py:71
 msgid "Number of days shown on substitutions print view"
 msgstr "Кількість днів для відображення у друкованому вигляді замін"
 
-#: aleksis/apps/chronos/preferences.py:78
-#: aleksis/apps/chronos/preferences.py:99
+#: aleksis/apps/chronos/preferences.py:79
 msgid "Show header box in substitution views"
 msgstr "Відображати заголовок в огляді замін"
 
-#: aleksis/apps/chronos/preferences.py:88
-#: aleksis/apps/chronos/preferences.py:109
-msgid ""
-"Show parent groups in header box in substitution views instead of original "
-"groups"
-msgstr ""
-"У заголовку в огляді замін відображати батьківські групи замість дійсних груп"
+#: aleksis/apps/chronos/preferences.py:89
+msgid "Show parent groups in header box in substitution views instead of original groups"
+msgstr "У заголовку в огляді замін відображати батьківські групи замість дійсних груп"
 
-#: aleksis/apps/chronos/preferences.py:158
+#: aleksis/apps/chronos/preferences.py:100
 msgid "Group types to show in timetables"
 msgstr "Типи груп для зображення в розкладах"
 
-#: aleksis/apps/chronos/preferences.py:159
+#: aleksis/apps/chronos/preferences.py:101
 msgid "If you leave it empty, all groups will be shown."
 msgstr "Якщо залишити порожнім, будуть показані усі групи."
 
-#: aleksis/apps/chronos/preferences.py:169
+#: aleksis/apps/chronos/preferences.py:111
 msgid "Lesson calendar feed color"
 msgstr "Колір календаря для уроків"
 
-#: aleksis/apps/chronos/preferences.py:181
+#: aleksis/apps/chronos/preferences.py:123
 msgid "Supervision calendar feed color"
 msgstr "Колір календаря для нагляду"
 
-#: aleksis/apps/chronos/preferences.py:132
+#: aleksis/apps/chronos/preferences.py:134
+msgid "Send notifications to affected teachers when substitution lessons are created or edited."
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:145
+msgid "Trigger mode for lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:161
+#, fuzzy
+#| msgid "How many days in advance users should be notified about timetable changes?"
+msgid "How many days in advance should lesson event alarms be sent?"
+msgstr "За скільки днів потрібно інформувати користувачів щодо змін у розкладі?"
+
+#: aleksis/apps/chronos/preferences.py:170
+msgid "Time for sending lesson event alarms"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:179
+msgid "How much in advance should lesson event alarms be sent?"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:187
 msgid "Days of the week that appear in the timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:134
+#: aleksis/apps/chronos/preferences.py:189
 msgid "Sunday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:135
+#: aleksis/apps/chronos/preferences.py:190
 msgid "Monday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:136
+#: aleksis/apps/chronos/preferences.py:191
 msgid "Tuesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:137
+#: aleksis/apps/chronos/preferences.py:192
 msgid "Wednesday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:138
+#: aleksis/apps/chronos/preferences.py:193
 msgid "Thursday"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:139
+#: aleksis/apps/chronos/preferences.py:194
 #, fuzzy
 msgid "Friday"
 msgstr "Вихідний"
 
-#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:195
 msgid "Saturday"
 msgstr ""
 
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+msgid "cancellation"
+msgstr ""
+
+#: aleksis/apps/chronos/templates/chronos/lesson_event_notification_title.txt:1
+#, fuzzy
+#| msgid "Substitution"
+msgid "substitution"
+msgstr "Заміна"
+
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
 msgstr "Відсутні викладачі"
@@ -340,7 +378,6 @@ msgid "all day"
 msgstr "увесь день"
 
 #: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
-#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
 msgid "Supervision"
 msgstr "Контроль"
 
@@ -357,8 +394,6 @@ msgid "Time"
 msgstr "Час"
 
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
-#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
 msgid "Room"
 msgstr "Кімната"
 
@@ -374,426 +409,293 @@ msgstr "Заміни недоступні."
 msgid "Areas"
 msgstr "Області"
 
-#: aleksis/apps/chronos/mixins.py:25
-msgid "Linked validity range"
-msgstr "Пов'язана область дії"
+#~ msgid "Linked validity range"
+#~ msgstr "Пов'язана область дії"
 
-#: aleksis/apps/chronos/models.py:87
-msgid "School term"
-msgstr "Навчальний рік"
+#~ msgid "School term"
+#~ msgstr "Навчальний рік"
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
-#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
-msgid "Start date"
-msgstr "Дата початку"
+#~ msgid "Start date"
+#~ msgstr "Дата початку"
 
-#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
-#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
-msgid "End date"
-msgstr "Дата закінчення"
+#~ msgid "End date"
+#~ msgstr "Дата закінчення"
 
-#: aleksis/apps/chronos/models.py:112
-msgid "The start date must be earlier than the end date."
-msgstr "Початкова дата повинна бути раніше кінцевої дати."
+#~ msgid "The start date must be earlier than the end date."
+#~ msgstr "Початкова дата повинна бути раніше кінцевої дати."
 
-#: aleksis/apps/chronos/models.py:118
-msgid "The validity range must be within the school term."
-msgstr "Область дії повинна бути в межах навчального року."
+#~ msgid "The validity range must be within the school term."
+#~ msgstr "Область дії повинна бути в межах навчального року."
 
-#: aleksis/apps/chronos/models.py:125
-msgid "There is already a validity range for this time or a part of this time."
-msgstr "На цей час або на частину цього часу область дії вже призначена."
+#~ msgid "There is already a validity range for this time or a part of this time."
+#~ msgstr "На цей час або на частину цього часу область дії вже призначена."
 
-#: aleksis/apps/chronos/models.py:132
-msgid "Validity range"
-msgstr "Область дії"
+#~ msgid "Validity range"
+#~ msgstr "Область дії"
 
-#: aleksis/apps/chronos/models.py:133
-msgid "Validity ranges"
-msgstr "Області дії"
+#~ msgid "Validity ranges"
+#~ msgstr "Області дії"
 
-#: aleksis/apps/chronos/models.py:149
-msgid "Week day"
-msgstr "День тижня"
+#~ msgid "Week day"
+#~ msgstr "День тижня"
 
-#: aleksis/apps/chronos/models.py:151
-msgid "Number of period"
-msgstr "Номер уроку"
+#~ msgid "Number of period"
+#~ msgstr "Номер уроку"
 
-#: aleksis/apps/chronos/models.py:153
-msgid "Start time"
-msgstr "Час початку"
+#~ msgid "Start time"
+#~ msgstr "Час початку"
 
-#: aleksis/apps/chronos/models.py:154
-msgid "End time"
-msgstr "Час закінчення"
-
-#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
-#: aleksis/apps/chronos/models.py:1122
-msgid "Time period"
-msgstr "Час уроку"
-
-#: aleksis/apps/chronos/models.py:325
-msgid "Time periods"
-msgstr "Час уроків"
-
-#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
-#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
-msgid "Short name"
-msgstr "Коротке ім'я"
-
-#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
-#: aleksis/apps/chronos/models.py:811
-msgid "Long name"
-msgstr "Повна назва"
-
-#: aleksis/apps/chronos/models.py:332
-msgid "Foreground colour"
-msgstr "Колір переднього плану"
-
-#: aleksis/apps/chronos/models.py:333
-msgid "Background colour"
-msgstr "Колір фону"
-
-#: aleksis/apps/chronos/models.py:341
-msgid "Subjects"
-msgstr "Предмети"
-
-#: aleksis/apps/chronos/models.py:358
-msgid "Periods"
-msgstr "Години"
-
-#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
-msgid "Week"
-msgstr "Тиждень"
-
-#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
-msgid "Year"
-msgstr "Рік"
-
-#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
-msgid "Lesson period"
-msgstr "Урок за розкладом"
-
-#: aleksis/apps/chronos/models.py:428
-msgid "Cancelled?"
-msgstr "Скасовано?"
-
-#: aleksis/apps/chronos/models.py:430
-msgid "Cancelled for teachers?"
-msgstr "Скасовано для викладачів?"
-
-#: aleksis/apps/chronos/models.py:437
-msgid "Lessons can only be either substituted or cancelled."
-msgstr "Уроки можуть бути лише або замінені, або скасовані."
-
-#: aleksis/apps/chronos/models.py:477
-msgid "Lesson substitution"
-msgstr "Заміна уроку"
+#~ msgid "End time"
+#~ msgstr "Час закінчення"
 
-#: aleksis/apps/chronos/models.py:478
-msgid "Lesson substitutions"
-msgstr "Заміни уроків"
+#~ msgid "Time period"
+#~ msgstr "Час уроку"
 
-#: aleksis/apps/chronos/models.py:621
-msgid "Lesson periods"
-msgstr "Навчальні години"
+#~ msgid "Time periods"
+#~ msgstr "Час уроків"
 
-#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
-msgid "Absence reason"
-msgstr "Причина відсутності"
+#~ msgid "Short name"
+#~ msgstr "Коротке ім'я"
 
-#: aleksis/apps/chronos/models.py:636
-msgid "Absence reasons"
-msgstr "Причини відсутності"
+#~ msgid "Long name"
+#~ msgstr "Повна назва"
 
-#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
-#: aleksis/apps/chronos/models.py:943
-msgid "Teacher"
-msgstr "Викладач"
+#~ msgid "Foreground colour"
+#~ msgstr "Колір переднього плану"
 
-#: aleksis/apps/chronos/models.py:665
-msgid "Group"
-msgstr "Група"
+#~ msgid "Background colour"
+#~ msgstr "Колір фону"
 
-#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
-msgid "Start period"
-msgstr "Початок уроків"
+#~ msgid "Subjects"
+#~ msgstr "Предмети"
 
-#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
-msgid "End period"
-msgstr "Закінчення уроків"
+#~ msgid "Periods"
+#~ msgstr "Години"
 
-#: aleksis/apps/chronos/models.py:702
-msgid "Unknown absence"
-msgstr "Відсутність без пояснень"
+#~ msgid "Week"
+#~ msgstr "Тиждень"
 
-#: aleksis/apps/chronos/models.py:707
-msgid "Absence"
-msgstr "Відсутність"
+#~ msgid "Year"
+#~ msgstr "Рік"
 
-#: aleksis/apps/chronos/models.py:708
-msgid "Absences"
-msgstr "Відсутності"
+#~ msgid "Lesson period"
+#~ msgstr "Урок за розкладом"
 
-#: aleksis/apps/chronos/models.py:719
-msgid "Date of exam"
-msgstr "Дата іспиту"
+#~ msgid "Cancelled?"
+#~ msgstr "Скасовано?"
 
-#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
-#: aleksis/apps/chronos/models.py:977
-msgid "Title"
-msgstr "Назва"
+#~ msgid "Cancelled for teachers?"
+#~ msgstr "Скасовано для викладачів?"
 
-#: aleksis/apps/chronos/models.py:739
-msgid "Exam"
-msgstr "Іспит"
+#~ msgid "Lessons can only be either substituted or cancelled."
+#~ msgstr "Уроки можуть бути лише або замінені, або скасовані."
 
-#: aleksis/apps/chronos/models.py:740
-msgid "Exams"
-msgstr "Іспити"
+#~ msgid "Lesson substitutions"
+#~ msgstr "Заміни уроків"
 
-#: aleksis/apps/chronos/models.py:749
-msgid "Comments"
-msgstr "Коментарі"
+#~ msgid "Lesson periods"
+#~ msgstr "Навчальні години"
 
-#: aleksis/apps/chronos/models.py:789
-msgid "Holidays"
-msgstr "Вихідні"
+#~ msgid "Absence reason"
+#~ msgstr "Причина відсутності"
 
-#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
-msgid "Supervision area"
-msgstr "Зона контролю"
+#~ msgid "Absence reasons"
+#~ msgstr "Причини відсутності"
 
-#: aleksis/apps/chronos/models.py:804
-msgid "Supervision areas"
-msgstr "Зони контролю"
+#~ msgid "Teacher"
+#~ msgstr "Викладач"
 
-#: aleksis/apps/chronos/models.py:816
-msgid "Time period after break starts"
-msgstr "Навчання після перерви починається"
+#~ msgid "Group"
+#~ msgstr "Група"
 
-#: aleksis/apps/chronos/models.py:824
-msgid "Time period before break ends"
-msgstr "Навчання перед перервою закінчується"
+#~ msgid "Start period"
+#~ msgstr "Початок уроків"
 
-#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
-msgid "Break"
-msgstr "Перерва"
+#~ msgid "End period"
+#~ msgstr "Закінчення уроків"
 
-#: aleksis/apps/chronos/models.py:865
-msgid "Breaks"
-msgstr "Перерви"
+#~ msgid "Unknown absence"
+#~ msgstr "Відсутність без пояснень"
 
-#: aleksis/apps/chronos/models.py:932
-msgid "Date"
-msgstr "Дата"
+#~ msgid "Absence"
+#~ msgstr "Відсутність"
 
-#: aleksis/apps/chronos/models.py:966
-msgid "Supervision substitution"
-msgstr "Заміна контролю"
+#~ msgid "Absences"
+#~ msgstr "Відсутності"
 
-#: aleksis/apps/chronos/models.py:967
-msgid "Supervision substitutions"
-msgstr "Заміни контролю"
+#~ msgid "Date of exam"
+#~ msgstr "Дата іспиту"
 
-#: aleksis/apps/chronos/models.py:985
-msgid "Start time period"
-msgstr "Початок навчання"
+#~ msgid "Title"
+#~ msgstr "Назва"
 
-#: aleksis/apps/chronos/models.py:991
-msgid "End time period"
-msgstr "Закінчення навчання"
+#~ msgid "Exam"
+#~ msgstr "Іспит"
 
-#: aleksis/apps/chronos/models.py:1005
-#, python-brace-format
-msgid "Event {pk}"
-msgstr "Подія {pk}"
+#~ msgid "Exams"
+#~ msgstr "Іспити"
 
-#: aleksis/apps/chronos/models.py:1103
-msgid "Event"
-msgstr "Подія"
+#~ msgid "Comments"
+#~ msgstr "Коментарі"
 
-#: aleksis/apps/chronos/models.py:1104
-msgid "Events"
-msgstr "Події"
+#~ msgid "Holidays"
+#~ msgstr "Вихідні"
 
-#: aleksis/apps/chronos/models.py:1152
-msgid "Related exam"
-msgstr "Пов'язані іспити"
+#~ msgid "Supervision area"
+#~ msgstr "Зона контролю"
 
-#: aleksis/apps/chronos/models.py:1181
-msgid "Extra lesson"
-msgstr "Додатковий урок"
+#~ msgid "Supervision areas"
+#~ msgstr "Зони контролю"
 
-#: aleksis/apps/chronos/models.py:1182
-msgid "Extra lessons"
-msgstr "Додаткові уроки"
+#~ msgid "Time period after break starts"
+#~ msgstr "Навчання після перерви починається"
 
-#: aleksis/apps/chronos/models.py:1297
-msgid "Can view all lessons per day"
-msgstr "Може бачити усі уроки окремого дня"
+#~ msgid "Time period before break ends"
+#~ msgstr "Навчання перед перервою закінчується"
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "Shorten groups in timetable views"
-msgstr "Скорочувати групи в огляді розкладу"
+#~ msgid "Break"
+#~ msgstr "Перерва"
 
-#: aleksis/apps/chronos/preferences.py:43
-msgid "If there are more groups than the set limit, they will be collapsed."
-msgstr "Якщо груп більше за встановлений ліміт, вони будуть згруповані."
+#~ msgid "Breaks"
+#~ msgstr "Перерви"
 
-#: aleksis/apps/chronos/preferences.py:51
-msgid "Limit of groups for shortening of groups"
-msgstr "Ліміт груп для скорочення груп"
+#~ msgid "Date"
+#~ msgstr "Дата"
 
-#: aleksis/apps/chronos/preferences.py:53
-msgid ""
-"If a user activates shortening of groups,they will be collapsed if there are "
-"more groups than this limit."
-msgstr ""
-"Якщо користувач активує скорочення груп, і кількість груп буде більше за "
-"ліміт, вони групуватимуться."
+#~ msgid "Supervision substitution"
+#~ msgstr "Заміна контролю"
 
-#: aleksis/apps/chronos/preferences.py:118
-msgid ""
-"How many days in advance users should be notified about timetable changes?"
-msgstr ""
-"За скільки днів потрібно інформувати користувачів щодо змін у розкладі?"
+#~ msgid "Supervision substitutions"
+#~ msgstr "Заміни контролю"
 
-#: aleksis/apps/chronos/preferences.py:126
-msgid "Time for sending notifications about timetable changes"
-msgstr "Час для надсилання сповіщень щодо змін у розкладі"
+#~ msgid "Start time period"
+#~ msgstr "Початок навчання"
 
-#: aleksis/apps/chronos/preferences.py:129
-msgid ""
-"This is only used for scheduling notifications which doesn't affect the time "
-"period configured above. All other notifications affecting the next days are "
-"sent immediately."
-msgstr ""
-"Це використовується лише для планування сповіщень, які не впливають на "
-"навчальний час, встановлений вище. Усі інші сповіщення, які впливають на "
-"найближчі дні, надсилаються негайно."
+#~ msgid "End time period"
+#~ msgstr "Закінчення навчання"
+
+#, python-brace-format
+#~ msgid "Event {pk}"
+#~ msgstr "Подія {pk}"
+
+#~ msgid "Event"
+#~ msgstr "Подія"
+
+#~ msgid "Events"
+#~ msgstr "Події"
 
-#: aleksis/apps/chronos/preferences.py:140
-#: aleksis/apps/chronos/preferences.py:148
-msgid "Send notifications for current timetable changes"
-msgstr "Надіслати сповіщення щодо поточних змін у розкладі"
+#~ msgid "Related exam"
+#~ msgstr "Пов'язані іспити"
+
+#~ msgid "Extra lesson"
+#~ msgstr "Додатковий урок"
+
+#~ msgid "Extra lessons"
+#~ msgstr "Додаткові уроки"
+
+#~ msgid "Can view all lessons per day"
+#~ msgstr "Може бачити усі уроки окремого дня"
+
+#~ msgid "Shorten groups in timetable views"
+#~ msgstr "Скорочувати групи в огляді розкладу"
+
+#~ msgid "If there are more groups than the set limit, they will be collapsed."
+#~ msgstr "Якщо груп більше за встановлений ліміт, вони будуть згруповані."
+
+#~ msgid "Limit of groups for shortening of groups"
+#~ msgstr "Ліміт груп для скорочення груп"
+
+#~ msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#~ msgstr "Якщо користувач активує скорочення груп, і кількість груп буде більше за ліміт, вони групуватимуться."
+
+#~ msgid "Time for sending notifications about timetable changes"
+#~ msgstr "Час для надсилання сповіщень щодо змін у розкладі"
+
+#~ msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#~ msgstr "Це використовується лише для планування сповіщень, які не впливають на навчальний час, встановлений вище. Усі інші сповіщення, які впливають на найближчі дні, надсилаються негайно."
+
+#~ msgid "Send notifications for current timetable changes"
+#~ msgstr "Надіслати сповіщення щодо поточних змін у розкладі"
 
-#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has been cancelled."
-msgstr "Урок {subject} на {period} уроці у {day} скасований."
+#~ msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
+#~ msgstr "Урок {subject} на {period} уроці у {day} скасований."
 
-#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has some current "
-"changes."
-msgstr "Урок {subject} на {period} уроці у {day} зараз дещо змінений."
+#~ msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
+#~ msgstr "Урок {subject} на {period} уроці у {day} зараз дещо змінений."
 
-#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
-msgid "The teacher {old} is substituted by {new}."
-msgid_plural "The teachers {old} are substituted by {new}."
-msgstr[0] "Викладач {old} замінений викладачем {new}."
-msgstr[1] "Викладачі {old} замінені викладачами {new}."
-msgstr[2] "Викладачі {old} замінені викладачами {new}."
-msgstr[3] "Викладачі {old} замінені викладачами {new}."
-
-#: aleksis/apps/chronos/util/notifications.py:76
+#~ msgid "The teacher {old} is substituted by {new}."
+#~ msgid_plural "The teachers {old} are substituted by {new}."
+#~ msgstr[0] "Викладач {old} замінений викладачем {new}."
+#~ msgstr[1] "Викладачі {old} замінені викладачами {new}."
+#~ msgstr[2] "Викладачі {old} замінені викладачами {new}."
+#~ msgstr[3] "Викладачі {old} замінені викладачами {new}."
+
 #, python-brace-format
-msgid "The subject is changed to {subject}."
-msgstr "Предмет замінений на {subject}."
+#~ msgid "The subject is changed to {subject}."
+#~ msgstr "Предмет замінений на {subject}."
 
-#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
-msgid "The lesson is moved from {old} to {new}."
-msgstr "Урок перенесений з {old} до {new}."
+#~ msgid "The lesson is moved from {old} to {new}."
+#~ msgstr "Урок перенесений з {old} до {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
-msgid "There is an additional comment: {comment}."
-msgstr "Маємо додатковий коментар: {comment}."
+#~ msgid "There is an additional comment: {comment}."
+#~ msgstr "Маємо додатковий коментар: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
-msgid ""
-"There is an event that starts on {date_start}, {period_from}. period and "
-"ends on {date_end}, {period_to}. period:"
-msgstr ""
-"Маємо подію, яка розпочинається {date_start}, на {period_from}. уроці та "
-"закінчується {date_end}, на {period_to}. уроці:"
+#~ msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
+#~ msgstr "Маємо подію, яка розпочинається {date_start}, на {period_from}. уроці та закінчується {date_end}, на {period_to}. уроці:"
 
-#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
-msgid ""
-"There is an event on {date} from the {period_from}. period to the "
-"{period_to}. period:"
-msgstr ""
-"Маємо подію на {date} з {period_from}. уроку до кінця {period_to}. уроку:"
+#~ msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
+#~ msgstr "Маємо подію на {date} з {period_from}. уроку до кінця {period_to}. уроку:"
 
-#: aleksis/apps/chronos/util/notifications.py:123
-#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
-msgid "Groups: {groups}"
-msgstr "Групи: {groups}"
+#~ msgid "Groups: {groups}"
+#~ msgstr "Групи: {groups}"
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
-msgid "Teachers: {teachers}"
-msgstr "Викладачі: {teachers}"
+#~ msgid "Teachers: {teachers}"
+#~ msgstr "Викладачі: {teachers}"
 
-#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
-msgid "Rooms: {rooms}"
-msgstr "Кімнати: {rooms}"
+#~ msgid "Rooms: {rooms}"
+#~ msgstr "Кімнати: {rooms}"
 
-#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
-msgid "There is an extra lesson on {date} in the {period}. period:"
-msgstr "Маємо додатковий урок {date} на {period}. уроці:"
+#~ msgid "There is an extra lesson on {date} in the {period}. period:"
+#~ msgstr "Маємо додатковий урок {date} на {period}. уроці:"
 
-#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
-msgid "Subject: {subject}"
-msgstr "Предмет: {subject}"
+#~ msgid "Subject: {subject}"
+#~ msgstr "Предмет: {subject}"
 
-#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
-msgid "Room: {room}"
-msgstr "Кімната: {room}"
+#~ msgid "Room: {room}"
+#~ msgstr "Кімната: {room}"
 
-#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
-msgid "Comment: {comment}."
-msgstr "Коментар: {comment}."
+#~ msgid "Comment: {comment}."
+#~ msgstr "Коментар: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
-msgid ""
-"The supervision of {old} on {date} between the {period_from}. period and the "
-"{period_to}. period in the area {area} is substituted by {new}."
-msgstr ""
-"Контроль {old}, {date} між {period_from}. та {period_to}. уроками у зоні "
-"{area} замінений на {new}."
+#~ msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
+#~ msgstr "Контроль {old}, {date} між {period_from}. та {period_to}. уроками у зоні {area} замінений на {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:204
-msgid "Timetable"
-msgstr "Розклад"
+#~ msgid "Timetable"
+#~ msgstr "Розклад"
 
-#: aleksis/apps/chronos/util/notifications.py:205
-msgid "There are current changes to your timetable."
-msgstr "У Вашому розкладі є зміни."
+#~ msgid "There are current changes to your timetable."
+#~ msgstr "У Вашому розкладі є зміни."
 
-#: aleksis/apps/chronos/models.py:788
-msgid "Holiday"
-msgstr "Вихідний"
+#~ msgid "Holiday"
+#~ msgstr "Вихідний"
 
-#: aleksis/apps/chronos/models.py:1298
-msgid "Can view all supervisions per day"
-msgstr "Може бачити весь нагляд окремого дня"
+#~ msgid "Can view all supervisions per day"
+#~ msgstr "Може бачити весь нагляд окремого дня"
 
 #~ msgid "Options for timetables"
 #~ msgstr "Опції для розкладів"
@@ -822,9 +724,6 @@ msgstr "Може бачити весь нагляд окремого дня"
 #~ msgid "Timetable widgets"
 #~ msgstr "Віджети розкладу"
 
-#~ msgid "Substitution"
-#~ msgstr "Заміна"
-
 #~ msgid "No teachers timetables available."
 #~ msgstr "Розклади викладачів недоступні."
 
@@ -840,9 +739,6 @@ msgstr "Може бачити весь нагляд окремого дня"
 #~ msgid "Edit substitution"
 #~ msgstr "Редагувати заміну"
 
-#~ msgid "Delete"
-#~ msgstr "Видалити"
-
 #~ msgid "SMART PLAN"
 #~ msgstr "SMART PLAN"