diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ApplicationsController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ApplicationsController.java
index 83c5050..77a713e 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ApplicationsController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ApplicationsController.java
@@ -70,7 +70,8 @@ public class ApplicationsController {
             authorizedApps.add(Applications.StudentsList);}
 
         if (!authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token)){ 
-          authorizedApps.add(Applications.UsersList);}
+          authorizedApps.add(Applications.UsersList);
+          authorizedApps.add(Applications.ManageSchedules);}
         return authorizedApps;
     }
 }
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 81be68a..63d7e24 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonController.java
@@ -44,9 +44,8 @@ public class LessonController {
 
     @GetMapping("/lessons/owned")
     public ResponseEntity<Iterable<HashMap<String,Object>>> getOwnedLessons(@RequestHeader("Authorization") String token){
-        System.out.println(authServ);
+      System.out.println(authServ);
         if (authServ.isNotIn(new Role[]{Role.Admin,Role.Teacher},token)){
-            System.out.println("problem ici");
             return new UnauthorizedResponse<>(null);}
         return new ResponseEntity<>(ProtectionService.lessonsWithoutPassword(lessonServ.findAllOwnedLesson(authServ.getUserFromToken(token))),HttpStatus.OK);
     }
@@ -58,7 +57,6 @@ public class LessonController {
         if(authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
             return new UnauthorizedResponse<>(null);
         Lesson createdLesson = lessonServ.save(lesson);
-
         if(createdLesson==null)
             return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
         return new ResponseEntity<>(ProtectionService.lessonWithoutPassword(createdLesson), HttpStatus.OK);
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 5ee22cc..6cfaa01 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/ScheduleController.java
@@ -12,6 +12,8 @@ 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.Services.LessonService;
 
 import java.util.Map;
 
@@ -20,6 +22,7 @@ import java.util.Map;
 public class ScheduleController {
 
     private final ScheduleService scheduleServ;
+    private final LessonService lessonServ;
 
     private final UserCurriculumService userCurriculumService;
     
@@ -28,12 +31,13 @@ public class ScheduleController {
 
     private final ScheduleLessonService scheduleLessonServ;
 
-    public ScheduleController(ScheduleService scheduleServ, UserCurriculumService userCurriculumService, AuthenticatorService authServ, ScheduleLessonService scheduleLessonServ, CurriculumService curriculumServ) {
+    public ScheduleController(ScheduleService scheduleServ, UserCurriculumService userCurriculumService, AuthenticatorService authServ, ScheduleLessonService scheduleLessonServ, CurriculumService curriculumServ,LessonService lessonServ) {
         this.scheduleServ = scheduleServ;
         this.userCurriculumService = userCurriculumService;
         this.authServ = authServ;
         this.scheduleLessonServ = scheduleLessonServ;
         this.curriculumServ = curriculumServ;
+        this.lessonServ  = lessonServ;
     }
 
     @GetMapping("/schedule/{id}")
@@ -76,4 +80,18 @@ public class ScheduleController {
             return new UnauthorizedResponse<>(null);
         return new ResponseEntity<>(scheduleServ.save(schedule),HttpStatus.OK);
     }
+    @PostMapping("/schedule/{id}")
+    public ResponseEntity<String> postLessonToSchedule(@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.save(new ScheduleLesson( scheduleServ.findById(id), lessonServ.findById(lessonId))))
+            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
+
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
 }
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 328dcb6..05d5eb7 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Services/ScheduleLessonService.java
@@ -23,8 +23,11 @@ public class ScheduleLessonService {
         this.scheduleRepo = scheduleRepo;
     }
 
-    public void save(ScheduleLesson scheduleLesson){
+    public boolean save(ScheduleLesson scheduleLesson){
+        if(scheduleLesson == null)
+          return false;
         scheduleLessonRepo.save(scheduleLesson);
+        return true;
     }
 
     public Schedule getScheduleByCurriculum(Curriculum curriculum){
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Applications.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Applications.java
index 684441a..77e24ca 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Applications.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Applications.java
@@ -17,6 +17,9 @@ public enum Applications {
     // teachers and Secretary authorization
     ManageCourses,
     UsersList,
+    
+    //Secretary authorization
+    ManageSchedules,
 
     // InscriptionService authorization
     Inscription,
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 8370324..67465a8 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Lesson.java
@@ -9,7 +9,7 @@ public class Lesson {
   @GeneratedValue(strategy = GenerationType.AUTO)
   private int lessonID;
 
-  @ManyToOne
+  @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name= "Course")
   private Course course;
 
diff --git a/frontend/public/i18n/EN.txt b/frontend/public/i18n/EN.txt
index e79a8a1..775b412 100644
--- a/frontend/public/i18n/EN.txt
+++ b/frontend/public/i18n/EN.txt
@@ -22,6 +22,7 @@ app.settings=Settings
 app.messages=Messages
 app.forum=Forum
 app.schedules=Schedules
+app.manageSchedules=Manage Schedules
 app.inscription.requests=Inscription Requests
 app.manage.courses=Manage Courses
 app.language=Language
diff --git a/frontend/public/i18n/FR.txt b/frontend/public/i18n/FR.txt
index c5f3ebf..cf1d5ca 100644
--- a/frontend/public/i18n/FR.txt
+++ b/frontend/public/i18n/FR.txt
@@ -22,6 +22,7 @@ app.settings=Options
 app.messages=Messages
 app.forum=Forum
 app.schedules=Horaires
+app.manageSchedules=Gérer les horaires
 app.inscription.requests=Demandes d'Inscription
 app.manage.courses=Gérer les cours
 app.language=Langue
diff --git a/frontend/src/Apps/ManageCourses.vue b/frontend/src/Apps/ManageCourses.vue
index 96bd35b..a9f1f66 100644
--- a/frontend/src/Apps/ManageCourses.vue
+++ b/frontend/src/Apps/ManageCourses.vue
@@ -35,7 +35,6 @@
     let isnull= false;
      
     for(const [key, value] of Object.entries(toAdd)){
-      console.log(toAdd.owner);
       if(value === null){
         isnull=true;
       }
@@ -64,9 +63,6 @@
 
   async function patchCourse(course){
     for (let element in toModify){
-        console.log(toModify,1)
-        console.log(toModify[element],2)
-      
         if (element =="owner" && (toModify[element].regNo != course.owner.regNo)){
           await alterCourse(course.courseId,{owner:toModify[element].regNo});
         }
diff --git a/frontend/src/Apps/ManageSchedule.vue b/frontend/src/Apps/ManageSchedule.vue
new file mode 100644
index 0000000..905e6d7
--- /dev/null
+++ b/frontend/src/Apps/ManageSchedule.vue
@@ -0,0 +1,398 @@
+<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"
+  
+  const trueSchedule = ref()
+  const schedule = ref();
+  const lessonFinder = ref();
+  const curriculum = ref();
+  const allSchedules = await getAllSchedule();
+  const filter = ref("null");
+  const subFilter = ref("null");
+  const lesson = ref();
+  const filters = ["Type","Teacher","Course"];
+  const types = ["TP","TD","Course","Exam"];
+  const locals = ["A0B1","A1B1","A2B1","A0B2"]
+  const teachers = await getTeachers() ;
+  const courses = ref();
+  
+  const createMod = ref(false);
+  const deleteMod = ref(false);
+
+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();
+
+
+
+function invertedFormatDate(date) {
+    var d = new Date(date),
+        month = '' + (d.getMonth() + 1),
+        day = '' + d.getDate(),
+        year = d.getFullYear();
+
+    if (month.length < 2) 
+        month = '0' + month;
+    if (day.length < 2) 
+        day = '0' + day;
+
+    return [year, month, day].join('-');
+  }
+
+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);
+    return new Date(str);
+}
+
+
+
+  const pattern = {
+    "course": null,
+    "day":null,
+    "lessonStart": null,
+    "lessonEnd": null,
+    "lessonType": null,
+    "local": null,
+    "color": null,
+  }
+
+  const lessonBuffer = ref(Object.assign({}, pattern));
+
+async function setCourses(){
+  courses.value = (await getcurriculum(curriculum.value.curriculumId)).courses
+}
+
+  function sortSchedule(){
+    schedule.value =trueSchedule.value.lessons;
+    if(filter.value =="Teacher"){
+      schedule.value = sortByTeacher(schedule.value,subFilter.value);
+
+    }
+    else if(filter.value =="Type"){
+      schedule.value = sortByType(schedule.value,subFilter.value);
+    }
+    else if(filter.value =="Course"){
+      schedule.value = sortByCourse(schedule.value,subFilter.value);
+    }
+  }
+
+  function sortByType(lessons,type){
+    if(type == null){
+      return lessons;
+    }
+    const matrix = [];
+    for (let element in lessons){
+      if(lessons[element].lessonType == type){
+        matrix.push(lessons[element])
+      }
+    }
+    return matrix
+  }
+
+  function sortByCourse(lessons,course){
+    if(course == null){
+      return lessons;
+    }
+    const matrix = [];
+    for (let element in lessons){
+      if(lessons[element].course.courseId == course.courseId){
+        matrix.push(lessons[element])
+      }
+    }
+    return matrix
+  }
+
+  function sortByTeacher(lessons, teacher){
+    if(teacher == null){
+      return lessons;
+    }
+    const matrix = [];
+    for (let element in lessons){
+      if(lessons[element].course.owner.regNo == teacher.regNo){
+        matrix.push(lessons[element])
+      }
+    }
+    return matrix
+  }
+
+    
+  async function changeSchedule(){
+      schedule.value =trueSchedule.value.lessons;
+      curriculum.value = trueSchedule.value.curriculum;
+          
+      courses.value = (await getcurriculum(curriculum.value.curriculumId)).courses;
+      filter.value = "null";
+      subFilter.value = "null"
+  }
+
+  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];
+     }
+    }
+    return null;
+}
+  
+ async function newLesson(){
+    let isnull = false;
+    if (lessonBuffer.value.lessonType != null){
+      lessonBuffer.value.color = colors[lessonBuffer.value.lessonType];
+      for(let element in lessonBuffer.value){
+        if(lessonBuffer.value[element] == null){
+          isnull=true;
+          break;
+        }
+        }
+      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)
+
+        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);
+    trueSchedule.value = null;
+
+  } 
+
+
+</script>
+<template>
+  <div class="body">
+    <div class="listTitle buttonGrid"v-if="!deleteMod && !createMod" >
+      <button class="create" @click="createMod = true;">Create</button>
+      <button class="delete" @click="deleteMod = true;">Delete</button>
+    </div>
+    <div v-if="createMod">
+      <form class="listElement" style="width:40%; margin:0 auto 0 auto;">
+        <div style="margin-bottom:20px;">
+         Schedule : 
+          <select @change="setCourses()"v-model="curriculum">
+            <option v-for="item in allSchedules" :value='item.curriculum'>{{item.curriculum.option}}</option>
+          </select>
+        </div>
+        <div style="margin-bottom:20px;">
+          Lesson : 
+         <select v-if="curriculum != null" v-model="lessonBuffer.course">
+            <option v-for="item in courses" :value='item'>{{item.title}}</option>
+          </select>
+        </div>
+        <div style="margin-bottom:20px;">
+          Day:
+          <input type="date" :min="minDate" :max="maxDate" v-model="lessonBuffer.day">
+        </div>
+        <div style="margin-bottom:20px;">
+          Start: 
+          <input v-model="lessonBuffer.lessonStart" type="time" min="08:00" max="18:00" required />
+        </div>
+        <div style="margin-bottom:20px;">
+          End: 
+          <input v-model="lessonBuffer.lessonEnd" type="time" min="10:00" max="20:00" required />
+        </div>
+        <div style="margin-bottom:20px;">
+          Type: 
+          <select v-model="lessonBuffer.lessonType">
+           <option v-for="item in types" :value='item'>{{item}}</option>
+          </select>
+        </div>
+        <div style="margin-bottom:20px;">
+          Local: 
+          <select v-model="lessonBuffer.local">
+           <option v-for="item in locals" :value='item'>{{item}}</option>
+          </select>
+
+
+        </div>
+        <div></div>
+
+
+
+      <button class="create" @click="createMod=!createMod; newLesson();"> {{i18n("courses.confirm")}} </button>
+      <button style="float:right;" @click="createMod=!createMod">{{i18n("courses.back")}}</button>
+      </form>
+    </div>
+
+
+
+    <div v-if="!deleteMod && !createMod">
+      <select @change="changeSchedule()" v-model="trueSchedule">
+        <option v-for="item in allSchedules" :value='item'>{{item.curriculum.option}}</option>
+      </select>
+      <select v-if="schedule != null" @change="subFilter = 'null'" v-model="filter">
+        <option :value ="null">No Filter</option>
+        <option v-for="item in filters" :value="item">{{item}}</option>
+      </select>
+      <select @change="sortSchedule()" v-if="filter == 'Teacher'" v-model="subFilter">
+        <option :value ="null">No Filter</option>
+        <option v-for="item in teachers" :value=item>{{item.lastName}}</option>
+      </select>
+      <select @change="sortSchedule()"  v-if="filter == 'Course'" v-model="subFilter">
+        <option :value ="null">No Filter</option>
+        <option v-for="item in courses" :value=item>{{item.title}}</option>
+      </select>
+      <select @change="sortSchedule()" v-if="filter == 'Type'" v-model="subFilter">
+        <option :value ="null">No Filter</option>
+        <option v-for="item in types" :value='item'>{{item}}</option>
+      </select>
+
+    </div>
+    <div v-for="element in schedule" style="width:50%;margin-left:auto; margin-right:auto;" >
+      <div class="listElement">
+        <div class="containerElement">
+          <div>
+          {{element.course.title}}
+          </div>
+          <div>{{formatDate(element.lessonStart)}}</div>
+          <div>{{getHoursMinutes(element.lessonStart)}}-{{getHoursMinutes(element.lessonEnd)}}</div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+
+</template>
+<style scoped>
+.body {
+    width:100%;
+    margin-top:3.5%;
+  }
+
+.infosContainer {
+  min-width:350px;
+  padding-bottom:50px;
+  border:2px solid black;
+  font-size:25px;
+  color:white;
+  padding:20px;
+  background-color:rgb(50,50,50);
+  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;
+  font-size:25px;
+  color:white;
+  padding:20px;
+  background-color:rgb(50,50,50);
+  border-radius:20px;
+  margin-bottom:10px;
+
+}
+
+.modify{
+  font-size:25px;
+  padding:10px 10px 10px 10px;
+  background-color: rgb(239,60,168);
+  cursor: pointer;
+  border:none;
+  border-radius:15px;
+}
+
+  input, select{
+  padding:10px 10px 10px 10px; 
+  font-size:25px;
+  cursor: pointer;
+  border:none;
+  border-radius:15px;
+  }
+  button{
+    font-size:15px;
+     height:50px;
+     width:100px;
+    border:none;
+    border-radius:20px;
+
+  }
+
+  .buttonGrid{
+    display:grid;
+    grid-template-columns: auto auto;
+    column-gap:50px;
+    grid-template-areas:
+      "create delete";
+  }
+
+  .create{
+    grid-area:create;
+    
+    background-color:rgb(0,200,0);
+
+  }
+
+  .delete{
+    grid-area:delete;
+    background-color:rgb(200,0,0);
+  }
+
+  .listTitle{
+    min-width:380px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width:25%;
+    margin-left:auto;
+    margin-right:auto;
+    border:2px solid black;
+    font-size:25px;
+    color:white;
+    padding:20px;
+    background-color:rgb(50,50,50);
+    border-radius:20px;
+    margin-bottom:10px;
+
+    button:hover{
+      opacity:0.8;
+    }
+}
+</style>
diff --git a/frontend/src/Apps/Schedule.vue b/frontend/src/Apps/Schedule.vue
index 8d14c15..7c38cf4 100644
--- a/frontend/src/Apps/Schedule.vue
+++ b/frontend/src/Apps/Schedule.vue
@@ -22,6 +22,8 @@
   const ownSchedule = ref();
   const filter = ref("null");
   const subFilter = ref("null");
+  const focus = ref();
+  const focusLessons = ref();
   let user;
   
   if(log){
@@ -102,6 +104,18 @@
 
   }
 
+  function lessonFocus(element){
+    focus.value = element;
+    var lessonsList = [];
+    for (let element in schedule.value){
+      if (schedule.value[element].course.courseId == focus.value.course.courseId){
+        lessonsList.push(schedule.value[element]);  
+      }
+    }
+    focusLessons.value = lessonsList;
+  }
+
+
   function dateOfMonth(i){
 
     return new Date(currentDate.value.getFullYear(),currentDate.value.getMonth(),i);
@@ -109,7 +123,6 @@
 
   function sortSchedule(){
     schedule.value =trueSchedule.value.lessons;
-    console.log(filter.value)
     if(filter.value =="Teacher"){
       schedule.value = sortByTeacher(schedule.value,subFilter.value);
       scheduleByWeek.value = sundayToTheEnd(matrixFromList(schedule.value,mondayOfWeek.value));
@@ -136,6 +149,10 @@
       value = 1;
       counter=0;
     }
+
+    if(focus.value != null){
+      lessonFocus(focus.value)
+    }
   }
 
   function sortByType(lessons,type){
@@ -161,7 +178,7 @@
     }
     const matrix = [];
     for (let element in lessons){
-      if(lessons[element].course.title == course.title){
+      if(lessons[element].course.courseId == course.courseId){
         matrix.push(lessons[element])
       }
     }
@@ -185,7 +202,7 @@
   async function changeSchedule(){
       schedule.value =trueSchedule.value.lessons;
       curriculum.value = trueSchedule.value.curriculum;
-      
+          
       scheduleByWeek.value = sundayToTheEnd(matrixFromList(schedule.value,mondayOfWeek.value));
       month.value = monthFromList(schedule.value,currentDate.value.getMonth());
       value = 1;
@@ -193,6 +210,8 @@
       courses.value = (await getcurriculum(curriculum.value.curriculumId)).courses;
       filter.value = "null";
       subFilter.value = "null"
+      focus.value = null;
+      focusLessons.value = null;
   }
   
   function changeWeek(i){
@@ -271,13 +290,14 @@
       <div v-if="scheduleByWeek != null " class="courseGrid">
         <div class="dayCourse" v-for="element in scheduleByWeek">
           <template v-for="i,index in element.length">
-            <div class="course" v-bind:style="{background:element[index].color,
+              <div class="course" @click.native="lessonFocus(element[index])" v-bind:style="{background:element[index].color,
+
               height:((getDifferenceTime(element[index].lessonEnd,element[index].lessonStart)/7.2)-0.5)+'%', top:((getMarginTop(element, index, index-1)/7.20))+'%'}">      
               <div class="hourStart">
                 {{getHoursMinutes(element[index].lessonStart)}}
 
               </div>
-              <div class="infos" v-bind:style="{}">
+              <div class="infos">
                 <p class="childInfos">{{element[index].course.title}}</p>
                 <p class="childInfos">{{element[index].local}}</p>
                 <p class="childInfos">{{element[index].lessonType}}</p>
@@ -313,7 +333,7 @@
               <div v-if="isAValue()" style="top:0; right:2%; border-radius:20%;color:rgb(200,200,200) ; position:absolute;z-index:50;">{{value-shift}}</div>          
               <div v-if="month != null" style="overflow-y:scroll; height:100%;" >
               <template v-for="element in month[value-shift]">
-              <div class="course" v-bind:style="{background:element.color, height:100+'%'}">
+              <div class="course" @click.native="lessonFocus(element)" v-bind:style="{background:element.color, height:100+'%'}">
                   
               <div class="hourStart">
                 {{getHoursMinutes(element.lessonStart)}}
@@ -349,7 +369,7 @@
 </div>
           <template v-if="scheduleByWeek != null">
           <div class="body" style="background-color:#353535;" >
-          <div  class="containerList" v-for="n,j in scheduleByWeek[index].length">    
+          <div  class="containerList"v-for="n,j in scheduleByWeek[index].length"  @click.native="lessonFocus(scheduleByWeek[index][j])" >    
             <div class="colorList" v-bind:style="{background:scheduleByWeek[index][j].color}"></div>
             <div class="hoursList">{{ getHoursMinutes(scheduleByWeek[index][j].lessonStart)}}-{{getHoursMinutes(scheduleByWeek[index][j].lessonEnd)}}</div>
             <div class="titleList">{{scheduleByWeek[index][j].course.title}}</div>
@@ -374,7 +394,7 @@
 </div>
           <template v-if="scheduleByWeek != null">
           <div  class="body" style="background-color:#353535;" >
-          <div  class="containerList" v-for="n,j in month[i].length">    
+          <div  class="containerList"  v-for="n,j in month[i].length" @click.native="lessonFocus( month[i][j])">    
             <div class="colorList" v-bind:style="{background:month[i][j].color}"></div>
             <div class="hoursList">{{ getHoursMinutes(month[i][j].lessonStart)}}-{{getHoursMinutes(month[i][j].lessonEnd)}}</div>
             <div class="titleList">{{month[i][j].course.title}}</div>
@@ -391,11 +411,9 @@
       </div>
     </div>
 
-
-
-
-
     <div class="options">
+      <div class="settings">
+      <div class="body"  style="background-color:rgb(50,50,50);margin:5% 0 5% 0;">Settings</div>
       <select @change="changeSchedule()" v-model="trueSchedule">
         <option v-for="item in allSchedules" :value='item'>{{item.curriculum.option}}</option>
       </select>
@@ -421,9 +439,27 @@
         <option :value ="null">No Filter</option>
         <option v-for="item in types" :value='item'>{{item}}</option>
       </select>
- 
+      </div>
+      <div v-if="focus != null" class="moreInfos">
+        <div class="body" style="background-color:rgb(50,50,50); height:10%; font-size:2em;" >More infos</div>
+        <div class="body" :style="{background:focus.color,height:auto,fontSize:1.2+'em', alignItems:center}">
+          {{focus.course.title}}</div>
 
+        <div class="body"  style="background-color:rgb(50,50,50);">Teacher(s)</div>
+        <div class="body" style="background-color:#484848;">
+          <div>{{focus.course.owner.lastName}}</div>
+          <div v-for="element in focus.course.owner.assistants">
+            {{element.lastName}}
+          </div>
+        </div>
+        <div class="body"  style="background-color:rgb(50,50,50);">Lessons</div>
+       <div class="body" style="background-color:#484848;"v-for="lesson in focusLessons">
+          {{ getHoursMinutes(lesson.lessonStart)}}-{{getHoursMinutes(lesson.lessonEnd)}}
+          {{ lesson.local}}
+          {{lesson.lessonType}}
+        </div>  
 
+      </div>
     </div>
   </div>
 </template>
@@ -448,13 +484,36 @@
     background-color:rgba(255,255,255,0.1);    
   }
   .options{
-    display:flex;
-    flex-direction:column;
+    display:grid;
     border-radius:20px;
     grid-area:options;
     background-color:rgba(255,255,255,0.1);
     width:100%;
     height:85vh;
+
+    grid-template-rows:30% 70%;
+  }
+
+  .settings{
+    display:flex;
+    flex-direction:column;
+    width:80%;
+    margin:0 auto 0 auto;
+  }
+  
+
+  .settings select,.settings button{
+    margin-top:2%;
+    width:100%;
+  }
+
+  .moreInfos{
+    width:90%;
+    display:flex;
+    flex-direction:column;
+    margin:0 auto 0 auto;
+    overflow-y:scroll;
+    overflow-x:hidden;
   }
 
   .table{
@@ -607,9 +666,10 @@
 .body {
     color:white;
     margin-top:2%;
-    width:100%;
+    width:98%;
     border:2px solid black;
     border-radius:9px;
+    text-align:center;
   }
 
 
diff --git a/frontend/src/rest/apps.js b/frontend/src/rest/apps.js
index 2672686..0302405 100644
--- a/frontend/src/rest/apps.js
+++ b/frontend/src/rest/apps.js
@@ -10,9 +10,11 @@ import Courses from "@/Apps/ManageCourses.vue"
 import Users from "@/Apps/UsersList.vue"
 import Students from "@/Apps/StudentsList.vue"
 import Schedule from "@/Apps/Schedule.vue"
+import ManageSchedule from "@/Apps/ManageSchedule.vue"
 
 const apps = {
 		'/schedule': Schedule,
+		'/manage-schedule': ManageSchedule,
 		'/login': LoginPage,
 		'/inscription': Inscription,
 		'/profil': Profil,
@@ -26,10 +28,12 @@ const appsList = {
 		'Notification': { path: '#/notifs', icon: 'fa-bell', text: i18n("app.notifications") },
 		'Forum': { path: '#/forum', icon: 'fa-envelope', text: i18n("app.forum") },
 		'Schedule': { path: '#/schedule', icon: 'fa-calendar-days', text: i18n("app.schedules") },
+		'ManageSchedules': { path: '#/manage-schedule', icon: 'fa-calendar-days', text: i18n("app.manageSchedules")},
 		'Inscription': { path: '#/inscription', icon: 'fa-users', text: i18n("app.inscription.requests") },
 		'ManageCourses': { path: '#/manage-courses', icon: 'fa-book', text: i18n("app.manage.courses") },
 		'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")},
 		'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")},
+		
 }
 
 const currentPath = ref(window.location.hash)
diff --git a/frontend/src/rest/lessonSchedule.js b/frontend/src/rest/lessonSchedule.js
index 154b0df..148af17 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, start, end, color, local){
-    return restPost("/lesson", {course: course , start: start, end: end, color : color , local : local} )
+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} )
 }
 
 /**
@@ -62,5 +62,5 @@ export async function getOwnedLessons(){
  *  - assistants: should be a list and will replace all assistants
  */
 export async function alterLesson(id, changes){
-    return restPatch("/course/" + id, changes);
+    return restPatch("/lesson/" + id, changes);
 }
diff --git a/frontend/src/rest/scheduleRest.js b/frontend/src/rest/scheduleRest.js
index d7abca8..617a237 100644
--- a/frontend/src/rest/scheduleRest.js
+++ b/frontend/src/rest/scheduleRest.js
@@ -15,3 +15,7 @@ export async function createSchedule(curriculum) {
 export async function getCurriculumSchedule(id){
   return restGet('/schedule/curriculum/' + id)
 }
+
+export async function addLessonToSchedule(id,lessonId){
+  return restPost('/schedule/' + id, lessonId)
+}
diff --git a/frontend/src/scheduleFunctions.js b/frontend/src/scheduleFunctions.js
index 0db5e75..a9a4c95 100644
--- a/frontend/src/scheduleFunctions.js
+++ b/frontend/src/scheduleFunctions.js
@@ -67,8 +67,6 @@
   }
   
   export function monthFromList(list,month){
-    console.log(month)
-    console.log(list)
     const beginning = getFirstDay(month);
     const matrix = new Array(lastDateOfMonth(month))
     for (let i = 0; i < matrix.length; i++) {