diff --git a/program/serializers.py b/program/serializers.py
index 537f01b851dfc5284bb2e0652b5ad4388a003b28..3b95b4bd7f830dc0d260b86f36df5b320cdc560f 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -1372,9 +1372,19 @@ class PlayoutEntrySerializer(serializers.Serializer):
         pass
 
 
-class DayScheduleSerializer(serializers.Serializer):
-    end = serializers.DateTimeField()
-    is_virtual = serializers.BooleanField()
-    show_id = serializers.IntegerField()
-    start = serializers.DateTimeField()
-    show_name = serializers.CharField()
+class ProgramEntrySerializer(serializers.Serializer):
+    episode = serializers.SerializerMethodField()
+    show = serializers.SerializerMethodField()
+    timeslot = NestedTimeslotSerializer()
+
+    @staticmethod
+    def get_episode(obj) -> NestedEpisode:
+        pass
+
+    @staticmethod
+    def get_schedule(obj) -> NestedSchedule:
+        pass
+
+    @staticmethod
+    def get_show(obj) -> NestedShow:
+        pass
diff --git a/program/views.py b/program/views.py
index 37f1b76e1a00f63302c5784ccc2d7a0b24f2dd07..09db31a012aee61f722e3d18ec2018574f93610b 100644
--- a/program/views.py
+++ b/program/views.py
@@ -66,7 +66,6 @@ from program.models import (
 )
 from program.serializers import (
     CategorySerializer,
-    DayScheduleSerializer,
     ErrorSerializer,
     FundingCategorySerializer,
     HostSerializer,
@@ -78,6 +77,7 @@ from program.serializers import (
     MusicFocusSerializer,
     NoteSerializer,
     PlayoutEntrySerializer,
+    ProgramEntrySerializer,
     RadioSettingsSerializer,
     RRuleSerializer,
     ScheduleConflictResponseSerializer,
@@ -152,7 +152,7 @@ class APIProgramViewSet(
     viewsets.GenericViewSet,
 ):
     queryset = TimeSlot.objects.all()
-    serializer_class = DayScheduleSerializer
+    serializer_class = ProgramEntrySerializer
 
     def list(self, request, year=None, month=None, day=None):
         # datetime.combine returns a timezone naive datetime object