diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/CourseController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/CourseController.java
index 40b1e0f..b11a075 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/CourseController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/CourseController.java
@@ -76,7 +76,7 @@ public class CourseController {
     {
         if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
             return new UnauthorizedResponse<>(null);
-
+        System.out.println(course.getOwner().getRegNo());
         Course createdCourse = courseServ.save(course);
         if (createdCourse == null)
             return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java
index 63d7e24..8074abd 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java
@@ -52,11 +52,14 @@ public class LessonController {
 
 
     @PostMapping("/lesson")
-    public ResponseEntity<HashMap<String, Object>> postLesson(@RequestHeader("Authorization")String token,
-                                                              @RequestBody Lesson lesson){
+    public ResponseEntity<HashMap<String, Object>> postLesson(@RequestHeader("Authorization") String token,
+                                                              @RequestBody Map<String, Object> lessonInfos){
         if(authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
             return new UnauthorizedResponse<>(null);
-        Lesson createdLesson = lessonServ.save(lesson);
+
+
+          Lesson lesson = lessonServ.createLesson(lessonInfos);
+          Lesson createdLesson = lessonServ.save(lesson);
         if(createdLesson==null)
             return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
         return new ResponseEntity<>(ProtectionService.lessonWithoutPassword(createdLesson), HttpStatus.OK);
@@ -68,8 +71,22 @@ public class LessonController {
                                               @PathVariable long id){
         if(authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
             return new UnauthorizedResponse<>(null);
-        if(!lessonServ.modifyData(id, updates, authServ.getUserFromToken(token).getRole()))
+        if(!lessonServ.modifyData(id, updates)){
             return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
+          }
         return new ResponseEntity<>(HttpStatus.OK);
     }
+
+    @DeleteMapping("lesson/{id}")
+    public ResponseEntity<String> deleteLesson(@RequestHeader("Authorization") String token,
+                                               @PathVariable Long id){
+        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
+            return new UnauthorizedResponse<>(null);
+        Lesson toDelete = lessonServ.findById(id);
+        if(toDelete == null)
+            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
+        lessonServ.delete(toDelete);
+        return new ResponseEntity<>(HttpStatus.OK);
+
+    }
 }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
index 835ddfe..5a69a82 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
@@ -107,7 +107,7 @@ public class MockController {
 
         //Schedule part
 
-        Lesson lesson_0_progra1 = new Lesson(progra1, "Mon Apr 01 2024 08:15", "Mon Apr 01 2024 10:15","rgb(0,50,100)","A0B2","Course");
+        Lesson lesson_0_progra1 = new Lesson(progra1, "Mon Apr 22 2024 08:15", "Mon Apr 22 2024 10:15","rgb(0,50,100)","A0B2","Course");
         Lesson lesson_0_chemistry1 = new Lesson(chemistry1, "Wed Mar 27 2024 08:15", "Wed Mar 27 2024 09:15","rgb(100,50,0)","A0B2","TP");
         Lesson lesson_0_psycho1 = new Lesson(psycho1, "Sun Mar 24 2024 10:30 ","Sun Mar 24 2024 12:30 ","rgb(100,50,100)", "A0B2","TD");
         Lesson lesson_1_progra1 = new Lesson(progra1, "Mon Apr 02 2024 13:30", "Mon Apr 02 2024 15:30","rgb(0,50,100)","A0B2","TP");
diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java
index 6cfaa01..4c21684 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java
@@ -1,5 +1,6 @@
 package ovh.herisson.Clyde.EndPoints;
 
+import ch.qos.logback.core.net.SyslogOutputStream;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
@@ -9,10 +10,7 @@ import ovh.herisson.Clyde.Services.ScheduleLessonService;
 import ovh.herisson.Clyde.Services.ScheduleService;
 import ovh.herisson.Clyde.Services.UserCurriculumService;
 import ovh.herisson.Clyde.Services.CurriculumService;
-import ovh.herisson.Clyde.Tables.Curriculum;
-import ovh.herisson.Clyde.Tables.Role;
-import ovh.herisson.Clyde.Tables.Schedule;
-import ovh.herisson.Clyde.Tables.ScheduleLesson;
+import ovh.herisson.Clyde.Tables.*;
 import ovh.herisson.Clyde.Services.LessonService;
 
 import java.util.Map;
@@ -94,4 +92,16 @@ public class ScheduleController {
 
         return new ResponseEntity<>(HttpStatus.OK);
     }
+    @DeleteMapping("/schedule/lesson/{id}")
+    public ResponseEntity<String> deleteLessonFromSchedule(@RequestHeader("Authorization") String token,
+                                                          @RequestBody Long lessonId,
+                                                          @PathVariable Long id)
+    {
+        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
+            return new UnauthorizedResponse<>(null);
+        if (!scheduleLessonServ.delete(lessonId))
+            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
+
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
 }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/ScheduleLessonRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/ScheduleLessonRepository.java
index 81fec17..db1b0c2 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Repositories/ScheduleLessonRepository.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/ScheduleLessonRepository.java
@@ -1,5 +1,7 @@
 package ovh.herisson.Clyde.Repositories;
 
+import jakarta.transaction.Transactional;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
 import ovh.herisson.Clyde.Tables.Curriculum;
@@ -20,4 +22,10 @@ public interface ScheduleLessonRepository extends CrudRepository<ScheduleLesson,
 
     @Query("select distinct sl.lesson from ScheduleLesson sl where sl.schedule = ?1")
     Iterable<Lesson> findLessonBySchedule(Schedule schedule);
+
+    @Modifying
+    @Transactional
+    @Query("delete from ScheduleLesson sl where sl.lesson =?1")
+    void delete(Lesson lesson);
+
 }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/LessonService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/LessonService.java
index 8637a45..e873699 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Services/LessonService.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Services/LessonService.java
@@ -8,6 +8,7 @@ import ovh.herisson.Clyde.Tables.Lesson;
 import ovh.herisson.Clyde.Tables.Role;
 import ovh.herisson.Clyde.Tables.User;
 
+import java.lang.reflect.GenericSignatureFormatError;
 import java.util.ArrayList;
 import java.util.Map;
 
@@ -38,15 +39,11 @@ public class LessonService {
         return toReturn;
     }
 
-    public boolean modifyData(long id, Map<String ,Object> updates, Role role){
-        Lesson target = lessonRepo.findById(id);
+    public Lesson createLesson(Map<String,Object> lessonInfos) {
+        Lesson target = new Lesson();
 
-        if(target == null || role != Role.Secretary)
-            return false;
-
-
-        for (Map.Entry<String , Object> entry: updates.entrySet()){
-            switch (entry.getKey()){
+        for (Map.Entry<String, Object> entry : lessonInfos.entrySet()) {
+            switch (entry.getKey()) {
                 case "lessonStart":
                     target.setLessonStart((String) entry.getValue());
                     break;
@@ -61,6 +58,40 @@ public class LessonService {
                 case "lessonType":
                     target.setLessonType((String) entry.getValue());
                     break;
+                case "courseId":
+                    target.setCourse(courseRepo.findById((int) entry.getValue()));
+            }
+
+        }
+        return target;
+    }
+
+    public boolean modifyData(long id, Map<String ,Object> updates){
+        Lesson target = lessonRepo.findById(id);
+        System.out.println(target);
+
+        if(target == null)
+            return false;
+
+
+        System.out.println("test");
+        System.out.println(updates.entrySet());
+
+        for (Map.Entry<String , Object> entry: updates.entrySet()){
+            System.out.println(entry);
+            switch (entry.getKey()){
+                case "lessonStart":
+                    target.setLessonStart((String) entry.getValue());
+                    break;
+                case "lessonEnd":
+                    target.setLessonEnd((String) entry.getValue());
+                    break;            
+                case "local":
+                    target.setLocal((String) entry.getValue());
+                    break;
+                case "lessonType":
+                    target.setLessonType((String) entry.getValue());
+                    break;
             }
         }
         lessonRepo.save(target);
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java
index 05d5eb7..0fde2fe 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java
@@ -30,6 +30,14 @@ public class ScheduleLessonService {
         return true;
     }
 
+    public boolean delete(long lessonId){
+        if(lessonId == 0)
+            return false;
+        scheduleLessonRepo.delete(lessonRepo.findById(lessonId));
+        return true;
+    }
+
+
     public Schedule getScheduleByCurriculum(Curriculum curriculum){
         return scheduleLessonRepo.findScheduleByCurriculum(curriculum);
     }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java
index df0421d..af6ac77 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java
@@ -8,7 +8,7 @@ import org.hibernate.annotations.OnDeleteAction;
 public class Course {
     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
-    private int courseID;
+    private int courseId;
     private int credits;
     private String title;
 
@@ -26,8 +26,11 @@ public class Course {
     public Course() {}
 
     public int getCourseID() {
-        return courseID;
+        return courseId;
     }
+    public void setCourseID(int courseId){
+      this.courseId = courseId;
+  }
 
     public int getCredits() {
         return credits;
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java
index 67465a8..af75921 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java
@@ -1,6 +1,8 @@
 package ovh.herisson.Clyde.Tables;
 
 import jakarta.persistence.*;
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
 
 
 @Entity
@@ -10,7 +12,8 @@ public class Lesson {
   private int lessonID;
 
   @ManyToOne(fetch = FetchType.EAGER)
-  @JoinColumn(name= "Course")
+  @OnDelete(action = OnDeleteAction.SET_NULL)
+  @JoinColumn(name = "Course")
   private Course course;
 
   private String lessonStart;
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Schedule.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Schedule.java
index 993c38c..c34222e 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Schedule.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Schedule.java
@@ -13,6 +13,7 @@ public class Schedule {
 
   @OneToOne
   @JoinColumn(name = "Curriculum")
+  @OnDelete(action = OnDeleteAction.SET_NULL)
   private Curriculum curriculum;
 
   public Schedule(Curriculum curriculum){
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/ScheduleLesson.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/ScheduleLesson.java
index 3b7b6a4..895cef1 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/ScheduleLesson.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/ScheduleLesson.java
@@ -14,10 +14,12 @@ public class ScheduleLesson{
   
   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name = "Schedule")
+  @OnDelete(action = OnDeleteAction.SET_NULL)
   private Schedule schedule;
 
 
   @ManyToOne(fetch = FetchType.EAGER)
+  @OnDelete(action = OnDeleteAction.SET_NULL)
   @JoinColumn(name = "Lesson")
   private Lesson lesson;
 
diff --git a/frontend/src/Apps/ManageCourses.vue b/frontend/src/Apps/ManageCourses.vue
index a9f1f66..44cd187 100644
--- a/frontend/src/Apps/ManageCourses.vue
+++ b/frontend/src/Apps/ManageCourses.vue
@@ -155,11 +155,11 @@
       </div>
       <div class="containerElement"v-else>
         <input style="max-width:200px;" class="name" v-model="toModify.title">
-        <select v-if="self.role === 'Secretary'" style="max-width:200px;" class="teacher" v-model="toModify.owner">
+        <select v-if="self.role != 'Secretary'" style="max-width:200px;" class="teacher" v-model="toModify.owner">
           <option v-for="(item,index) in profList" :value='item'>{{item.lastName}}</option>
         </select>
         <div v-else class="teacher">{{item.owner.lastName}}</div> 
-        <input v-if="self.role==='Secretary'"style="max-width:100px;"class="credits" v-model="toModify.credits">  
+        <input v-if="self.role !='Secretary'"style="max-width:100px;"class="credits" v-model="toModify.credits">  
         <div v-else class="credits">{{i18n("Credits")}}:{{item.credits}}</div>  
       </div>
     </div>
diff --git a/frontend/src/Apps/ManageSchedule.vue b/frontend/src/Apps/ManageSchedule.vue
index 905e6d7..dcfa93b 100644
--- a/frontend/src/Apps/ManageSchedule.vue
+++ b/frontend/src/Apps/ManageSchedule.vue
@@ -1,18 +1,17 @@
 <script setup>
 import { ref } from 'vue'
 import i18n from '@/i18n.js'
-  import {getDifferenceTime,lastDateOfMonth,formatDate,getFirstDay,sortByDate,matrixFromList,sundayToTheEnd,getMarginTop,getHoursMinutes, monthFromList} from '../scheduleFunctions.js'
-  import {getAllSchedule, getOwnSchedule, getCurriculumSchedule,addLessonToSchedule} from "@/rest/scheduleRest.js";
-  import {getLessons, getOwnedLessons, createLesson } from "@/rest/lessonSchedule.js"
-  import {isLogged, getSelf,getTeachers} from "@/rest/Users.js"
-  import {getAllCurriculums, getcurriculum} from "@/rest/curriculum.js"
-  import {getCourse} from "@/rest/courses.js"
-  
+  import {formatDate,getHoursMinutes} from '../scheduleFunctions.js'
+  import {getAllSchedule, deleteLessonFromSchedule ,getSchedule, getCurriculumSchedule,addLessonToSchedule} from "@/rest/scheduleRest.js";
+  import {getLessons , createLesson, alterLesson , deleteLesson} from "@/rest/lessonSchedule.js"
+  import {getTeachers} from "@/rest/Users.js"
+  import { getcurriculum} from "@/rest/curriculum.js"
+
   const trueSchedule = ref()
   const schedule = ref();
   const lessonFinder = ref();
   const curriculum = ref();
-  const allSchedules = await getAllSchedule();
+  const allSchedules = ref(await getAllSchedule());
   const filter = ref("null");
   const subFilter = ref("null");
   const lesson = ref();
@@ -28,7 +27,11 @@ import i18n from '@/i18n.js'
 const colors = {"TP":"rgb(36,175,255)","TD":"rgb(255,36,175)","Exam":"rgb(175,255,36)","Course":"rgb(255,36,175)"}
 const currentDate = new Date();
 
+const editElementID = ref()
 
+function editItem(id){
+  editElementID.value = id;
+}
 
 function invertedFormatDate(date) {
     var d = new Date(date),
@@ -47,7 +50,6 @@ function invertedFormatDate(date) {
 const maxDate = ref(invertedFormatDate(new Date([currentDate.getMonth()<7 ? currentDate.getFullYear() : (currentDate.getFullYear())+1],7,31)));
 
 const minDate = ref(invertedFormatDate((new Date()).setDate(currentDate.getDate()+1)))
-console.log(minDate.value)
 
 function createLessonEvent(date,hour){
     const str = date.concat(' ',hour);
@@ -66,7 +68,41 @@ function createLessonEvent(date,hour){
     "color": null,
   }
 
+  const lessonCreator = {
+    "courseId" : null,
+    "lessonStart":null,
+    "lessonEnd":null,
+    "lessonType":null,
+    "local":null,
+    "color":null,
+  }
+
+  const patternModify = {
+    "day": null,
+    "lessonStart": null,
+    "lesssonEnd": null,
+    "local":null,
+    "lessonType":null,
+  }
+  
+const toModify = ref(Object.assign({}, pattern));
   const lessonBuffer = ref(Object.assign({}, pattern));
+  const lessonCreatorBuffer = ref(Object.assign({},lessonCreator));
+
+
+  function setModify(lesson){
+    toModify.value.day = invertedFormatDate(new Date(lesson.lessonStart));
+    toModify.value.lessonStart = getHoursMinutes(lesson.lessonStart);
+    toModify.value.lessonEnd = getHoursMinutes(lesson.lessonEnd);
+    toModify.value.local = lesson.local
+    toModify.value.lessonType = lesson.lessonType
+  }
+
+  function inFuture(lesson){
+    let toCompare = new Date(lesson.lessonStart);
+    let current = new Date();
+    return (current < toCompare)
+}
 
 async function setCourses(){
   courses.value = (await getcurriculum(curriculum.value.curriculumId)).courses
@@ -136,12 +172,7 @@ async function setCourses(){
   }
 
   function findCreatedLesson(){
-  console.log(lessonFinder.value);
   for(let element in lessonFinder.value){
-    console.log(lessonFinder.value[element].course.courseId, lessonFinder.value[element].local);
-    
-    console.log(lessonBuffer.value.course.courseId, lessonBuffer.value.local)
-
       if((lessonFinder.value[element].course.courseId ==lessonBuffer.value.course.courseId) && (lessonFinder.value[element].local == lessonBuffer.value.local) ){
         return lessonFinder.value[element];
      }
@@ -160,35 +191,86 @@ async function setCourses(){
         }
         }
       if(!isnull){
-        let course = await getCourse(lessonBuffer.value.course.courseId);
-        console.log(course)
+
         let start = createLessonEvent(lessonBuffer.value.day,lessonBuffer.value.lessonStart)
         let end = createLessonEvent(lessonBuffer.value.day,lessonBuffer.value.lessonEnd)
-        await createLesson(course,
-        start,
-        end,
-        lessonBuffer.value.lessonType,
-        lessonBuffer.value.color,lessonBuffer.value.local)
+
+        lessonCreatorBuffer.value.lessonStart = start;
+        lessonCreatorBuffer.value.lessonEnd = end;
+        lessonCreatorBuffer.value.color = lessonBuffer.value.color;
+        lessonCreatorBuffer.value.lessonType =lessonBuffer.value.lessonType;
+        lessonCreatorBuffer.value.local = lessonBuffer.value.local;
+        lessonCreatorBuffer.value.courseId = lessonBuffer.value.course.courseId;
+        
+       await createLesson(lessonCreatorBuffer.value);
 
         lessonFinder.value = await getLessons();
         lesson.value = findCreatedLesson();
+        
         trueSchedule.value = await getCurriculumSchedule(curriculum.value.curriculumId) 
         await addLessonToSchedule(trueSchedule.value.scheduleId,lesson.value.lessonID)
 
     }
     }
     lessonBuffer.value = Object.assign({}, pattern);
+    lessonFinder.value = null;
+    lessonCreatorBuffer.value = Object.assign({},lessonCreator)
     trueSchedule.value = null;
 
-  } 
+  }
+
+async function patchLesson(lesson){
+  
+  for (let element in toModify.value){
+      if (element =="lessonType" && (toModify.value[element] != lesson[element])){
+        await alterLesson(lesson.lessonID,{lessonType:toModify.value[element]});
+      }
+      if (element =="local" && (toModify.value[element] != lesson[element])){
+        await alterLesson(lesson.lessonID,{local:toModify.value[element]});
+      }
+      if (element =="lessonStart" && (toModify.value[element] != lesson[element])){
+        await alterLesson(lesson.lessonID,{lessonStart:createLessonEvent(toModify.value.day,toModify.value[element])
+});
+      }
+      if (element =="lessonEnd" && (toModify.value[element] != lesson[element])){
+        await alterLesson(lesson.lessonID,{lessonEnd:createLessonEvent(toModify.value.day,toModify.value[element])
+});
+      }
+      if(element == "day" && (toModify.value[element] != invertedFormatDate(new Date(lesson.lessonStart))) ){
+        
+       if(toModify.value.lessonStart == lesson.lessonStart){
+        await alterLesson(lesson.lessonID,{lessonStart:createLessonEvent(toModify.value.day,lesson.lessonStart)
+      });}
+       if(toModify.value.lessonEnd == lesson.lessonEnd){
+          await alterLesson(lesson.lessonID,{lessonStart:createLessonEvent(toModify.value.day,lesson.lessonStart)});
+      }
+    }
+       }
+    toModify.value= Object.assign({},patternModify);
+    trueSchedule.value = await getSchedule(trueSchedule.value.scheduleId);
+    schedule.value =trueSchedule.value.lessons;
+    editElementID.value= '';
+}
+
+
+
+  async function removeLesson() {
+      await deleteLessonFromSchedule(trueSchedule.value.scheduleId, editElementID.value)
+      await deleteLesson(editElementID.value);
+      trueSchedule.value = await getSchedule(trueSchedule.value.scheduleId);
+      schedule.value =trueSchedule.value.lessons;
+      editElementID.value= '';
+
+}
 
 
 </script>
 <template>
   <div class="body">
-    <div class="listTitle buttonGrid"v-if="!deleteMod && !createMod" >
+    <div class="listTitle buttonGrid"v-if="!createMod" >
       <button class="create" @click="createMod = true;">Create</button>
-      <button class="delete" @click="deleteMod = true;">Delete</button>
+      <button class="delete" @click="deleteMod = !deleteMod;">{{!deleteMod ? "Delete" : "Remove Delete"}}</button>
+
     </div>
     <div v-if="createMod">
       <form class="listElement" style="width:40%; margin:0 auto 0 auto;">
@@ -241,7 +323,7 @@ async function setCourses(){
 
 
 
-    <div v-if="!deleteMod && !createMod">
+    <div v-if="!createMod">
       <select @change="changeSchedule()" v-model="trueSchedule">
         <option v-for="item in allSchedules" :value='item'>{{item.curriculum.option}}</option>
       </select>
@@ -263,14 +345,58 @@ async function setCourses(){
       </select>
 
     </div>
-    <div v-for="element in schedule" style="width:50%;margin-left:auto; margin-right:auto;" >
+    <div v-if="!createMod " :key="element.lessonID" v-for="element in schedule" style="width:50%;margin-left:auto; margin-right:auto;" >
+        <div  v-if="editElementID !== element.lessonID" style ="padding:15px 15px 15px 15px;">
+        <button  v-if="inFuture(element)" @click="editElementID = element.lessonID;setModify(element);">
+        {{i18n("courses.modify")}}
+        </button>
+      </div>
+      <div v-else>
+        <button @click="patchLesson(element);"> {{i18n("courses.confirm")}} </button>
+        <button @click="editElementID= '';"> {{i18n("courses.back")}} </button>
+      </div>
       <div class="listElement">
-        <div class="containerElement">
+        <div  v-if="editElementID != element.lessonID">
           <div>
           {{element.course.title}}
           </div>
           <div>{{formatDate(element.lessonStart)}}</div>
-          <div>{{getHoursMinutes(element.lessonStart)}}-{{getHoursMinutes(element.lessonEnd)}}</div>
+          <div>{{getHoursMinutes(element.lessonStart)}}-{{getHoursMinutes(element.lessonEnd)}}
+          </div>
+          <div>{{element.local}}</div>
+          <div>{{element.lessonType}}</div>
+        </div>
+
+        <div v-else>
+         <div>{{element.course.title}}</div>
+        <div style="margin-bottom:20px;">
+          Day:
+          <input type="date" :min="minDate" :max="maxDate" v-model="toModify.day">
+        </div>
+        <div style="margin-bottom:20px;">
+          Start: 
+          <input v-model="toModify.lessonStart" type="time" min="8:00" max="20:00"/>
+        </div>
+        <div style="margin-bottom:20px;">
+          End: 
+          <input v-model="toModify.lessonEnd" type="time" min="10:00" max="20:00" required />
+        </div>
+        <div style="margin-bottom:20px;">
+          Type: 
+          <select v-model="toModify.lessonType">
+           <option v-for="item in types" :value='item'>{{item}}</option>
+          </select>
+        </div>
+        <div style="margin-bottom:20px;">
+          Local: 
+          <select v-model="toModify.local">
+           <option v-for="item in locals" :value='item'>{{item}}</option>
+          </select>
+        <div v-if="deleteMod" style="float:right;">
+            <button class="delete" @click="removeLesson(element);"> {{i18n("courses.deleteCourse")}} </button>
+        </div>
+        
+        </div>
         </div>
       </div>
     </div>
@@ -286,6 +412,7 @@ async function setCourses(){
 
 .infosContainer {
   min-width:350px;
+  width:70%;
   padding-bottom:50px;
   border:2px solid black;
   font-size:25px;
@@ -295,29 +422,6 @@ async function setCourses(){
   border-radius:20px;
 }
 
- .containerElement{ 
-    justify-content:center;
-    display:grid;
-    grid-template-columns:38.8% 38.8% 22.4%;
-    grid-template-areas:
-    "name teacher credits"; 
-    column-gap:10px;  }
-  
-  .name {
-    grid-area:name;
-    align-self:center;
-  }
-
-  .teacher{
-    grid-area:teacher;
-    align-self:center;
-  }
-
-  .credits{
-    grid-area:credits;
-    align-self:center;
-  }
-
 .listElement{
  min-width:625px;
   border:2px solid black;
diff --git a/frontend/src/rest/lessonSchedule.js b/frontend/src/rest/lessonSchedule.js
index 148af17..dfa1573 100644
--- a/frontend/src/rest/lessonSchedule.js
+++ b/frontend/src/rest/lessonSchedule.js
@@ -3,8 +3,8 @@ import {restGet,restPatch,restPost,restDelete} from "@/rest/restConsumer.js";
 /**
  * Create a new lesson
  */
-export async function createLesson(course, lessonStart, lessonEnd, lessonType, color, local){
-    return restPost("/lesson", {course: course , lessonStart: lessonStart, lessonEnd: lessonEnd,lessonType:lessonType ,color : color , local : local} )
+export async function createLesson(datas){
+    return restPost("/lesson", datas )
 }
 
 /**
diff --git a/frontend/src/rest/restConsumer.js b/frontend/src/rest/restConsumer.js
index 2ac4cc3..fdb0ad0 100644
--- a/frontend/src/rest/restConsumer.js
+++ b/frontend/src/rest/restConsumer.js
@@ -20,6 +20,10 @@ export async function restDelete(endPoint) {
 	return await _rest(endPoint, {method: "DELETE"});
 }
 
+export async function restDeleteItem(endPoint, data){
+	return await _rest(endPoint, {method: "DELETE", credentials: 'include', body: JSON.stringify(data)});
+}
+
 export async function restPatch(endPoint, data) {
 	return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: JSON.stringify(data)});
 }
@@ -41,8 +45,9 @@ async function _rest(endPoint, config){
 		'Content-Type': 'application/json',
 	});
 	config['headers'] = config['headers'] == null ? headers : config['headers'];
+  console.log(config)
 	return toast.promise(fetch(restURL + endPoint, config),
-		{
+		{ 
 			pending: config['pending'] != null ? config['pending'] : 'pending',
 			error: config['error'] != null ? config['error'] : 'Network Failure...',
 			success: config['success'] != null ? config['success'] : {render(res){
diff --git a/frontend/src/rest/scheduleRest.js b/frontend/src/rest/scheduleRest.js
index 617a237..342d717 100644
--- a/frontend/src/rest/scheduleRest.js
+++ b/frontend/src/rest/scheduleRest.js
@@ -1,4 +1,4 @@
-import {restGet,restPost,restPatch} from "@/rest/restConsumer.js";
+import {restGet, restPost, restPatch, restDelete, restDeleteItem} from "@/rest/restConsumer.js";
 
 export async function getAllSchedule(){
     return restGet('/schedules');
@@ -19,3 +19,12 @@ export async function getCurriculumSchedule(id){
 export async function addLessonToSchedule(id,lessonId){
   return restPost('/schedule/' + id, lessonId)
 }
+
+export async function getSchedule(id){
+  return restGet('/schedule/' + id);
+
+}
+
+export async function deleteLessonFromSchedule(id,lessonId){
+    return restDeleteItem('/schedule/lesson/'+ id, lessonId)
+}
diff --git a/frontend/src/scheduleFunctions.js b/frontend/src/scheduleFunctions.js
index a9a4c95..1815b3b 100644
--- a/frontend/src/scheduleFunctions.js
+++ b/frontend/src/scheduleFunctions.js
@@ -1,4 +1,5 @@
   import {ref} from 'vue'
+
   export function formatDate(date) {
     var d = new Date(date),
         month = '' + (d.getMonth() + 1),
@@ -108,6 +109,7 @@
   
   export function getHoursMinutes(date){
     const d = new Date(date);
-    return d.getHours()+ ":" + d.getMinutes();  
+    let hours = [d.getHours().toString().length == 1 ? "0" + d.getHours().toString() : d.getHours()];
+    return hours+ ":" + d.getMinutes();  
   }