diff --git a/src/main/java/org/olat/course/nodes/cal/CourseCalendars.java b/src/main/java/org/olat/course/nodes/cal/CourseCalendars.java
index a9eebdcab6c7a95dda039f3b8bf239f3188888d0..47f14d40d5fd1a71af7c4de7931da4464ed0244d 100644
--- a/src/main/java/org/olat/course/nodes/cal/CourseCalendars.java
+++ b/src/main/java/org/olat/course/nodes/cal/CourseCalendars.java
@@ -145,13 +145,20 @@ public class CourseCalendars {
 			// learning groups
 			List<BusinessGroup> ownerGroups = cgm.getOwnedBusinessGroups(identity);
 			addCalendars(ureq, userCourseEnv, ownerGroups, !readOnly, clpc, calendars);
-			List<BusinessGroup> attendedGroups = cgm.getParticipatingBusinessGroups(identity);
+			//@UIBK always add all group calendars in this course no matter if the identity is a member
+			//      as public entries should be visible anyway
+			//List<BusinessGroup> attendedGroups = cgm.getParticipatingBusinessGroups(identity); //@UIBK
+			List<BusinessGroup> allGroups = cgm.getAllBusinessGroups();
 			for (BusinessGroup ownerGroup : ownerGroups) {
-				if (attendedGroups.contains(ownerGroup)) {
-					attendedGroups.remove(ownerGroup);
+				//if (attendedGroups.contains(ownerGroup)) { //@UIBK
+				//	attendedGroups.remove(ownerGroup);
+				//}
+				if (allGroups.contains(ownerGroup)) {
+					allGroups.remove(ownerGroup);
 				}
 			}
-			addCalendars(ureq, userCourseEnv, attendedGroups, false, clpc, calendars);
+			//addCalendars(ureq, userCourseEnv, attendedGroups, false, clpc, calendars); //@UIBK
+			addCalendars(ureq, userCourseEnv, allGroups, false, clpc, calendars);			
 		}
 		return new CourseCalendars(courseKalendarWrapper, calendars);
 	}