diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/TopicsRunCoachController.java b/src/main/java/org/olat/course/nodes/appointments/ui/TopicsRunCoachController.java
index fcd3ea69feda9dae8a3a79428eedc0e7dd276684..395db9db152cb428cc99e7f016151f51860371ca 100644
--- a/src/main/java/org/olat/course/nodes/appointments/ui/TopicsRunCoachController.java
+++ b/src/main/java/org/olat/course/nodes/appointments/ui/TopicsRunCoachController.java
@@ -205,7 +205,11 @@ public class TopicsRunCoachController extends BasicController {
 		long confirmableAppointmentsCount = appointments.stream()
 				.filter(a -> isConfirmable(a, appointmentKeyToParticipations))
 				.count();
-		wrapMessage(wrapper, appointments.size(), numParticipants, confirmableAppointmentsCount);
+		long numAppointmentsWithParticipations = participations.stream()
+				.map(p -> p.getAppointment().getKey())
+				.distinct()
+				.count();
+		wrapMessage(wrapper, appointments.size(), numParticipants, numAppointmentsWithParticipations, confirmableAppointmentsCount);
 		
 		Date now = new Date();
 		Optional<Appointment> nextAppointment;
@@ -252,24 +256,30 @@ public class TopicsRunCoachController extends BasicController {
 				: false;
 	}
 	
-	private void wrapMessage(TopicWrapper wrapper, int totalAppointments, long numParticipants, long confirmableAppointmentsCount) {
+	private void wrapMessage(TopicWrapper wrapper, int totalAppointments, long numParticipants,
+			long numAppointmentsWithParticipations, long confirmableAppointmentsCount) {
 		List<String> messages = new ArrayList<>(2);
 		if (totalAppointments == 0) {
 			messages.add(translate("no.appointments"));
 		} else {
-			if (numParticipants == 1 && totalAppointments == 1) {
+			if (totalAppointments == 1) {
+				messages.add(translate("appointments.total.one"));
+			} else {
+				messages.add(translate("appointments.total", new String[] { String.valueOf(totalAppointments) }));
+			}
+			if (numParticipants == 1 && numAppointmentsWithParticipations == 1) {
 				messages.add(translate("participations.selected.one.one"));
-			} else if (numParticipants == 1 && totalAppointments > 1) {
-				messages.add(translate("participations.selected.one.many", new String[] { String.valueOf(totalAppointments) }));
-			} else if (numParticipants > 1 && totalAppointments == 1) {
+			} else if (numParticipants == 1 && numAppointmentsWithParticipations > 1) {
+				messages.add(translate("participations.selected.one.many", new String[] { String.valueOf(numAppointmentsWithParticipations) }));
+			} else if (numParticipants > 1 && numAppointmentsWithParticipations == 1) {
 				messages.add(translate("participations.selected.many.one", new String[] { String.valueOf(numParticipants) }));
-			} else if (numParticipants > 1 && totalAppointments > 1) {
-				messages.add(translate("participations.selected.many.many", new String[] { String.valueOf(numParticipants), String.valueOf(numParticipants) }));
+			} else if (numParticipants > 1 && numAppointmentsWithParticipations > 1) {
+				messages.add(translate("participations.selected.many.many", new String[] { String.valueOf(numParticipants), String.valueOf(numAppointmentsWithParticipations) }));
 			} else {
 				messages.add(translate("participations.selected.many.many", new String[] { String.valueOf(0), String.valueOf(0) }));
 			}
 			
-			if (Type.finding != wrapper.getTopic().getType()) {
+			if (!wrapper.getTopic().isAutoConfirmation() && numAppointmentsWithParticipations > 0) {
 				if (confirmableAppointmentsCount == 1) {
 					messages.add(translate("appointments.confirmable.one"));
 				} else if (confirmableAppointmentsCount > 1) {
diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_de.properties
index 01ae64d6b927089fa20e660a295281498313256c..137a1adcbfdf8f18c693d2f4279f8ae1f6c146aa 100644
--- a/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_de.properties
@@ -42,6 +42,8 @@ appointments.select.multi.message=W\u00e4hlen Sie bitte die gew\u00fcnschten Ter
 appointments.select.one.message=W\u00e4hlen Sie bitte den gew\u00fcnschten Termin aus.
 appointments.selected=Sie haben {0} Termine ausgew\u00e4hlt.
 appointments.selected.not.confirmed=Es wurde noch kein Termin best\u00e4tigt.
+appointments.total=Es sind insgesamt {0} Termine vorhanden.
+appointments.total.one=Es ist insgesamt ein Termin vorhanden.
 condition.accessibility.title=Zugang
 config.confirmation=Terminbest\u00e4tigung durch Coach
 config.multi.participation=Auswahl mehrerer Termine
diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_en.properties
index 5e062eeb58ab62e9a64f2518a9fba79df699b2f3..3e19c107b389ecfbd4d6c3eb70237f35588131f3 100644
--- a/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/appointments/ui/_i18n/LocalStrings_en.properties
@@ -42,6 +42,8 @@ appointments.select.multi.message=Please select the desired appointments.
 appointments.select.one.message=Please select the desired appointment.
 appointments.selected=You have {0} appointments selected.
 appointments.selected.not.confirmed=No appointment has been confirmed yet.
+appointments.total=There are {0} appointments available.
+appointments.total.one=There is one appointment available.
 condition.accessibility.title=Access
 config.confirmation=Confirmation by coach
 config.multi.participation=Selection of several appointments