diff --git a/program/models.py b/program/models.py
index 821cd67f7cc70068c02bbf2fdac1236e23332d20..493de37bf5db050f2d5cbd0c21da8ccca06931dd 100644
--- a/program/models.py
+++ b/program/models.py
@@ -699,3 +699,9 @@ class ProgramEntry:
     end: datetime.datetime
     show: Show
     timeslot: TimeSlot | None
+
+    def playlist_id(self) -> int | None:
+        if self.timeslot and self.timeslot.playlist_id:
+            return self.timeslot.playlist_id
+        else:
+            return self.show.default_playlist_id
diff --git a/program/serializers.py b/program/serializers.py
index 7bfa67d920d7cf36bc1c488226195fe4e5ef8eb9..bd4d0b2f166539d3d10b7031310c31e423c45ed5 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -1293,6 +1293,7 @@ class BasicProgramEntrySerializer(serializers.Serializer):
     start = serializers.DateTimeField()
     end = serializers.DateTimeField()
     timeslot_id = serializers.IntegerField(allow_null=True, source="timeslot.id")
+    playlist_id = serializers.IntegerField(allow_null=True)
     show_id = serializers.IntegerField(source="show.id")