diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 895420f186127b31c2f4527478a9bbe3f5c176b2..ed06b1e5b4b86d6f4aaf64809f73d8dadf00b974 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -15,7 +15,7 @@ from calendarweek.django import CalendarWeek, i18n_day_names_lazy, i18n_day_abbr
 from aleksis.core.mixins import ExtensibleModel
 from aleksis.core.models import Group, Person
 
-from .util import week_weekday_from_date
+from aleksis.apps.chronos.util.weeks import week_weekday_from_date
 
 
 class LessonPeriodManager(models.Manager):
diff --git a/aleksis/apps/chronos/util/min_max.py b/aleksis/apps/chronos/util/min_max.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d5dd421443f36b3b2f01ce0a2ef74b6504a0b5e
--- /dev/null
+++ b/aleksis/apps/chronos/util/min_max.py
@@ -0,0 +1,19 @@
+from django.db.models import Min, Max
+
+from aleksis.apps.chronos.models import TimePeriod
+
+# Determine overall first and last day and period
+min_max = TimePeriod.objects.aggregate(
+    Min("period"), Max("period"), Min("weekday"), Max("weekday"), Min("time_start"), Max("time_end")
+)
+
+period_min = min_max.get("period__min", 1)
+period_max = min_max.get("period__max", 7)
+
+time_min = min_max.get("time_start__min", None)
+time_max = min_max.get("time_end__max", None)
+
+weekday_min_ = min_max.get("weekday__min", 0)
+weekday_max = min_max.get("weekday__max", 6)
+
+
diff --git a/aleksis/apps/chronos/min_max.py b/aleksis/apps/chronos/util/prev_next.py
similarity index 63%
rename from aleksis/apps/chronos/min_max.py
rename to aleksis/apps/chronos/util/prev_next.py
index 8d8d60c2cf6ec146a4b22166f32ef4f4d228deda..077a26de80585f27ecb06de3efe54ec46b3487d3 100644
--- a/aleksis/apps/chronos/min_max.py
+++ b/aleksis/apps/chronos/util/prev_next.py
@@ -1,25 +1,10 @@
-from datetime import date, time, timedelta
+from datetime import timedelta, date, time
 from typing import Optional
 
 from calendarweek import CalendarWeek
-from django.db.models import Min, Max
 from django.utils import timezone
 
-from .models import TimePeriod
-
-# Determine overall first and last day and period
-min_max = TimePeriod.objects.aggregate(
-    Min("period"), Max("period"), Min("weekday"), Max("weekday"), Min("time_start"), Max("time_end")
-)
-
-period_min = min_max.get("period__min", 1)
-period_max = min_max.get("period__max", 7)
-
-time_min = min_max.get("time_start__min", None)
-time_max = min_max.get("time_end__max", None)
-
-weekday_min_ = min_max.get("weekday__min", 0)
-weekday_max = min_max.get("weekday__max", 6)
+from aleksis.apps.chronos.util.min_max import weekday_min_, weekday_max, time_max
 
 
 def get_next_relevant_day(day: Optional[date] = None, time: Optional[time] = None) -> date:
diff --git a/aleksis/apps/chronos/util.py b/aleksis/apps/chronos/util/weeks.py
similarity index 100%
rename from aleksis/apps/chronos/util.py
rename to aleksis/apps/chronos/util/weeks.py
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index 5ac21d70f6a66802177e39d250aa736c7ff700de..6841d735f96ba61119742869dec94d2944404603 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -9,25 +9,22 @@ from django.shortcuts import get_object_or_404, redirect, render
 from django.urls import reverse
 from django.utils import timezone
 from django.utils.translation import ugettext as _
-
 from django_tables2 import RequestConfig
 
 from aleksis.core.decorators import admin_required
 from aleksis.core.models import Person, Group
 from aleksis.core.util import messages
-
 from .forms import LessonSubstitutionForm
-from .min_max import (
+from .models import LessonPeriod, LessonSubstitution, TimePeriod, Room
+from .tables import LessonsTable
+from .util.min_max import (
     period_min,
     period_max,
     weekday_min_,
-    weekday_max,
-    get_next_relevant_day,
-    get_prev_relevant_day,
+    weekday_max
 )
-from .models import LessonPeriod, LessonSubstitution, TimePeriod, Room
-from .tables import LessonsTable
-from .util import CalendarWeek, get_weeks_for_year
+from .util.prev_next import get_prev_relevant_day, get_next_relevant_day
+from .util.weeks import CalendarWeek, get_weeks_for_year
 
 
 def get_prev_next_by_day(day: date, url: str) -> Tuple[str, str]: