diff --git a/src/components/recruit/vote.js b/src/components/recruit/vote.js
index ea9ddd83780f4062e668e0aff8ef20305b81d37a..1d0c8fba042416df40bf83fe23adc5309dd3f220 100644
--- a/src/components/recruit/vote.js
+++ b/src/components/recruit/vote.js
@@ -2,19 +2,23 @@ import React, { useState, useEffect, useContext } from "react";
 import voteStyles from './vote.module.css'
 import { AuthContext } from "../../App";
 
-function VoteItem({ data, setCheckVote }){
+function VoteItem({ data, setCheckVote, setAddSchedule }){
     const [isChecked, setIsChecked] = useState(false);
 
     const onChangeCheck = () => {
         if (!isChecked) {
             setCheckVote((prev) => [...prev, data.id]);
+            setAddSchedule((prev) => [...prev, data.id]);
             setIsChecked((prev) => !prev);
         } else {
             setCheckVote((prev) =>
                 prev.filter((vote) => (
-                    vote.date !== data.date ||
-                    vote.startTime !== data.startTime ||
-                    vote.endTime !== data.endTime
+                    vote !== data.id
+                ))
+            );
+            setAddSchedule((prev) =>
+                prev.filter((vote) => (
+                    vote !== data.id
                 ))
             );
             setIsChecked((prev) => !prev);
@@ -41,6 +45,7 @@ function Vote({ isOpen, onClose, data }) {
     const [votedata, setVotedata] = useState([]);
     const [checkVote, setCheckVote] = useState([]);
     const [count, setCount] = useState(0);
+    const [addSchedule, setAddSchedule] = useState([]);
 
     const{ userData } = useContext(AuthContext);
 
@@ -52,7 +57,7 @@ function Vote({ isOpen, onClose, data }) {
             if(response.ok){
                 if(jsonData.length > 0) {    
                     const components = jsonData.map((data) => (
-                        <VoteItem data={data} setCheckVote={setCheckVote}/>
+                        <VoteItem data={data} setCheckVote={setCheckVote} setAddSchedule={setAddSchedule}/>
                     ));
     
                     setVotedata(components);
@@ -61,7 +66,7 @@ function Vote({ isOpen, onClose, data }) {
                     setVotedata(components);
                 }
             }else{
-                alert("투표 조회 실패");
+                alert("투표 조회를 실패하였습니다.");
             }
 
         } catch(error){
@@ -83,7 +88,7 @@ function Vote({ isOpen, onClose, data }) {
                 alert("투표되었습니다.");
                 setCount((prev) => (prev + 1));
             }else{
-                throw new Error('Data loading error');
+                alert("투표를 실패하였습니다.");
             }
         } catch(error){
             console.log('Error during fetch:', error);
@@ -93,17 +98,18 @@ function Vote({ isOpen, onClose, data }) {
     const endVote = async ()=>{
         try{
             const response = await fetch(`/api/recruits/${data.id}/times/vote`,{
-                method: 'PUT',
+                method: 'POST',
                 headers: {
                     'Content-Type': 'application/json',
                 },
+                body: JSON.stringify({"idList" : addSchedule}),
             });
 
             if (response.ok){
-                alert("투표가 마감되었습니다.");
+                alert("투표 마감 후 스케줄이 성공적으로 추가되었습니다.");
                 window.location.reload();
             }else{
-                throw new Error('Data loading error');
+                alert('스케줄이 중복된 모집원이 존재합니다.');
             }
         } catch(error){
             console.log('Error during fetch:', error);