diff --git a/schedule.py b/schedule.py
new file mode 100755
index 0000000000000000000000000000000000000000..93f511f082b075aee34bb25ea4c9296557b49a84
--- /dev/null
+++ b/schedule.py
@@ -0,0 +1,57 @@
+from server import *
+
+@app.route('/schedule')
+@register_navbar('Drehplan', 'calendar')
+@mod_required
+def schedule():
+	if 'kw' not in request.args:
+		kw=0
+	else:
+		kw=int(request.args['kw'])
+	start = date.today() - timedelta(days=date.today().weekday() -7*kw)
+	days = [{'date': start, 'lectures': [], 'atonce':0, 'index': 0 }]
+	earlieststart=time(23,59)
+	latestend=time(0,0)
+	for i in range(1,7):
+		days.append({'date': days[i-1]['date'] + timedelta(days=1), 'atonce':0, 'index': i, 'lectures':[] })
+	for i in days:
+		# date and times are burning in sqlite
+		s = datetime.combine(i['date'],time())
+		e = datetime.combine(i['date'],time(23,59))
+		i['lectures'] = query ('''
+					SELECT lectures.*,courses.short
+					FROM lectures 
+					JOIN courses ON (lectures.course_id = courses.id) 
+					WHERE (time < ?) AND (time > ?) 
+					ORDER BY time ASC'''
+				,e,s);
+		# sweepline to find out how many lectures overlap
+		maxcol=0;
+		curcol=0;
+		freecol=[];
+		for l in i['lectures']:
+			# who the hell inserts lectures with zero length?!?!?
+			l['time_end'] = l['time']+timedelta(minutes=max(l['duration'],1))
+		for l in sorted([(l['time'],True,l) for l in i['lectures']] + [(l['time_end'],False,l) for l in i['lectures']],key=lambda t:(t[0],t[1])):
+			if l[1]:
+				curcol += 1
+				if curcol > maxcol:
+					maxcol = curcol
+				if len(freecol) == 0:
+					freecol.append(maxcol)
+				l[2]['schedule_col'] = freecol.pop()
+				if earlieststart > l[0].time():
+					earlieststart = l[0].time()
+			else:
+				curcol -= 1
+				freecol.append(l[2]['schedule_col'])
+				if latestend < l[0].time():
+					latestend = l[0].time()
+		i['maxcol'] = max(maxcol,1)
+	times=[]
+	s = min(earlieststart,time(8,0))
+	e = max(latestend,time(19,0))
+	for i in range(s.hour*4,min(int((60*e.hour/15)/4)*4+5,24*4)):
+		t = i*15
+		times.append(time(int(t/60),t%60))
+	return render_template('schedule.html',days=days,times=times,kw=kw)
diff --git a/server.py b/server.py
index 2f64357151377d20883f9bfb4cd23813113e9c30..dd4b172476fd880e0c531bc9c72581b57ecef68b 100755
--- a/server.py
+++ b/server.py
@@ -111,6 +111,10 @@ def human_semester(s, long=False):
 def human_date(d):
 	return d.strftime('%d.%m.%Y')
 
+@app.template_filter(name='time')
+def human_date(d):
+	return d.strftime('%H:%M')
+
 @app.template_filter()
 def rfc3339(d):
 	return d.strftime('%Y-%m-%dT%H:%M:%S+02:00')
@@ -122,16 +126,25 @@ def get_announcements(minlevel=0):
 @app.route('/')
 @register_navbar('Home', icon='home')
 def index():
-	return render_template('index.html', latestvideos=query('''
-				SELECT lectures.*, max(videos.time_updated) AS lastvidtime, courses.short, courses.downloadable, courses.title AS coursetitle
-				FROM lectures
-				LEFT JOIN videos ON (videos.lecture_id = lectures.id)
-				LEFT JOIN courses on (courses.id = lectures.course_id)
-				WHERE (? OR (courses.visible AND courses.listed AND lectures.visible AND videos.visible))
-				GROUP BY videos.lecture_id
-				ORDER BY lastvidtime DESC
-				LIMIT 6
-			''', ismod()))
+	upcomming = query ('''
+		SELECT lectures.*,courses.short, courses.title AS course_title
+		FROM lectures
+		JOIN courses ON (lectures.course_id = courses.id)
+		WHERE (time > ?)
+		ORDER BY time ASC LIMIT 7''',datetime.today())
+	for i in upcomming:
+		i['date'] = i['time'].date()
+		i['time'] = i['time'].time()
+	latestvideos=query('''
+		SELECT lectures.*, max(videos.time_updated) AS lastvidtime, courses.short, courses.downloadable, courses.title AS coursetitle
+		FROM lectures
+		LEFT JOIN videos ON (videos.lecture_id = lectures.id)
+		LEFT JOIN courses on (courses.id = lectures.course_id)
+		WHERE (? OR (courses.visible AND courses.listed AND lectures.visible AND videos.visible))
+		GROUP BY videos.lecture_id
+		ORDER BY lastvidtime DESC
+		LIMIT 6	''',ismod())
+	return render_template('index.html', latestvideos=latestvideos, upcomming=upcomming)
 
 @app.route('/course')
 @register_navbar('Videos', icon='film')
@@ -330,62 +343,6 @@ def auth(): # For use with nginx auth_request
 		return Response("Login required", 401, {'WWW-Authenticate': 'Basic realm="Login Required"'})
 	return "Not allowed", 403
 
-@app.route('/schedule')
-@register_navbar('Drehplan', 'calendar')
-@mod_required
-def schedule():
-	if 'kw' not in request.args:
-		kw=0
-	else:
-		kw=int(request.args['kw'])
-	start = date.today() - timedelta(days=date.today().weekday() -7*kw)
-	days = [{'date': start, 'lectures': [], 'atonce':0, 'index': 0 }]
-	earlieststart=time(23,59)
-	latestend=time(0,0)
-	for i in range(1,7):
-		days.append({'date': days[i-1]['date'] + timedelta(days=1), 'atonce':0, 'index': i, 'lectures':[] })
-	for i in days:
-		# date and times are burning in sqlite
-		s = datetime.combine(i['date'],time())
-		e = datetime.combine(i['date'],time(23,59))
-		i['lectures'] = query ('''
-					SELECT lectures.*,courses.short
-					FROM lectures 
-					JOIN courses ON (lectures.course_id = courses.id) 
-					WHERE (time < ?) AND (time > ?) 
-					ORDER BY time ASC'''
-				,e,s);
-		# sweepline to find out how many lectures overlap
-		maxcol=0;
-		curcol=0;
-		freecol=[];
-		for l in i['lectures']:
-			# who the hell inserts lectures with zero length?!?!?
-			l['time_end'] = l['time']+timedelta(minutes=max(l['duration'],1))
-		for l in sorted([(l['time'],True,l) for l in i['lectures']] + [(l['time_end'],False,l) for l in i['lectures']],key=lambda t:(t[0],t[1])):
-			if l[1]:
-				curcol += 1
-				if curcol > maxcol:
-					maxcol = curcol
-				if len(freecol) == 0:
-					freecol.append(maxcol)
-				l[2]['schedule_col'] = freecol.pop()
-				if earlieststart > l[0].time():
-					earlieststart = l[0].time()
-			else:
-				curcol -= 1
-				freecol.append(l[2]['schedule_col'])
-				if latestend < l[0].time():
-					latestend = l[0].time()
-		i['maxcol'] = max(maxcol,1)
-	times=[]
-	s = min(earlieststart,time(8,0))
-	e = max(latestend,time(19,0))
-	for i in range(s.hour*4,min(int((60*e.hour/15)/4)*4+5,24*4)):
-		t = i*15
-		times.append(time(int(t/60),t%60))
-	return render_template('schedule.html',days=days,times=times,kw=kw)
-
 @app.route('/stats')
 @register_navbar('Statistiken', 'stats')
 @mod_required
@@ -429,3 +386,4 @@ def new_announcement():
 
 import feeds
 import importer
+import schedule
diff --git a/templates/course.html b/templates/course.html
index 6417296948170e7746cfc6c11a85b3f36188aac4..1bcfc6e4e1fe97b4bbecc0016d7be77480269f7b 100644
--- a/templates/course.html
+++ b/templates/course.html
@@ -1,32 +1,39 @@
 {% from 'macros.html' import lecture_list_item %}
 {% from 'macros.html' import valueeditor %}
+{% from 'macros.html' import valuedeletebtn %}
 {% from 'macros.html' import valuecheckbox %}
 {% from 'macros.html' import preview %}
 {% extends "base.html" %}
 {% block content %}
 <div class="panel panel-default">
 	<div class="panel-heading">
-		<h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}</h1>
+		<h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}<span class="pull-right">{{ valuedeletebtn(['courses',course.id,'deleted']) }}</span></h1>
 	</div>
 	<div class="row panel-body">
-		<div class="col-xs-12">
-			<table class="table-condensed">
+		<div class="col-xs-12" class="table-condensed">
+			<table>
 				<tbody>
 					<tr><td>Semester:</td><td>{{ valueeditor(['courses',course.id,'semester'], course.semester) }}</td></tr>
 					<tr><td>Veranstalter:</td><td>{{ valueeditor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
 					<tr><td>Bemerkungen:</td><td>{{ valueeditor(['courses',course.id,'description'], course.description) }}</td></tr>
-					{% if ismod() %}
+				</tbody>
+			</table>
+		</div>
+		{% if ismod() %}
+		<div class="col-xs-12" style="margin-top: 20px">
+			<table class="table-condensed">
+				<tbody>
 					<tr><td>Sichtbar:</td><td>{{ valuecheckbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
 					<tr><td>Gelistet:</td><td>{{ valuecheckbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
+					<tr><td>Downloadable:</td><td>{{ valuecheckbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
 					<tr><td>Short:</td><td>{{ valueeditor(['courses',course.id,'short'], course.short) }}</td></tr>
 					<tr><td>Handle:</td><td>{{ valueeditor(['courses',course.id,'handle'], course.handle) }}</td></tr>
-					<tr><td>Downloadable:</td><td>{{ valuecheckbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
 					<tr><td>Thema:</td><td>{{ valueeditor(['courses',course.id,'subject'], course.subject) }}</td></tr>
 					<tr><td>Zuständig:</td><td>{{ valueeditor(['courses',course.id,'responsible'], course.responsible) }}</td></tr>
-					{% endif %}
 				</tbody>
 			</table>
 		</div>
+		{% endif %}
 	</div>
 </div>
 <div class="panel panel-default">
diff --git a/templates/courses.html b/templates/courses.html
index 980bdfd1cab2bd20e419e1ae22cf337919a97bc6..a6243d7c422e5a87605f3a70f2a119105240dd6b 100644
--- a/templates/courses.html
+++ b/templates/courses.html
@@ -2,7 +2,7 @@
 {% extends "base.html" %}
 {% block content %}
 <div clss="row">
-	<div class="row-xs-12">
+	<div class="col-xs-12" style="padding: 0px;">
 		<ul class="list-inline pull-right">
 			<li>
 				 <a class="fa fa-rss-square btn btn-default" aria-hidden="true" href="{{url_for('courses_feed')}}"></a>
@@ -12,7 +12,7 @@
 				<a class="btn btn-default" href="{{ url_for('new_course', ref=request.url) }}">Neue Veranstaltung</a>
 			</li>
 			{% endif %}
-			<li class="dropdown">
+			<li class="dropdown" style="padding-right: 0px">
 				<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Gruppierung
 					<span class="caret"></span>
 				</button>
diff --git a/templates/index.html b/templates/index.html
index 2a341700cf8e3d233df808d136f78d56a5c799a0..654bd9330e52ad3006c6b9c6c6a5305b8ddd9f23 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -30,6 +30,26 @@
 		</div>
 	</div>
 	<div class="col-md-6">
+		<div class="panel panel-default">
+			<div class="panel-heading">
+				<h1 class="panel-title">Nächste Aufnahmen</h1">
+			</div>
+			<ul class="list-group">
+				{% for g in upcomming|groupby('date') %}
+					<li class="list-group-item">
+						<ul class="list-group" style="margin: 0px;">
+							<strong>{{ g.grouper|date }}</strong>
+							{% for i in g.list %}
+							<li class="list-group-item list-group-item-condensed">
+								{{i.time|time}} {{i.place}} <a href="{{url_for('course', id=i.course_id)}}">{{i.course_title}}</a>: <a href="{{url_for('course', id=i.course_id)}}#lecture-{{i.id}}">{{i.title}}</a>
+
+							</li>
+							{% endfor %}
+						</ul>
+					</li>
+				{% endfor %}
+			</ul>
+		</div>
 		<div class="panel panel-default">
 			<div class="panel-heading">
 				<h1 class="panel-title">Neueste Videos <a class="fa fa-rss-square pull-right" aria-hidden="true" href="{{url_for('feed')}}"></a></h1">
diff --git a/templates/search.html b/templates/search.html
index fd35fd76959c249b158ba3cb9fea49cc1a232a6d..d426b2bbfc28f7d9d8b9187fabf32c583ad7fb2f 100644
--- a/templates/search.html
+++ b/templates/search.html
@@ -7,7 +7,7 @@
 		<h1 class="panel-title">Veranstaltungen</h1>
 	</div>
 		{% if courses == [] %}
-		<div class="panel-body">Nichts gefunden!</div>
+			<div class="panel-body">Nichts gefunden!</div>
 		{% else %}
 			<ul class="list-group courselist">
 				{% for course in courses %}
@@ -20,16 +20,14 @@
 	<div class="panel-heading">
 		<h1 class="panel-title">Videos</h1>
 	</div>
-	<div class="panel-body">
-		{% if lectures == [] %}
-			Nichts gefunden!
-		{% else %}
-			<ul class="list-group videopreview">
-			{% for lecture in lectures %}
-				{{ preview(lecture) }}
-			{% endfor %}
-			</ul>
-		{% endif %}
-	</div>
+	{% if lectures == [] %}
+		<div class="panel-body">Nichts gefunden!</div>
+	{% else %}
+		<ul class="list-group videopreview">
+		{% for lecture in lectures %}
+			{{ preview(lecture) }}
+		{% endfor %}
+		</ul>
+	{% endif %}
 </div>
 {% endblock %}