diff --git a/src/main/java/org/olat/commons/calendar/restapi/UserCalendarWebService.java b/src/main/java/org/olat/commons/calendar/restapi/UserCalendarWebService.java
index 5fea001d09a0ab5cf9c8cae4a59558e39f3cc519..b7ee11f77321164c09bb3ed5a146e6076f5c5773 100644
--- a/src/main/java/org/olat/commons/calendar/restapi/UserCalendarWebService.java
+++ b/src/main/java/org/olat/commons/calendar/restapi/UserCalendarWebService.java
@@ -23,10 +23,10 @@ import static org.olat.commons.calendar.restapi.CalendarWSHelper.hasReadAccess;
 import static org.olat.commons.calendar.restapi.CalendarWSHelper.hasWriteAccess;
 import static org.olat.commons.calendar.restapi.CalendarWSHelper.processEvents;
 import static org.olat.restapi.security.RestSecurityHelper.getUserRequest;
+import static org.olat.restapi.security.RestSecurityHelper.isAdmin;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -44,7 +44,6 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 
 import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.basesecurity.IdentityShort;
 import org.olat.collaboration.CollaborationManager;
 import org.olat.collaboration.CollaborationTools;
 import org.olat.commons.calendar.CalendarManager;
@@ -93,9 +92,9 @@ public class UserCalendarWebService {
 	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
 	public Response getCalendars(@PathParam("identityKey") Long identityKey, @Context HttpServletRequest httpRequest) {
 		UserRequest ureq = getUserRequest(httpRequest);
-		if(!ureq.getUserSession().isAuthenticated()) {
+		if(ureq.getIdentity() == null || !ureq.getUserSession().isAuthenticated()) {
 			return Response.serverError().status(Status.UNAUTHORIZED).build();
-		} else if (ureq.getIdentity() == null || !ureq.getIdentity().getKey().equals(identityKey)) {
+		} else if (!ureq.getIdentity().getKey().equals(identityKey)  && !isAdmin(httpRequest)) {
 			return Response.serverError().status(Status.UNAUTHORIZED).build();
 		}
 		
@@ -116,9 +115,9 @@ public class UserCalendarWebService {
 			@PathParam("identityKey") Long identityKey, @Context HttpServletRequest httpRequest) {
 		
 		UserRequest ureq = getUserRequest(httpRequest);
-		if(!ureq.getUserSession().isAuthenticated()) {
+		if(ureq.getIdentity() == null || !ureq.getUserSession().isAuthenticated()) {
 			throw new WebApplicationException(Response.serverError().status(Status.UNAUTHORIZED).build());
-		} else if (ureq.getIdentity() == null || !ureq.getIdentity().getKey().equals(identityKey)) {
+		} else if (!ureq.getIdentity().getKey().equals(identityKey) && !isAdmin(httpRequest)) {
 			throw new WebApplicationException(Response.serverError().status(Status.UNAUTHORIZED).build());
 		}
 		
@@ -142,9 +141,9 @@ public class UserCalendarWebService {
 			@Context HttpServletRequest httpRequest, @Context Request request) {
 		
 		UserRequest ureq = getUserRequest(httpRequest);
-		if(!ureq.getUserSession().isAuthenticated()) {
+		if(ureq.getIdentity() == null || !ureq.getUserSession().isAuthenticated()) {
 			return Response.serverError().status(Status.UNAUTHORIZED).build();
-		} else if (ureq.getIdentity() == null || !ureq.getIdentity().getKey().equals(identityKey)) {
+		} else if (!ureq.getIdentity().getKey().equals(identityKey) && !isAdmin(httpRequest)) {
 			return Response.serverError().status(Status.UNAUTHORIZED).build();
 		}
 		
@@ -195,25 +194,27 @@ public class UserCalendarWebService {
 			UserCourseEnvironment userCourseEnv = new UserCourseEnvironmentImpl(ienv, course.getCourseEnvironment());
 			wrapper = CourseCalendars.getCourseCalendarWrapper(ureq, userCourseEnv, null);
 		} else if("user".equals(type) && calendarModule.isEnablePersonalCalendar()) {
-			List<String> identityName = Collections.singletonList(id);
-			List<IdentityShort> shorts = BaseSecurityManager.getInstance().findShortIdentitiesByName(identityName);
-			if(shorts.size() == 1 && shorts.get(0).getKey().equals(ureq.getIdentity().getKey())) {
+			if(id.equals(ureq.getIdentity().getName())) {
 				wrapper = getPersonalCalendar(ureq.getIdentity());
+			} else if(isAdmin(ureq.getHttpReq())) {
+				Identity identity = BaseSecurityManager.getInstance().findIdentityByName(id);
+				wrapper = getPersonalCalendar(identity);
 			}
 		}
 		return wrapper;
 	}
 	
 	private KalendarRenderWrapper getPersonalCalendar(Identity identity) {
-	// get the personal calendar
-			CalendarManager calendarManager = CoreSpringFactory.getImpl(CalendarManager.class);
-			KalendarRenderWrapper calendarWrapper = calendarManager.getPersonalCalendar(identity);
-			calendarWrapper.setAccess(KalendarRenderWrapper.ACCESS_READ_WRITE);
-			CalendarUserConfiguration config = calendarManager.findCalendarConfigForIdentity(calendarWrapper.getKalendar(), identity);
-			if (config != null) {
-				calendarWrapper.setConfiguration(config);
-			}
-			return calendarWrapper;
+		// get the personal calendar
+		CalendarManager calendarManager = CoreSpringFactory.getImpl(CalendarManager.class);
+		KalendarRenderWrapper calendarWrapper = calendarManager.getPersonalCalendar(identity);
+		calendarWrapper.setAccess(KalendarRenderWrapper.ACCESS_READ_WRITE);
+		calendarWrapper.setPrivateEventsVisible(true);
+		CalendarUserConfiguration config = calendarManager.findCalendarConfigForIdentity(calendarWrapper.getKalendar(), identity);
+		if (config != null) {
+			calendarWrapper.setConfiguration(config);
+		}
+		return calendarWrapper;
 	}
 	
 	private void getCalendars(CalendarVisitor calVisitor, UserRequest ureq) {	
diff --git a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
index 6ce90101bd359cb19163f72c5d8c0d7c0b98a2fb..b94462ac8929843d3e9c6e0b979dc2db5b1748c1 100644
--- a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
@@ -199,7 +199,9 @@ public class CoursesWebService {
 	@Path("{courseId}")
 	public CourseWebService getCourse(@PathParam("courseId") Long courseId) {
 		ICourse course = loadCourse(courseId);
-		if(course == null) return null;
+		if(course == null) {
+			return null;
+		}
 		OLATResource ores = course.getCourseEnvironment().getCourseGroupManager().getCourseResource();
 		return new CourseWebService(ores, course);
 	}