diff --git a/program/serializers.py b/program/serializers.py
index 2da7a1538f43aa54210e9e19aef9acb478e1542b..40679801918d5ebb594dba3a614116c9c6a30e12 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -678,29 +678,28 @@ class ScheduleDryRunResponseSerializer(serializers.Serializer):
 
 
 class TimeSlotSerializer(serializers.ModelSerializer):
-    show = serializers.PrimaryKeyRelatedField(queryset=Show.objects.all())
-    schedule = serializers.PrimaryKeyRelatedField(queryset=Schedule.objects.all())
+    show = serializers.PrimaryKeyRelatedField(queryset=Show.objects.all(), required=False)
+    schedule = serializers.PrimaryKeyRelatedField(queryset=Schedule.objects.all(), required=False)
     repetition_of = serializers.PrimaryKeyRelatedField(
-        queryset=TimeSlot.objects.all(), allow_null=True
+        allow_null=True,
+        queryset=TimeSlot.objects.all(),
+        required=False,
     )
 
     class Meta:
         model = TimeSlot
-        fields = (
+        read_only_fields = (
             "id",
             "end",
-            "memo",
-            "note_id",
-            "playlist_id",
-            "repetition_of",
             "schedule",
             "show",
             "start",
         )
-
-    def create(self, validated_data):
-        """Create and return a new TimeSlot instance, given the validated data."""
-        return TimeSlot.objects.create(**validated_data)
+        fields = (
+            "memo",
+            "playlist_id",
+            "repetition_of",
+        ) + read_only_fields
 
     def update(self, instance, validated_data):
         """Update and return an existing Show instance, given the validated data."""