diff --git a/src/main/java/org/olat/commons/calendar/ICalServlet.java b/src/main/java/org/olat/commons/calendar/ICalServlet.java
index bde343b33759982fd8ba9831737a775418e879bb..8bd448aa93306dc0d2cd920a9b5a29e14ea5c9d3 100644
--- a/src/main/java/org/olat/commons/calendar/ICalServlet.java
+++ b/src/main/java/org/olat/commons/calendar/ICalServlet.java
@@ -141,7 +141,14 @@ public class ICalServlet extends HttpServlet {
 	private void getIcalDocument(String requestUrl, HttpServletResponse response)
 	throws ValidationException, IOException {
 		// get the individual path tokens
-		String pathInfo = requestUrl.replaceAll(".ics", "");
+		String pathInfo;
+		int icsIndex = requestUrl.indexOf(".ics");
+		if(icsIndex > 0) {
+			pathInfo = requestUrl.substring(0, icsIndex);
+		} else {
+			pathInfo = requestUrl;
+		}
+		
 		String[] pathInfoTokens = pathInfo.split("/");
 		if(pathInfoTokens.length < 4) {
 			response.sendError(HttpServletResponse.SC_BAD_REQUEST, requestUrl);