diff --git a/backend/api/tournament.js b/backend/api/tournament.js
index 38fada7da1c420352222fd75209b52427160ea19..fdb706f6af776771672f52e6447087265cf06257 100644
--- a/backend/api/tournament.js
+++ b/backend/api/tournament.js
@@ -220,6 +220,8 @@ router.post("/join", (req, res) => {
             active: true,
             // the array of players cannot already contain the player
             players: { $nin: [playerId] },
+            // we dont want tournaments that have gone past their starttime
+            startTime: { $gte: new Date() },
           },
           // Add the player to the array
           {
@@ -500,6 +502,17 @@ function roundcheck(client, tournament) {
               //if there are less then two people left in the first round, or zero people left in the first round
               //the tournament ends
             }
+            if (rounds.length > 0) {
+              // If there is only one player in the tournaments first round and the starttime
+              // has expired, we end the tournament
+              if (
+                left.length < 2 &&
+                active == 1 &&
+                new Date(start) < new Date()
+              ) {
+                end = true;
+              }
+            }
             functions
               .timeOut(client, tournament, timedOut, timedOutRounds)
               .then(