diff --git a/icalexport.py b/icalexport.py
index 9f360f623d721b65e5e8fd857d60309efa95e73a..23ddb2ef2c285664d26fd21aaa7bbf00081daa70 100644
--- a/icalexport.py
+++ b/icalexport.py
@@ -46,21 +46,13 @@ def calperm(func):
 			return redirect(url_for('index'))
 	return decorator
 
-@app.route('/internal/ical/semester/<semester>')
-@calperm
-def ical_semester(semester):
-	if semester == 'zeitlos':
-		semester_q = ''
-	else:
-		semester_q = semester
-	return export_lectures(query('SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id WHERE courses.semester = ? AND lectures.visible = 1', semester_q),'videoag_semester_'+semester+'.ics')
-
 @app.route('/internal/ical/all')
 @calperm
 def ical_all():
-	return export_lectures(query('SELECT lectures.* FROM lectures WHERE lectures.visible = 1'),'videoag_all.ics')
+	return export_lectures(query('''SELECT lectures.* 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 lectures.visible = 1', course),'videoag_course_'+course+'.ics')
+	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')