diff --git a/src/main/java/org/olat/admin/user/UserAdminController.java b/src/main/java/org/olat/admin/user/UserAdminController.java
index a197408fed316515775b48f8f5918c2774a6c298..b75bc99ac9d33bdf4da15fab521fbaf8394d28a9 100644
--- a/src/main/java/org/olat/admin/user/UserAdminController.java
+++ b/src/main/java/org/olat/admin/user/UserAdminController.java
@@ -361,7 +361,7 @@ public class UserAdminController extends BasicController implements Activateable
 		}
 		
 		if(lectureModule.isEnabled()) {
-			lecturesCtrl = new ParticipantLecturesOverviewController(ureq, getWindowControl(), identity, true, true);
+			lecturesCtrl = new ParticipantLecturesOverviewController(ureq, getWindowControl(), identity, true, true, true);
 			listenTo(lecturesCtrl);
 			BreadcrumbedStackedPanel stackPanel = new BreadcrumbedStackedPanel("lectures", getTranslator(), lecturesCtrl);
 			stackPanel.pushController(translate(NLS_VIEW_LECTURES), lecturesCtrl);
diff --git a/src/main/java/org/olat/modules/lecture/LectureService.java b/src/main/java/org/olat/modules/lecture/LectureService.java
index 2053c39050846b309876f3ca5fcdbf6eb0cd72a1..e5a80313b2a4d7ed5c4db84243f3788f85409eb3 100644
--- a/src/main/java/org/olat/modules/lecture/LectureService.java
+++ b/src/main/java/org/olat/modules/lecture/LectureService.java
@@ -281,6 +281,13 @@ public interface LectureService {
 	 * @return
 	 */
 	public List<LectureBlockWithTeachers> getLectureBlocksWithTeachers(RepositoryEntryRef entry, IdentityRef teacher);
+
+	/**
+	 * The list of lecture blocks of a specific teacher
+	 * @param teacher The teacher to search with.
+	 * @return A list of lecture blocks.
+	 */
+	public List<LectureBlock> getLectureBlocks(IdentityRef teacher);
 	
 	/**
 	 * Returns the lecture block for the specified learning resource
diff --git a/src/main/java/org/olat/modules/lecture/_spring/lectureContext.xml b/src/main/java/org/olat/modules/lecture/_spring/lectureContext.xml
index 99b57b928370521d742d54eff1581ef906c47719..f76a74dbe3f3ca499da47904ef9b55d42acdf87d 100644
--- a/src/main/java/org/olat/modules/lecture/_spring/lectureContext.xml
+++ b/src/main/java/org/olat/modules/lecture/_spring/lectureContext.xml
@@ -35,7 +35,7 @@
 		<property name="iconCssClass" value="o_icon o_icon-fw o_icon_lecture" />
 		<property name="actionController">	
 			<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
-				<property name="className" value="org.olat.modules.lecture.ui.ParticipantLecturesOverviewController"/>
+				<property name="className" value="org.olat.modules.lecture.ui.LecturesToolController"/>
 			</bean>
 		</property>
 		<property name="securityCallbackClassName" value="org.olat.core.extensions.security.UserOnlyExtensionSecurityCallback" />
diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
index f6785892b07395754ff0378f9dfbbc541de92028..6c6a7f43478a7a0198234ad3ac1fcc02b7bd1223 100644
--- a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
+++ b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
@@ -107,6 +107,21 @@ public class LectureBlockDAO {
 		return blocks;
 	}
 	
+	public List<LectureBlock> loadByTeacher(IdentityRef identityRef) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select block from lectureblock block")
+		  .append(" inner join block.teacherGroup tGroup")
+		  .append(" inner join tGroup.members membership")
+		  .append(" inner join fetch block.entry entry")
+		  .append(" where membership.identity.key=:teacherKey");
+		
+		List<LectureBlock> blocks = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), LectureBlock.class)
+				.setParameter("teacherKey", identityRef.getKey())
+				.getResultList();
+		return blocks;
+	}
+	
 	/**
 	 * Delete the relation to group, the roll call, the reminders and at the
 	 * end the lecture block itself.
diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureServiceImpl.java b/src/main/java/org/olat/modules/lecture/manager/LectureServiceImpl.java
index 6c507950cb97c6384aaa7c4bb5b8a357ff2ef8b8..9d1393427af286778c1573d377547691df387372 100644
--- a/src/main/java/org/olat/modules/lecture/manager/LectureServiceImpl.java
+++ b/src/main/java/org/olat/modules/lecture/manager/LectureServiceImpl.java
@@ -503,6 +503,11 @@ public class LectureServiceImpl implements LectureService, UserDataDeletable {
 	public List<LectureBlock> getLectureBlocks(RepositoryEntryRef entry) {
 		return lectureBlockDao.loadByEntry(entry);
 	}
+	
+	@Override
+	public List<LectureBlock> getLectureBlocks(IdentityRef teacher) {
+		return lectureBlockDao.loadByTeacher(teacher);
+	}
 
 	@Override
 	public List<LectureBlockWithTeachers> getLectureBlocksWithTeachers(RepositoryEntryRef entry) {
diff --git a/src/main/java/org/olat/modules/lecture/model/LectureBlockRow.java b/src/main/java/org/olat/modules/lecture/model/LectureBlockRow.java
index 27f4e1bd7746e6331787c91d51382e0409b5f79d..ee66fa1dd3ddbc0872ee96a429103c1c54853732 100644
--- a/src/main/java/org/olat/modules/lecture/model/LectureBlockRow.java
+++ b/src/main/java/org/olat/modules/lecture/model/LectureBlockRow.java
@@ -33,14 +33,16 @@ public class LectureBlockRow implements LectureBlockRef {
 	
 	private final String teachers;
 	private final boolean iamTeacher;
+	private final String entryDisplayname;
 	private final LectureBlock lectureBlock;
 	
 	private FormLink toolsLink;
 	
-	public LectureBlockRow(LectureBlock lectureBlock, String teachers, boolean iamTeacher) {
+	public LectureBlockRow(LectureBlock lectureBlock, String entryDisplayname, String teachers, boolean iamTeacher) {
 		this.lectureBlock = lectureBlock;
 		this.teachers = teachers;
 		this.iamTeacher = iamTeacher;
+		this.entryDisplayname = entryDisplayname;
 	}
 	
 	@Override
@@ -51,6 +53,10 @@ public class LectureBlockRow implements LectureBlockRef {
 	public boolean isIamTeacher() {
 		return iamTeacher;
 	}
+	
+	public String getEntryDisplayname() {
+		return entryDisplayname;
+	}
 
 	public LectureBlock getLectureBlock() {
 		return lectureBlock;
diff --git a/src/main/java/org/olat/modules/lecture/ui/LectureListRepositoryController.java b/src/main/java/org/olat/modules/lecture/ui/LectureListRepositoryController.java
index deee95d5e7682c2efd78cd320439d6b78fdf498c..4ccae590e057841f26fca1216a9d6f84884a0cc8 100644
--- a/src/main/java/org/olat/modules/lecture/ui/LectureListRepositoryController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/LectureListRepositoryController.java
@@ -158,7 +158,7 @@ public class LectureListRepositoryController extends FormBasicController {
 				teachers.append(userManager.getUserDisplayName(teacher));
 			}
 
-			LectureBlockRow row = new LectureBlockRow(b, teachers.toString(), false);
+			LectureBlockRow row = new LectureBlockRow(b, entry.getDisplayname(), teachers.toString(), false);
 			rows.add(row);
 			
 			String linkName = "tools-" + counter++;
diff --git a/src/main/java/org/olat/modules/lecture/ui/LecturesToolController.java b/src/main/java/org/olat/modules/lecture/ui/LecturesToolController.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d23e932a726f35e3829876c18e25447066305f4
--- /dev/null
+++ b/src/main/java/org/olat/modules/lecture/ui/LecturesToolController.java
@@ -0,0 +1,110 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.lecture.ui;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.link.Link;
+import org.olat.core.gui.components.link.LinkFactory;
+import org.olat.core.gui.components.segmentedview.SegmentViewComponent;
+import org.olat.core.gui.components.segmentedview.SegmentViewEvent;
+import org.olat.core.gui.components.segmentedview.SegmentViewFactory;
+import org.olat.core.gui.components.stack.BreadcrumbPanel;
+import org.olat.core.gui.components.stack.BreadcrumbPanelAware;
+import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+
+/**
+ * 
+ * Initial date: 13 juin 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class LecturesToolController extends BasicController implements BreadcrumbPanelAware {
+	
+	private final VelocityContainer mainVC;
+	private SegmentViewComponent segmentView;
+	private Link teacherLink, participantLink;
+	
+	private final TeacherToolOverviewController teacherOverviewCtrl;
+	private final ParticipantLecturesOverviewController participantOverviewCtrl;
+	
+	public LecturesToolController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+		
+		mainVC = createVelocityContainer("user_tool");
+		
+		teacherOverviewCtrl = new TeacherToolOverviewController(ureq, getWindowControl());
+		listenTo(teacherOverviewCtrl);
+		boolean withTitle = teacherOverviewCtrl.getRowCount() == 0;
+		participantOverviewCtrl = new ParticipantLecturesOverviewController(ureq, getWindowControl(), withTitle);
+		listenTo(participantOverviewCtrl);
+		
+		if(teacherOverviewCtrl.getRowCount() > 0 && participantOverviewCtrl.getRowCount() > 0) {
+			segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this);
+			teacherLink = LinkFactory.createLink("tool.teacher", mainVC, this);
+			segmentView.addSegment(teacherLink, true);
+			participantLink = LinkFactory.createLink("tool.participant", mainVC, this);
+			segmentView.addSegment(participantLink, false);
+			mainVC.put("segmentCmp", teacherOverviewCtrl.getInitialComponent());
+		} else if(teacherOverviewCtrl.getRowCount() > 0) {
+			mainVC.put("teacherView", teacherOverviewCtrl.getInitialComponent());
+		} else if(participantOverviewCtrl.getRowCount() > 0) {
+			mainVC.put("participantView", participantOverviewCtrl.getInitialComponent());
+		} else {
+			
+		}
+		putInitialPanel(mainVC);
+	}
+
+	@Override
+	public void setBreadcrumbPanel(BreadcrumbPanel stackPanel) {
+		participantOverviewCtrl.setBreadcrumbPanel(stackPanel);
+	}
+
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		if(event instanceof SegmentViewEvent) {
+			SegmentViewEvent sve = (SegmentViewEvent)event;
+			String segmentCName = sve.getComponentName();
+			Component clickedLink = mainVC.getComponent(segmentCName);
+			if (clickedLink == teacherLink) {
+				doOpenTeacherView();
+			} else if (clickedLink == participantLink) {
+				doOpenParticipantView();
+			}
+		}
+	}
+	
+	private void doOpenTeacherView() {
+		mainVC.put("segmentCmp", teacherOverviewCtrl.getInitialComponent());
+	}
+	
+	private void doOpenParticipantView() {
+		mainVC.put("segmentCmp", participantOverviewCtrl.getInitialComponent());
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/lecture/ui/ParticipantLecturesOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/ParticipantLecturesOverviewController.java
index 599090c7d6c0de8b06dc50a83344d9bee7caf5eb..bfe99e553bbf8acd97a63d7c6d37aa1bb7844452 100644
--- a/src/main/java/org/olat/modules/lecture/ui/ParticipantLecturesOverviewController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/ParticipantLecturesOverviewController.java
@@ -69,6 +69,7 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 	private ParticipantLecturesDataModel tableModel;
 	
 	private final boolean withPrint;
+	private final boolean withTitle;
 	private final boolean withSelect;
 	private final Identity assessedIdentity;
 	private ParticipantLectureBlocksController lectureBlocksCtrl;
@@ -82,14 +83,15 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 	@Autowired
 	private RepositoryService repositoryService;
 	
-	public ParticipantLecturesOverviewController(UserRequest ureq, WindowControl wControl) {
-		this(ureq, wControl, ureq.getIdentity(), true, true);
+	public ParticipantLecturesOverviewController(UserRequest ureq, WindowControl wControl, boolean withTitle) {
+		this(ureq, wControl, ureq.getIdentity(), true, true, withTitle);
 	}
 	
 	public ParticipantLecturesOverviewController(UserRequest ureq, WindowControl wControl,
-			Identity assessedIdentity, boolean withPrint, boolean withSelect) {
+			Identity assessedIdentity, boolean withPrint, boolean withSelect, boolean withTitle) {
 		super(ureq, wControl, "participant_overview");
 		this.withPrint = withPrint;
+		this.withTitle = withTitle;
 		this.withSelect = withSelect;
 		this.assessedIdentity = assessedIdentity;
 		initForm(ureq);
@@ -100,6 +102,10 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 	public void setBreadcrumbPanel(BreadcrumbPanel stackPanel) {
 		this.stackPanel = stackPanel;
 	}
+	
+	public int getRowCount() {
+		return tableModel.getRowCount();
+	}
 
 	@Override
 	protected void doDispose() {
@@ -113,8 +119,10 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 			layoutCont.contextPut("winid", "w" + layoutCont.getFormItemComponent().getDispatchID());
 			layoutCont.getFormItemComponent().addListener(this);
 			layoutCont.getFormItemComponent().contextPut("withPrint", Boolean.TRUE);
-			setFormTitle("menu.my.lectures.alt");
-		} else {
+			if(withTitle) {
+				setFormTitle("menu.my.lectures.alt");
+			}
+		} else if(withTitle) {
 			setFormTitle("lectures.print.title", new String[]{
 					StringHelper.escapeHtml(userManager.getUserDisplayName(assessedIdentity))
 			});
@@ -148,6 +156,10 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 		tableModel.setObjects(statistics);
 		tableEl.reset(true, true, true);
 	}
+	
+	public boolean hasRows() {
+		return tableModel.getRowCount() > 0;
+	}
 
 	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
@@ -193,7 +205,7 @@ public class ParticipantLecturesOverviewController extends FormBasicController i
 			@Override
 			public Controller createController(UserRequest lureq, WindowControl lwControl) {
 				lwControl.getWindowBackOffice().getChiefController().addBodyCssClass("o_lectures_print");
-				Controller printCtrl = new ParticipantLecturesOverviewController(lureq, lwControl, assessedIdentity, false, false);
+				Controller printCtrl = new ParticipantLecturesOverviewController(lureq, lwControl, assessedIdentity, false, false, true);
 				listenTo(printCtrl);
 				return printCtrl;
 			}					
diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
index 05d96b655ca4803ab54cc120ec950e0bd8da397a..133eaa87e09d7b9e8f66d06a8d8d38adc6d1408d 100644
--- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
@@ -166,7 +166,7 @@ public class TeacherOverviewController extends BasicController implements Tooled
 					teachers.append(userManager.getUserDisplayName(teacher));
 				}
 				
-				LectureBlockRow row = new LectureBlockRow(block, teachers.toString(), teacherList.contains(getIdentity()));
+				LectureBlockRow row = new LectureBlockRow(block, entry.getDisplayname(), teachers.toString(), teacherList.contains(getIdentity()));
 				if(canStartRollCall(blockWithTeachers)) {
 					startButton.setVisible(true);
 					startButton.setUserObject(block);
diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewDataModel.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewDataModel.java
index cc2b965e3eb7e5ce383fef9c4cdc1551ad5c9ac8..615d270f60d6d929d3e1d66094f2fd730d5982ce 100644
--- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewDataModel.java
+++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewDataModel.java
@@ -65,6 +65,7 @@ public class TeacherOverviewDataModel extends DefaultFlexiTableDataModel<Lecture
 			case date: return row.getLectureBlock().getStartDate();
 			case startTime: return row.getLectureBlock().getStartDate();
 			case endTime: return row.getLectureBlock().getEndDate();
+			case entry: return row.getEntryDisplayname();
 			case lectureBlock: return row.getLectureBlock().getTitle();
 			case teachers: return row.getTeachers();
 			case location: return row.getLectureBlock().getLocation();
@@ -91,6 +92,7 @@ public class TeacherOverviewDataModel extends DefaultFlexiTableDataModel<Lecture
 		date("table.header.date"),
 		startTime("table.header.start.time"),
 		endTime("table.header.end.time"),
+		entry("table.header.entry"),
 		lectureBlock("table.header.lecture.block"),
 		location("table.header.location"),
 		teachers("table.header.teachers"),
diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherToolLecturesTableController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherToolLecturesTableController.java
new file mode 100644
index 0000000000000000000000000000000000000000..3445773d4ee2b3f53f6a9cb0ac557da93ca8df23
--- /dev/null
+++ b/src/main/java/org/olat/modules/lecture/ui/TeacherToolLecturesTableController.java
@@ -0,0 +1,126 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.lecture.ui;
+
+import java.util.List;
+
+import org.olat.NewControllerFactory;
+import org.olat.core.commons.persistence.SortKey;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItem;
+import org.olat.core.gui.components.form.flexible.FormItemContainer;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableSortOptions;
+import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.DateFlexiCellRenderer;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.TimeFlexiCellRenderer;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.modules.lecture.model.LectureBlockRow;
+import org.olat.modules.lecture.ui.TeacherOverviewDataModel.TeachCols;
+import org.olat.modules.lecture.ui.component.LectureBlockStatusCellRenderer;
+
+/**
+ * 
+ * Initial date: 13 juin 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class TeacherToolLecturesTableController extends FormBasicController {
+	
+	private FlexiTableElement tableEl;
+	private TeacherOverviewDataModel tableModel;
+	
+	private final String emptyI18nKey;
+	
+	public TeacherToolLecturesTableController(UserRequest ureq, WindowControl wControl, String emptyI18nKey) {
+		super(ureq, wControl, "teacher_view_table");
+		this.emptyI18nKey = emptyI18nKey;
+		initForm(ureq);
+	}
+	
+	public int getRowCount() {
+		return tableModel.getRowCount();
+	}
+	
+	@Override
+	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.date, new DateFlexiCellRenderer(getLocale())));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.startTime, new TimeFlexiCellRenderer(getLocale())));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.endTime, new TimeFlexiCellRenderer(getLocale())));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.entry, "open.course"));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.lectureBlock));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.location));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TeachCols.status, new LectureBlockStatusCellRenderer(getTranslator())));
+		
+		tableModel = new TeacherOverviewDataModel(columnsModel, getLocale());
+		tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 20, false, getTranslator(), formLayout);
+		
+		FlexiTableSortOptions sortOptions = new FlexiTableSortOptions();
+		sortOptions.setDefaultOrderBy(new SortKey(TeachCols.date.name(), false));
+		tableEl.setSortSettings(sortOptions);
+		tableEl.setCustomizeColumns(false);
+		tableEl.setNumOfRowsEnabled(false);
+		tableEl.setEmtpyTableMessageKey(emptyI18nKey);
+		//TODO absence tableEl.setAndLoadPersistedPreferences(ureq, "lecture-teacher-overview");
+	}
+	
+	protected void loadModel(List<LectureBlockRow> blocks) {
+		tableModel.setObjects(blocks);
+		tableEl.reset(true, true, true);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
+		if(source == tableEl) {
+			if(event instanceof SelectionEvent) {
+				SelectionEvent se = (SelectionEvent)event;
+				String cmd = se.getCommand();
+				LectureBlockRow row = tableModel.getObject(se.getIndex());
+				if("open.course".equals(cmd)) {
+					doOpenCourse(ureq, row);
+				}
+			}
+		}
+		super.formInnerEvent(ureq, source, event);
+	}
+
+	@Override
+	protected void formOK(UserRequest ureq) {
+		//
+	}
+	
+	private void doOpenCourse(UserRequest ureq, LectureBlockRow row) {
+		Long repoKey = row.getLectureBlock().getEntry().getKey();
+		String businessPath = "[RepositoryEntry:" + repoKey + "]";
+		NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
+	}
+}
diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherToolOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherToolOverviewController.java
new file mode 100644
index 0000000000000000000000000000000000000000..191ed5095942820efb8d7eb8214b9699fbba58c1
--- /dev/null
+++ b/src/main/java/org/olat/modules/lecture/ui/TeacherToolOverviewController.java
@@ -0,0 +1,138 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.lecture.ui;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+import org.olat.modules.lecture.LectureBlock;
+import org.olat.modules.lecture.LectureRollCallStatus;
+import org.olat.modules.lecture.LectureService;
+import org.olat.modules.lecture.model.LectureBlockRow;
+import org.olat.repository.RepositoryEntry;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 13 juin 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class TeacherToolOverviewController extends BasicController {
+	
+	private final VelocityContainer mainVC;
+
+	private TeacherToolLecturesTableController currentLecturesBlockCtrl;
+	private TeacherToolLecturesTableController pendingLecturesBlockCtrl;
+	private TeacherToolLecturesTableController nextLecturesBlockCtrl;
+	private TeacherToolLecturesTableController closedLecturesBlockCtrl;
+
+	@Autowired
+	private LectureService lectureService;
+	
+	public TeacherToolOverviewController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+
+		mainVC = createVelocityContainer("teacher_view");
+
+		currentLecturesBlockCtrl = new TeacherToolLecturesTableController(ureq, getWindowControl(), "empty.table.current.lectures.blocks");
+		listenTo(currentLecturesBlockCtrl);
+		mainVC.put("currentLectures", currentLecturesBlockCtrl.getInitialComponent());
+		pendingLecturesBlockCtrl = new TeacherToolLecturesTableController(ureq, getWindowControl(), "empty.table.lectures.blocks");
+		listenTo(pendingLecturesBlockCtrl);
+		mainVC.put("pendingLectures", pendingLecturesBlockCtrl.getInitialComponent());
+		nextLecturesBlockCtrl = new TeacherToolLecturesTableController(ureq, getWindowControl(), "empty.table.lectures.blocks");
+		listenTo(nextLecturesBlockCtrl);
+		mainVC.put("nextLectures", nextLecturesBlockCtrl.getInitialComponent());
+		closedLecturesBlockCtrl = new TeacherToolLecturesTableController(ureq, getWindowControl(), "empty.table.lectures.blocks");
+		listenTo(closedLecturesBlockCtrl);
+		mainVC.put("closedLectures", closedLecturesBlockCtrl.getInitialComponent());
+
+		loadModel();
+		putInitialPanel(mainVC);
+	}
+	
+	public int getRowCount() {
+		return currentLecturesBlockCtrl.getRowCount() + pendingLecturesBlockCtrl.getRowCount()
+			+ nextLecturesBlockCtrl.getRowCount() + closedLecturesBlockCtrl.getRowCount();
+	}
+
+	private void loadModel() {
+		List<LectureBlock> blocksWithTeachers = lectureService.getLectureBlocks(getIdentity());
+
+		//reset
+		List<LectureBlockRow> currentBlocks = new ArrayList<>();
+		List<LectureBlockRow> pendingBlocks = new ArrayList<>();
+		List<LectureBlockRow> nextBlocks = new ArrayList<>();
+		List<LectureBlockRow> closedBlocks = new ArrayList<>();
+
+		// only show the start button if 
+		Date now = new Date();
+		for(LectureBlock block:blocksWithTeachers) {
+			RepositoryEntry entry = block.getEntry();
+			LectureBlockRow row = new LectureBlockRow(block, entry.getDisplayname(), "", true);
+			if(canStartRollCall(block)) {
+				currentBlocks.add(row);
+			} else if(block.getRollCallStatus() == LectureRollCallStatus.closed || block.getRollCallStatus() == LectureRollCallStatus.autoclosed) {
+				closedBlocks.add(row);
+			} else if(block.getStartDate() != null && block.getStartDate().after(now)) {
+				nextBlocks.add(row);
+			} else {
+				pendingBlocks.add(row);
+			}
+		}
+
+		currentLecturesBlockCtrl.loadModel(currentBlocks);
+		mainVC.contextPut("currentBlockSize", currentBlocks.size());
+		pendingLecturesBlockCtrl.loadModel(pendingBlocks);
+		mainVC.contextPut("pendingBlockSize", pendingBlocks.size());
+		nextLecturesBlockCtrl.loadModel(nextBlocks);
+		mainVC.contextPut("nextBlockSize", nextBlocks.size());
+		closedLecturesBlockCtrl.loadModel(closedBlocks);
+		mainVC.contextPut("closedBlockSize", closedBlocks.size());
+	}
+	
+	private boolean canStartRollCall(LectureBlock lectureBlock) {
+		Date start = lectureBlock.getStartDate();
+		Date end = lectureBlock.getEndDate();
+		Date now = new Date();
+		if(start.compareTo(now) <= 0 && end.compareTo(now) >= 0) {
+			return true;
+		}
+		return false;
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
+}
diff --git a/src/main/java/org/olat/modules/lecture/ui/_content/participant_overview.html b/src/main/java/org/olat/modules/lecture/ui/_content/participant_overview.html
index d2b5eb566fdde3bcd4af8ba33c087d26629b7a18..943411312d900190e7237b89b245ed67546b3331 100644
--- a/src/main/java/org/olat/modules/lecture/ui/_content/participant_overview.html
+++ b/src/main/java/org/olat/modules/lecture/ui/_content/participant_overview.html
@@ -1,5 +1,7 @@
 <fieldset>
+#if($r.isNotEmpty($off_title))
 	<legend><i class="o_icon o_icon-fw o_icon_lecture"> </i> $off_title</legend>
+#end
 #if($r.isNotNull($withPrint) && $withPrint)
 	<div class="o_button_group o_button_group_right">
 		<script type="text/javascript">
diff --git a/src/main/java/org/olat/modules/lecture/ui/_content/user_tool.html b/src/main/java/org/olat/modules/lecture/ui/_content/user_tool.html
new file mode 100644
index 0000000000000000000000000000000000000000..6d7afacca40a4245672207edcf44e56a226cc003
--- /dev/null
+++ b/src/main/java/org/olat/modules/lecture/ui/_content/user_tool.html
@@ -0,0 +1,14 @@
+#if($r.available("segments"))
+<div class="o_lectures_overviewview clearfix">
+	$r.render("segments")
+	#if($r.available("segmentCmp"))
+	<div class="o_segments_content">$r.render("segmentCmp")</div>
+	#end
+</div>
+#elseif($r.available("teacherView"))
+<div class="o_lectures_teacher_view">$r.render("teacherView")</div>
+#elseif($r.available("participantView"))
+<div class="o_lectures_participant_view">$r.render("participantView")</div>
+#else
+<div class=o_info>$r.translate("info.no.lectures")</div>
+#end
diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties
index efc4ac3d011f49a1c6596e9360ab475cc465088c..aa5cd9a9ffaf8799398734be4f12756b25d95b07 100644
--- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties
@@ -46,6 +46,7 @@ error.integer.positive=Der Eingabe muss ein positives Zahl sein.
 error.reason.mandatory=Begr\u00FCndung ist erforderlich
 first.admission=Erstzulassung
 form.managedflags.intro=Diese LektionBlock wurde von einem externen Werkzeug erstellt. Einige Einstellungen und Module k\u00F6nnen daher in OpenOLAT nicht ver\u00E4ndert und benutzt werden. Folgende Elemente sind in OpenOLAT gesperrt\: {0}
+info.no.lectures=Sie folgen zur Zeit kein Lektionen
 lecture.absence.default.authorized=Absenzen per default entschuldigt
 lecture.admin.course.override.title=Konfiguration - Auf Kursebene \u00FCbersteuerbar
 lecture.admin.enabled=Lektionen- und Absenzenmanagement einschalten
@@ -167,4 +168,6 @@ table.header.start.time=Von
 table.header.status=Status
 table.header.teachers=Dozenten
 table.header.username=Benutzername
+tool.teacher=Als Dozent
+tool.participant=Als Teilnehmer
 tools=Aktion
diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties
index 4042681adc788839fab7e60f78aa021791250e80..92bc3fa279e03b89bfff7b9633d3e46c992a8d59 100644
--- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties
@@ -46,6 +46,7 @@ error.integer.positive=The number must be positive.
 error.reason.mandatory=Reason is mandatory
 first.admission=First admission
 form.managedflags.intro=This lecture block has been created by an external tool. Therefore some settings and modules can not be modified and used within OpenOLAT. The following elements are blocked within OpenOLAT\: {0}
+info.no.lectures=You don't follow any lectures for the moment.
 lecture.absence.default.authorized=Absence per default authorized
 lecture.admin.course.override.title=Configuration - can be override at course level
 lecture.admin.enabled=Enable lectures and absence management
@@ -166,4 +167,6 @@ table.header.start.time=From
 table.header.status=Status
 table.header.teachers=Coaches
 table.header.username=Username
+tool.teacher=As teacher
+tool.participant=As participant
 tools=Action