diff --git a/program/serializers.py b/program/serializers.py
index 4dad927f0eecdf1538a4682c0b803d8c5989991c..c041761dbbe20b05ccce393764d11b420776f7f4 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -1389,8 +1389,35 @@ class CalendarSchemaSerializer(serializers.Serializer):
         def link_types(self):
             return LinkType.objects.all()
 
+    class CalendarTimeslotSerializer(serializers.ModelSerializer):
+        note_id = serializers.SerializerMethodField()
+        show_id = serializers.SerializerMethodField()
+        schedule_id = serializers.PrimaryKeyRelatedField(
+            queryset=Schedule.objects.all(),
+            required=False,
+            source="schedule",
+        )
+        repetition_of_id = serializers.PrimaryKeyRelatedField(
+            allow_null=True,
+            queryset=TimeSlot.objects.all(),
+            required=False,
+            source="repetition_of",
+        )
+
+        class Meta:
+            exclude = ("memo", "schedule", "repetition_of")
+            model = TimeSlot
+
+        @staticmethod
+        def get_show_id(obj) -> int:
+            return obj.schedule.show.id
+
+        @staticmethod
+        def get_note_id(obj) -> int:
+            return obj.note.id
+
     shows = ShowSerializer(many=True)
-    timeslots = TimeSlotSerializer(many=True)
+    timeslots = CalendarTimeslotSerializer(many=True)
     profiles = ProfileSerializer(many=True)
     categories = CategorySerializer(many=True)
     funding_categories = FundingCategorySerializer(many=True)