diff --git a/gui/slick/js/core.js b/gui/slick/js/core.js
index 829e851ea8fddbc426b529d393ae3ee5e93bddb7..dcbad8e10fd960c6360412ed1255f94321bcb080 100644
--- a/gui/slick/js/core.js
+++ b/gui/slick/js/core.js
@@ -3603,7 +3603,7 @@ var SICKRAGE = {
     schedule: {
         init: function() {
             // Set webcal link for calendar subscription
-            $('.btn-cal-subscribe').attr('href', document.location.href.replace(/https?/, 'webcal').replace('schedule', 'calendar'));
+            $('.btn-cal-subscribe').attr('href', document.location.href.replace(/https?/, 'webcal').replace(/schedule.*/, 'calendar'));
         },
         index: function() {
             if (isMeta('sickbeard.COMING_EPS_LAYOUT', ['list'])) {
diff --git a/gui/slick/js/core.min.js b/gui/slick/js/core.min.js
index 50b51983e919ebd0dd0b07eb2687e9330929ceed..b6380bcb441386ac99132955a5d5a3c969154d47 100644
Binary files a/gui/slick/js/core.min.js and b/gui/slick/js/core.min.js differ
diff --git a/sickbeard/webserveInit.py b/sickbeard/webserveInit.py
index 871e669a499c734955fb3b16cb76eb052ac7a254..1032f163a109af6c7ed8e1d774a0831ca44e2a0e 100644
--- a/sickbeard/webserveInit.py
+++ b/sickbeard/webserveInit.py
@@ -132,8 +132,8 @@ class SRWebServer(threading.Thread):  # pylint: disable=too-many-instance-attrib
             (r'{0}/login(/?)'.format(self.options['web_root']), LoginHandler),
             (r'{0}/logout(/?)'.format(self.options['web_root']), LogoutHandler),
 
-            # Web calendar handler (Needed because option Unprotected calendar)
-            (r'{0}/calendar'.format(self.options['web_root']), CalendarHandler),
+            # Web calendar handler (Needed for the "Unprotected Calendar" option)
+            (r'{0}/calendar/?'.format(self.options['web_root']), CalendarHandler),
 
             # webui handlers
         ] + route.get_routes(self.options['web_root']))