diff --git a/controllers/scheduleController.js b/controllers/scheduleController.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9233af6aebba049ef1f0a9c296d367de099ed9e5 100644
--- a/controllers/scheduleController.js
+++ b/controllers/scheduleController.js
@@ -0,0 +1,39 @@
+const ScheduleService = require('../services/scheduleService');
+
+class scheduleController {
+    /**
+     * 스케줄 생성
+     * POST /api/schedules
+     * 해당 사용자 id는 auth 미들웨어에서 설정된 사용자 정보 이용
+     * req.user = User 모델의 인스턴스
+     */
+    async createSchedule(req, res) {
+        try {
+            const userId = req.user.id;
+            const { title, start_time, end_time, is_fixed } = req.body;
+
+            const schedule = await ScheduleService.createSchedule({
+                userId,
+                title,
+                start_time,
+                end_time,
+                is_fixed
+            });
+
+            return res.status(201).json({
+                success: true,
+                data: {
+                    schedule
+                }
+            });
+        } catch (error) {
+            return res.status(400).json({
+                success: false,
+                error: {
+                    message: error.message,
+                    code: 'SCHEDULE_CREATE_ERROR'
+                }
+            });
+        }
+    }
+}
\ No newline at end of file