diff --git a/aleksis/apps/chronos/urls.py b/aleksis/apps/chronos/urls.py
index 45098f11ca7e8228d29dcde8634da3899cc4b2fb..0bdd940f486ed8ea3530483e53d24fd97ce6687f 100644
--- a/aleksis/apps/chronos/urls.py
+++ b/aleksis/apps/chronos/urls.py
@@ -10,7 +10,7 @@ urlpatterns = [
     path("timetable/<str:type_>/<int:pk>/<int:year>/<int:week>/", views.timetable, name="timetable_by_week"),
     path("timetable/<str:type_>/<int:pk>/<str:regular>/", views.timetable, name="timetable_regular"),
     path("lessons/", views.lessons_day, name="lessons_day"),
-    path("lessons/<when>/", views.lessons_day, name="lessons_day_by_date"),
+    path("lessons/<int:year>/<int:month>/<int:day>/", views.lessons_day, name="lessons_day_by_date"),
     path(
         "lessons/<int:id_>/<int:week>/substition/",
         views.edit_substitution,
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index 7054da1332d576b4feccc56f49c6f9854c61b2fd..08b6678ab623d457ae9518269d399ad5df83f809 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -211,33 +211,33 @@ def timetable(
 
 
 @login_required
-def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpResponse:
+def lessons_day(
+    request: HttpRequest,
+    year: Optional[int] = None,
+    month: Optional[int] = None,
+    day: Optional[int] = None,
+) -> HttpResponse:
     context = {}
 
-    if when:
-        day = datetime.strptime(when, "%Y-%m-%d").date()
+    if day:
+        wanted_day = timezone.datetime(year=year, month=month, day=day).date()
+        wanted_day = get_next_relevant_day(wanted_day)
     else:
-        day = date.today()
+        wanted_day = get_next_relevant_day(timezone.now().date(), datetime.now().time())
 
     # Get lessons
-    lesson_periods = LessonPeriod.objects.on_day(day)
+    lesson_periods = LessonPeriod.objects.on_day(wanted_day)
 
     # Build table
     lessons_table = LessonsTable(lesson_periods.all())
     RequestConfig(request).configure(lessons_table)
 
     context["lessons_table"] = lessons_table
-    context["day"] = day
+    context["day"] = wanted_day
     context["lesson_periods"] = lesson_periods
 
-    day_prev = day - timedelta(days=1)
-    day_next = day + timedelta(days=1)
-
-    context["url_prev"] = reverse(
-        "lessons_day_by_date", args=[day_prev.strftime("%Y-%m-%d")]
-    )
-    context["url_next"] = reverse(
-        "lessons_day_by_date", args=[day_next.strftime("%Y-%m-%d")]
+    context["url_prev"], context["url_next"] = get_prev_next_by_day(
+        wanted_day, "lessons_day_by_date"
     )
 
     return render(request, "chronos/lessons_day.html", context)