diff --git a/cronjobs/ReminderMail.php b/cronjobs/ReminderMail.php
new file mode 100644
index 0000000000000000000000000000000000000000..f1b42e4f39fdc196a1fe83d44465acec34b07ebc
--- /dev/null
+++ b/cronjobs/ReminderMail.php
@@ -0,0 +1,75 @@
+<?php
+/**
+* reminder_email.php
+*
+* @author Manuel Schwarz <manschwa@uos.de>
+* @access public
+*/
+
+class ReminderEmail extends CronJob
+{
+
+    public static function getName()
+    {
+        return 'Stundenzettel - Erinnerungsmail an NutzerInnen verschicken';
+    }
+
+    public static function getDescription()
+    {
+        return 'Sendet Erinnerungsmail an NutzerInnen welche ihren Stundenzettel noch nicht abgegeben haben.';
+    }
+
+    public function execute($last_result, $parameters = array())
+    {
+        $month = (int) date('m', strtotime('last month'));    // format: 5
+        $year = (int) date('Y', strtotime('last month'));     // format: 2021
+
+        $contracts = StundenzettelContract::getContractsByMonth($month, $year);
+        foreach ($contracts as $contract) {
+            $timesheet = StundenzettelTimesheet::getContractTimesheet($contract->id, $month, $year);
+            if (!$timesheet) {
+                sendMissingTimesheetMail($contract->user_id);
+            } elseif ($timesheet->overdue && !$timesheet->finished) {
+                sendOverdueMail($contract->user_id);
+            }
+        }
+    }
+
+    private static function sendMissingTimesheetMail($user_id)
+    {
+        $subject = 'Erinnerung: Bitte nutzen Sie den digitalen virtUOS-Stundenzettel';
+        $mailtext = "Sie erhalten diese automatisch generierte E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren "
+            . "und bisher noch keinen Stundenzettel im Stundenzettel-Plugin in Stud.IP angelegt haben.\n"
+            . "Bitte holen Sie dies schnellstmöglich nach und füllen diesen entsprechend mit Ihren Arbeitszeiten aus.\n"
+            . "Vielen Dank. \n\n"
+            . "Mit freundlichen Grüßen,\n"
+            . "Ihr virtUOS-Team";
+        sendReminderMail($user_id, $subject, $mailtext);
+    }
+
+    private static function sendOverdueMail($user_id)
+    {
+        $subject = 'Erinnerung: Abgabe Ihres virtUOS-Stundenzettels';
+        $mailtext = "Sie erhalten diese automatisch generierte E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren "
+            . "und Ihren Stundenzettel im Stundenzettel-Plugin in Stud.IP bisher noch nicht abgegeben haben.\n"
+            . "Bitte holen Sie dies schnellstmöglich nach sobald Sie Ihre Arbeitszeiten entprechend eingetragen haben.\n"
+            . "Vielen Dank. \n\n"
+            . "Mit freundlichen Grüßen,\n"
+            . "Ihr virtUOS-Team";
+        sendReminderMail($user_id, $subject, $mailtext);
+    }
+
+    private static function sendReminderMail($user_id, $subject, $mailtext)
+    {
+            $recipient = User::find($user_id)->email;
+            $sender = "sekretariat-virtuos@uni-osnabrueck.de";
+
+            $mail = new StudipMail();
+            return $mail->addRecipient($recipient)
+                 ->setSenderEmail($sender)
+                 ->setSenderName('Sekretariat virtUOS')
+                 ->setSubject($subject)
+                 ->setBodyText($mailtext)
+                 ->send();
+    }
+}
diff --git a/cronjobs/reminder_email.php b/cronjobs/reminder_email.php
deleted file mode 100644
index 1ffa89fadf3451763300dbbc4b04daff61edfa28..0000000000000000000000000000000000000000
--- a/cronjobs/reminder_email.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/**
-* reminder_email.php
-*
-* @author Manuel Schwarz <manschwa@uos.de>
-* @access public
-*/
-require_once 'lib/classes/CronJob.class.php';
-
-
-class ReminderEmail extends CronJob
-{
-
-    public static function getName()
-    {
-        return dgettext('Stundenzettel', 'Stundenzettel - Erinnerungsmail an NutzerInnen verschicken');
-    }
-
-    public static function getDescription()
-    {
-        return dgettext('Stundenzettel', 'Sendet Erinnerungsmail an NutzerInnen welche ihren Stundenzettel noch nicht abgegeben haben.');
-    }
-
-    public function execute($last_result, $parameters = array())
-    {
-        $month = (int)date('m');     // format: 5
-        $year = (int)date('Y');      // format: 2021
-
-        $month = $month - 1;
-        if ($month == 0) {          // special case: turn of the year
-            $month = 12;
-            $year = $year - 1;
-        }
-
-        $contracts = StundenzettelContract::getContractsByMonth($month, $year);
-        foreach ($contracts as $contract) {
-            $timesheet = StundenzettelTimesheet::getContractTimesheet($contract->id, $month, $year);
-            if (!$timesheet) {
-                sendMissingTimesheetMail($contract->user_id);
-            } elseif ($timesheet->overdue && !$timesheet->finished) {
-                sendOverdueMail($contract->user_id);
-            }
-        }
-    }
-
-    private static function sendMissingTimesheetMail($user_id)
-    {
-        $mailtext = '<html>
-
-            <body>
-            <h2>Erinnerung: Bitte nutzen Sie den digitalen Stundenzettel</h2>
-            <p>Sie erhalten diese E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren und bisher noch keinen
-               Stundenzettel im Stundenzettel-Plugin in Stud.IP angelegt haben. Bitte holen Sie dies schnellstmöglich nach
-               und füllen diesen entsprechend mit Ihren Arbeitszeiten aus. Vielen Dank.</p>
-            <p>Mit freundlichen Grüßen,</p>
-            <p>Ihr virtUOS-Team</p>
-            </body>
-            </html>
-            ';
-        sendReminderMail($user_id, $mailtext);
-    }
-
-    private static function sendOverdueMail($user_id)
-    {
-        $mailtext = '<html>
-
-            <body>
-            <h2>Erinnerung: Abgabe Ihres Stundenzettels</h2>
-            <p>Sie erhalten diese E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren und Ihren Stundenzettel
-               im Stundenzettel-Plugin in Stud.IP bisher noch nicht abgegeben haben. Bitte holen Sie dies schnellstmöglich nach
-               sobald Sie Ihre Arbeitszeiten entprechend eingetragen haben. Vielen Dank.</p>
-            <p>Mit freundlichen Grüßen,</p>
-            <p>Ihr virtUOS-Team</p>
-            </body>
-            </html>
-            ';
-        sendReminderMail($user_id, $mailtext);
-    }
-
-    private static function sendReminderMail($user_id, $mailtext)
-    {
-            $recipient = User::find($user_id)->email;
-            $sender = "sekretariat-virtuos@uni-osnabrueck.de";
-            $subject = "Erinnerung: Stundenzettel virtUOS";
-
-            $mail = new StudipMail();
-            return $mail->addRecipient($recipient)
-                 ->setSenderEmail($sender)
-                 ->setSenderName('Sekretariat virtUOS')
-                 ->setSubject($subject)
-                 ->setBodyHtml($mailtext)
-                 ->setBodyText(strip_tags($mailtext))
-                 ->send();
-    }
-}
diff --git a/migrations/003_cronjob_reminder_email.php b/migrations/003_cronjob_reminder_email.php
index fa1a211bb705c927ac10d4950a13a7abab3be6f7..2c52ab1ada7194a55ecfb1622ffda1bd4f30be0c 100644
--- a/migrations/003_cronjob_reminder_email.php
+++ b/migrations/003_cronjob_reminder_email.php
@@ -8,7 +8,7 @@
 class CronjobReminderEmail extends Migration
 {
 
-    const FILENAME = 'public/plugins_packages/virtUOS/Stundenzettel/cronjobs/reminder_email.php';
+    const FILENAME = 'public/plugins_packages/virtUOS/Stundenzettel/cronjobs/ReminderEmail.php';
 
     public function description()
     {
@@ -19,9 +19,9 @@ class CronjobReminderEmail extends Migration
     {
         $task_id = CronjobScheduler::registerTask(self::FILENAME, true);
 
-        // Schedule job to run every day at 23:59
+        // Schedule job to run every day at 03:00 o'clock
         if ($task_id) {
-            CronjobScheduler::schedulePeriodic($task_id, -1);  // negative value means "every x minutes"
+            CronjobScheduler::schedulePeriodic($task_id, 0, 3);
         }
     }