diff --git a/icalexport.py b/icalexport.py
index 23ddb2ef2c285664d26fd21aaa7bbf00081daa70..95dc09763a0b5640fd1171be9f67f3aef4534dfe 100644
--- a/icalexport.py
+++ b/icalexport.py
@@ -7,25 +7,18 @@ def export_lectures(lectures, name):
 	cal = icalendar.Calendar()
 	cal.add('prodid', '-//Video AG//rwth.video//')
 	cal.add('version', '1.0')
-
-	courses = {};
 	for l in lectures:
 		event = icalendar.Event()
-		if not l['course_id'] in courses:
-			courses[l['course_id']] = query('SELECT * from courses WHERE id = ?',l['course_id'])[0]
-		c = courses[l['course_id']]
-
-		event.add('summary', c['short']+' : '+l['title'])
+		event.add('summary', l['course']['short']+' : '+l['title'])
 		event.add('description', l['internal'])
 		event.add('uid', 'lecture_'+str(l['id'])+'@rwth.video')
 		event.add('comment', l['comment'])
 		event.add('dtstamp', datetime.utcnow())
-		event.add('categories', c['short'])
+		event.add('categories', l['course']['short'])
 		event.add('dtstart', l['time'])
 		event.add('location', l['place'])
 		event.add('dtend', l['time'] + timedelta(minutes=l['duration']))
 		cal.add_component(event)
-
 	H = Headers()
 	H.add_header("Content-Disposition", "inline", filename=name)
 	return Response(cal.to_ical(), mimetype="text/calendar", headers=H)
@@ -49,10 +42,13 @@ def calperm(func):
 @app.route('/internal/ical/all')
 @calperm
 def ical_all():
-	return export_lectures(query('''SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id
+	return export_lectures(query('''SELECT lectures.*, "course" AS sep, courses.*
+				FROM lectures JOIN courses ON courses.id = lectures.course_id
 				WHERE NOT norecording AND NOT external ORDER BY time DESC LIMIT 1000'''),'videoag_all.ics')
 
 @app.route('/internal/ical/course/<course>')
 @calperm
 def ical_course(course):
-	return export_lectures(query('SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id WHERE courses.handle = ? AND NOT norecording AND NOT external ORDER BY time DESC', course),'videoag_course_'+course+'.ics')
+	return export_lectures(query('''SELECT lectures.*, "course" AS sep, courses.*
+				FROM lectures JOIN courses ON courses.id = lectures.course_id
+				WHERE courses.handle = ? AND NOT norecording AND NOT external ORDER BY time DESC''', course),'videoag_course_'+course+'.ics')