diff --git a/lib/classes/searchtypes/NewsRangesSearch.php b/lib/classes/searchtypes/NewsRangesSearch.php
index 6cb7a2ff9f428cd319bf0a43bf00610b3e4d238b..a009c64b119dac922625f218ba05d5a364bdaf5d 100644
--- a/lib/classes/searchtypes/NewsRangesSearch.php
+++ b/lib/classes/searchtypes/NewsRangesSearch.php
@@ -42,7 +42,7 @@ class NewsRangesSearch extends SearchType
                                    LEFT JOIN `semester_data` USING (`semester_id`)
                                    WHERE s.`name` LIKE :input
                                    GROUP BY s.`Seminar_id`
-                                   ORDER BY s.`start_time` DESC
+                                   ORDER BY `semester_data`.`beginn` DESC
                                ) AS course_select";
         } elseif ($GLOBALS['perm']->have_perm('admin')) {
             $sem_inst = Config::get()->ALLOW_ADMIN_RELATED_INST ? 'si' : 's';
@@ -58,7 +58,7 @@ class NewsRangesSearch extends SearchType
                                    WHERE {$sem_inst}.`institut_id` IN (:institutes)
                                      AND s.`name` LIKE :input
                                    GROUP BY s.`Seminar_id`
-                                   ORDER BY s.`start_time` DESC
+                                   ORDER BY `semester_data`.`beginn` DESC
                                ) AS course_select";
 
             $parameters[':institutes'] = $this->getAdminInstitutes($user);
@@ -68,14 +68,14 @@ class NewsRangesSearch extends SearchType
                                    SELECT CONCAT(s.`Seminar_id`, '__seminar') AS `range_id`,
                                           TRIM(CONCAT({$number_sql} s.`name`, {$semester_sql})) AS `name`
                                    FROM `seminare` AS s
-                                   JOIN `seminar_user` AS su USING (`Seminar_id`) 
+                                   JOIN `seminar_user` AS su USING (`Seminar_id`)
                                    LEFT JOIN `semester_courses` AS sc ON s.`Seminar_id` = sc.`course_id`
                                    LEFT JOIN `semester_data` USING (`semester_id`)
                                    WHERE s.`name` LIKE :input
                                      AND su.`user_id` = :user_id
                                      AND su.`status` IN ('tutor', 'dozent')
                                    GROUP BY s.`Seminar_id`
-                                   ORDER BY s.`start_time` DESC
+                                   ORDER BY `semester_data`.`start_time` DESC
                                ) AS course_select ";
             $parameters[':user_id'] = $user->id;
         }
@@ -209,8 +209,8 @@ class NewsRangesSearch extends SearchType
     {
         $query = "SELECT DISTINCT i.`Institut_id`
                   FROM `user_inst` AS ui
-                  JOIN `Institute` AS i 
-                    ON ui.`Institut_id` IN (i.`Institut_id`, i.`fakultaets_id`)   
+                  JOIN `Institute` AS i
+                    ON ui.`Institut_id` IN (i.`Institut_id`, i.`fakultaets_id`)
                   WHERE ui.`user_id` = :user_id
                     AND ui.`inst_perms` = 'admin'";
         return DBManager::get()->fetchFirst($query, [
diff --git a/lib/classes/searchtypes/SeminarSearch.php b/lib/classes/searchtypes/SeminarSearch.php
index 0cefedf0f477c869dc1d736c0f7d8343c5c4a9c6..a8ac22da1099e7e918623d960c5a0e0cfee15829 100644
--- a/lib/classes/searchtypes/SeminarSearch.php
+++ b/lib/classes/searchtypes/SeminarSearch.php
@@ -74,9 +74,9 @@ class SeminarSearch extends SearchType
                    WHERE s.Seminar_id IN (?)
                    GROUP BY s.Seminar_id";
          if (Config::get()->IMPORTANT_SEMNUMBER) {
-             $query .= " ORDER BY IFNULL(MAX(sem1.beginn), s.start_time) DESC, s.VeranstaltungsNummer, s.Name";
+             $query .= " ORDER BY sem1.`beginn` DESC, s.`VeranstaltungsNummer`, s.`Name`";
          } else {
-             $query .= " ORDER BY IFNULL(MAX(sem1.beginn), s.start_time) DESC, s.Name";
+             $query .= " ORDER BY sem1.`beginn` DESC, s.`Name`";
          }
          $statement = DBManager::get()->prepare($query);
          $statement->execute([
diff --git a/lib/models/Lvgruppe.php b/lib/models/Lvgruppe.php
index 19fc373b0f4c57d0a38ff7a7f1b1b30f1b19683b..5e9eb7bef4780404d94bbd6d720c5cd08cdcdcbd 100644
--- a/lib/models/Lvgruppe.php
+++ b/lib/models/Lvgruppe.php
@@ -432,25 +432,19 @@ class Lvgruppe extends ModuleManagementModelTreeItem
                 . 'LEFT JOIN mvv_lvgruppe_seminar mls USING(seminar_id) '
                 . 'LEFT JOIN semester_courses ON (semester_courses.course_id = sem.Seminar_id) '
                 . 'WHERE mls.lvgruppe_id = :id '
-                . 'AND ((sem.start_time <= :semester_beginn '
-                . 'AND semester_courses.semester_id = :semester_id) '
-                . 'OR (sem.start_time BETWEEN :semester_beginn AND :semester_ende) '
-                . 'OR (sem.start_time <= :semester_beginn AND semester_courses.semester_id IS NULL)) ';
+                . 'AND (semester_courses.semester_id = :semester_id '
+                . 'OR semester_courses.semester_id IS NULL) ';
             if ($only_visible === false) {
                 $stmt = DBManager::get()->prepare($sql);
                 $stmt->execute([
                     ':id' => $this->getId(),
-                    ':semester_id' => $semester->semester_id,
-                    ':semester_beginn' => $semester->beginn,
-                    ':semester_ende' => $semester->ende
+                    ':semester_id' => $semester->semester_id
                 ]);
             } else if ($only_visible === true) {
                 $stmt = DBManager::get()->prepare($sql . ' AND sem.visible = 1 ');
                 $stmt->execute([
                     ':id' => $this->getId(),
-                    ':semester_id' => $semester->semester_id,
-                    ':semester_beginn' => $semester->beginn,
-                    ':semester_ende' => $semester->ende
+                    ':semester_id' => $semester->semester_id
                 ]);
             } else {
                 $user_perm = $GLOBALS['perm']->get_perm($only_visible);
@@ -458,9 +452,7 @@ class Lvgruppe extends ModuleManagementModelTreeItem
                     $stmt = DBManager::get()->prepare($sql);
                     $stmt->execute([
                         ':id' => $this->getId(),
-                        ':semester_id' => $semester->semester_id,
-                        ':semester_beginn' => $semester->beginn,
-                        ':semester_ende' => $semester->ende
+                        ':semester_id' => $semester->semester_id
                     ]);
                 } else if ($user_perm == 'admin') {
                     $perm_institute_ids = [];
@@ -473,8 +465,6 @@ class Lvgruppe extends ModuleManagementModelTreeItem
                     $stmt->execute([
                         ':id' => $this->getId(),
                         ':semester_id' => $semester->semester_id,
-                        ':semester_beginn' => $semester->beginn,
-                        ':semester_ende' => $semester->ende,
                         ':perm_institutes' => $perm_institute_ids
                     ]);
                 } else {
@@ -485,16 +475,12 @@ class Lvgruppe extends ModuleManagementModelTreeItem
                         . 'LEFT JOIN semester_courses ON (semester_courses.course_id = sem.Seminar_id) '
                         . 'INNER JOIN seminar_user USING(seminar_id) '
                         . 'WHERE mls.lvgruppe_id = :id '
-                        . 'AND ((sem.start_time <= :semester_beginn '
-                        . 'AND semester_courses.semester_id = :semester_id) '
-                        . 'OR (sem.start_time BETWEEN :semester_beginn AND :semester_ende) '
-                        . 'OR (sem.start_time <= :semester_beginn AND semester_courses.semester_id IS NULL)) '
+                        . 'AND (semester_courses.semester_id = :semester_id '
+                        . 'OR semester_courses.semester_id IS NULL) '
                         . 'AND (sem.visible = 1 OR (sem.visible = 0 AND seminar_user.user_id = :user_id))');
                     $stmt->execute([
                         ':id' => $this->getId(),
                         ':semester_id' => $semester->semester_id,
-                        ':semester_beginn' => $semester->beginn,
-                        ':semester_ende' => $semester->ende,
                         ':user_id' => $only_visible
                     ]);
                 }
diff --git a/lib/models/MvvCourse.php b/lib/models/MvvCourse.php
index 4d7c380175754cc44eae0e35d4abd65e84ae1adb..148b8db2493fb601c1282f717ee796bbacef3fac 100644
--- a/lib/models/MvvCourse.php
+++ b/lib/models/MvvCourse.php
@@ -25,8 +25,6 @@
  * @property string|null $sonstiges database column
  * @property int $lesezugriff database column
  * @property int $schreibzugriff database column
- * @property int|null $start_time database column
- * @property int|null $duration_time database column
  * @property string|null $art database column
  * @property string|null $teilnehmer database column
  * @property string|null $vorrausetzungen database column
diff --git a/lib/models/MvvOverlappingSelection.php b/lib/models/MvvOverlappingSelection.php
index b3fcc15a701a45f7f56bf6b3542de3a00399f935..525076ccc1427ffb6e8ec74711084f81df109a88 100644
--- a/lib/models/MvvOverlappingSelection.php
+++ b/lib/models/MvvOverlappingSelection.php
@@ -168,7 +168,6 @@ class MvvOverlappingSelection extends SimpleORMap
                         AND ((`start_sem`.`beginn` < :sem_end OR ISNULL(`start_sem`.`beginn`))
                             AND (`end_sem`.`ende` > :sem_start OR ISNULL(`end_sem`.`ende`)))
                         AND `seminare`.`status` IN (:typ)
-                        AND `seminare`.`start_time` <= :sem_end
                         AND (`semester_courses`.`semester_id` IS NULL OR `semester_courses`.`semester_id` = :semester_id)
                 ) AS `sembase` ON (`sembase`.`seminar_id` = `cbase`.`seminar_id`)
                 INNER JOIN `seminar_cycle_dates` AS `ccomp`
@@ -194,7 +193,8 @@ class MvvOverlappingSelection extends SimpleORMap
                     FROM `mvv_stgteilabschnitt`
                         INNER JOIN `mvv_stgteilabschnitt_modul` USING (`abschnitt_id`)
                         INNER JOIN `mvv_modul` USING (`modul_id`)
-                        INNER JOIN `mvv_modulteil` USING (`modul_id`)
+                        INNER JOIN `mv" .
+            "v_modulteil` USING (`modul_id`)
                         INNER JOIN `mvv_lvgruppe_modulteil` USING (`modulteil_id`)
                         INNER JOIN `mvv_lvgruppe_seminar` USING (`lvgruppe_id`)
                         INNER JOIN `seminare` USING (`seminar_id`)
@@ -213,7 +213,6 @@ class MvvOverlappingSelection extends SimpleORMap
                         AND ((`start_sem`.`beginn` < :sem_end OR ISNULL(`start_sem`.`beginn`))
                             AND (`end_sem`.`ende` > :sem_start OR ISNULL(`end_sem`.`ende`)))
                         AND `seminare`.`status` IN (:typ)
-                        AND `seminare`.`start_time` <= :sem_end
                         AND (`semester_courses`.`semester_id` IS NULL OR `semester_courses`.`semester_id` = :semester_id)
                 ) AS `semcomp` ON (`semcomp`.`seminar_id` = `ccomp`.`seminar_id`)
                 INNER JOIN `mvv_modulteil_stgteilabschnitt` AS `mms1`