diff --git a/aleksis/apps/chronos/static/js/chronos/week_select.js b/aleksis/apps/chronos/static/js/chronos/week_select.js
index 3d683a886a909d5996c8038267c177e81c545797..4b5cb9bdbeed1f4029667bfb858d9fcef75a33ec 100644
--- a/aleksis/apps/chronos/static/js/chronos/week_select.js
+++ b/aleksis/apps/chronos/static/js/chronos/week_select.js
@@ -1,7 +1,7 @@
 var data = getJSONScript("week_select");
 
 function goToCalendarWeek(cw, year) {
-    window.location.href = data.dest + year + "/" + cw;
+    window.location.href = data.dest.replace("year", year).replace("cw", cw);
 }
 
 function onCalendarWeekChanged(where) {
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index 398db0e6505228b0d2432307d45fd885cb05fd2c..d91e6e0530d7d44d16a577746b53538a36eaa7fb 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -150,7 +150,12 @@ def timetable(
     context["smart"] = is_smart
     context["week_select"] = {
         "year": wanted_week.year,
-        "dest": reverse("timetable", args=[type_.value, pk]),
+        "dest": reverse(
+            "timetable_by_week",
+            args=[type_.value, pk, wanted_week.year, wanted_week.week],
+        )
+        .replace(str(wanted_week.year), "year")
+        .replace(str(wanted_week.week), "cw"),
     }
 
     if is_smart: