diff --git a/extensions/schedule.py b/extensions/schedule.py
index 1e9859d9710dae9ab0db3f07bd9a61a314f4ec4d..b753feac941a7c7248166dd7ed8d640106b98b05 100644
--- a/extensions/schedule.py
+++ b/extensions/schedule.py
@@ -122,6 +122,7 @@ class TwitchSchedule(commands.GroupCog, name="schedule"):
         end_day = start_day + timedelta(days=6)
 
         schedule_channel = await self.bot.fetch_channel(int(os.getenv("SCHEDULE_CHANNEL")))
+        await self.cleanup_forecast(schedule_channel)
 
         week_schedule = Schedule.get_or_none(calendar_week=calendar_week, calendar_year=start_day.year)
         embed = discord.Embed(title=f"Contentvorhersage für die {calendar_week}. Kalenderwoche",
@@ -133,6 +134,10 @@ class TwitchSchedule(commands.GroupCog, name="schedule"):
         while curr_day <= end_day:
             name = f"{get_weekday(curr_day)} {curr_day.strftime('%d.%m.%Y')}"
             value = ""
+
+            if curr_day.day == datetime.now().day:
+                name = f">> {name} <<"
+
             for segment in ScheduleSegment.select() \
                     .where(ScheduleSegment.start_time.between(curr_day, (curr_day + timedelta(days=1)))) \
                     .order_by(ScheduleSegment.start_time):
@@ -175,6 +180,18 @@ class TwitchSchedule(commands.GroupCog, name="schedule"):
 
             remove_cancelled_streams(user, schedule.segments)
 
+    async def cleanup_forecast(self, schedule_channel):
+        now = datetime.now()
+        calendar = now.isocalendar()
+
+        for schedule in Schedule.select().where(Schedule.calendar_week <= calendar.week - 1):
+            try:
+                message = await schedule_channel.fetch_message(schedule.message_id)
+                await message.delete()
+            except:
+                pass
+            schedule.delete_instance(recursive=True)
+
 
 async def setup(bot: commands.Bot) -> None:
     await bot.add_cog(TwitchSchedule(bot))