diff --git a/src/Pages/Calendar.vue b/src/Pages/Calendar.vue
index 11b81d7a3721411857b9e8300a7457287500cef3..fa4df594f1e4093539a1527327521ba215d4c071 100644
--- a/src/Pages/Calendar.vue
+++ b/src/Pages/Calendar.vue
@@ -192,7 +192,7 @@ const calendarEvents = computedAsync(
         continue
       }
 
-      const isEmpty = entry.playlistId === null
+      const isEmpty = entry.timeslotId && entry.playlistId === null
       const emptyText = isEmpty ? `: ${t('calendar.empty')} ⚠` : ''
       const ts = entry.timeslotId
         ? await timeslotStore.retrieve(entry.timeslotId, { useCached: true })
diff --git a/src/components/calendar/ACalendarDayEntry.vue b/src/components/calendar/ACalendarDayEntry.vue
index 89cf09b91d4cf6980f4411ab70753bce0e7657c3..e87abc9f05f933971bce8888eee7a6a0a6e0b4e2 100644
--- a/src/components/calendar/ACalendarDayEntry.vue
+++ b/src/components/calendar/ACalendarDayEntry.vue
@@ -80,6 +80,7 @@
           <APill v-if="timeslot?.repetitionOfId" class="tw-text-teal-700 tw-text-sm">
             {{ t('calendar.repetition') }}
           </APill>
+
           <APill
             v-if="
               playlistDurationInSeconds !== null &&
@@ -89,14 +90,11 @@
           >
             {{ t('calendar.mismatchedLength') }}
           </APill>
+
           <APill v-if="timeslot && !timeslot.playlistId" class="tw-text-amber-700 tw-text-sm">
             {{ t('calendar.fallback') }}
           </APill>
         </template>
-
-        <APill v-else-if="!entry.playlistId" class="tw-text-rose-700 tw-text-sm">
-          {{ t('calendar.empty') }}
-        </APill>
       </div>
     </ATimelineContent>
   </ATimelineItem>