diff --git a/controllers/scheduleController.js b/controllers/scheduleController.js
index 9233af6aebba049ef1f0a9c296d367de099ed9e5..1d3bb93fabce16ce54c6f76d044e8098cf930595 100644
--- a/controllers/scheduleController.js
+++ b/controllers/scheduleController.js
@@ -1,9 +1,10 @@
+const { success } = require('../passport/googleStrategy');
 const ScheduleService = require('../services/scheduleService');
 
 class scheduleController {
     /**
      * 스케줄 생성
-     * POST /api/schedules
+     * POST /api/schedule
      * 해당 사용자 id는 auth 미들웨어에서 설정된 사용자 정보 이용
      * req.user = User 모델의 인스턴스
      */
@@ -36,4 +37,44 @@ class scheduleController {
             });
         }
     }
+
+    /**
+     * 스케줄 수정
+     * PUT /api/schedule/:id
+     */
+    async updateSchedule(req, res) {
+        try {
+            const { id } = req.params;
+            const { title, start_time, end_time } = req.body;
+
+            const userId = req.user.id;
+            const schedule = await ScheduleService.updateSchedule(id, userId, 
+                {
+                    title,
+                    start_time,
+                    end_time
+                });
+            
+            return res.statu(200).json({
+                success: true,
+                data: schedule
+            });
+        } catch (error) {
+            if (error.message === 'Schedule not found') {
+                return res.status(404).json({
+                    success: false,
+                    error: {
+                        message: error.message,
+                        code: 'SCHEDULE_NOT_FOUND'
+                    }
+                });
+            }
+            return res.status(400).json({
+                success: false,
+                error: {
+                    message: error.message,
+                    code: 'SCHEDULE_UPDATE_ERROR'
+                }
+            });
+    }
 }
\ No newline at end of file