diff --git a/sprints/04.md b/sprints/04.md
index 71c1efef7a40f3448fc6ac57a15bb9c06d913d32..ff8e0b40b9688ea8b2ad07393b9b0b2c9ccd89e0 100644
--- a/sprints/04.md
+++ b/sprints/04.md
@@ -10,4 +10,26 @@
 - Internationalisation
 - Ergonomie
 - Factorisation du code
-- Réorganiser les vues
\ No newline at end of file
+- Réorganiser les vues
+
+## Revue
+
+- Réglage de bugs
+- Suppression d'occurences d'événements récurrents
+- Amélioration du comportement de la recherche
+- Internationalisation (Français/Anglais)
+- Retravaille de l'ergonomie
+- Factorisation du code
+- Réorganiser les vues
+
+### Ce qui a fonctionné
+
+- Tous les objectifs du sprint ont été atteints
+
+### Ce qui n'a pas fonctionné
+
+- Toujours des problèmes d'ergonomie
+
+### Ce qui sera amélioré
+
+- Rien. La dynamique de l'équipe est bonne
diff --git a/src/package.json b/src/package.json
index 29e0ed2c03cdf3d80c90e67bdcab6b76525bc24f..1da6ec4892b45e360d52279a62d01d714ebae431 100644
--- a/src/package.json
+++ b/src/package.json
@@ -17,6 +17,7 @@
     "express": "^4.21.1",
     "jsonwebtoken": "^9.0.2",
     "morgan": "^1.10.0",
+    "node-polyglot": "^2.6.0",
     "uuid": "^10.0.0"
   }
 }
diff --git a/src/public/css/eventAddMenu.css b/src/public/css/eventAddMenu.css
index 4211ba4812df8dfbe4ef4912d5b4919654b972f6..12d964d7271fb8ca96f491b1b7d571c256ef0ca8 100644
--- a/src/public/css/eventAddMenu.css
+++ b/src/public/css/eventAddMenu.css
@@ -54,12 +54,6 @@
   width: 100%;
 }
 
-}
-
-#weekDays input[type="checkbox"] {
-  display: none;
-}
-
 .day-label {
   width: 30px;
   height: 30px;
@@ -67,7 +61,7 @@
   display: flex;
   justify-content: space-between;
   align-items: center;
-  font-size: 18px;
+  font-size: 13px;
   font-weight: bold;
   cursor: pointer;
   background-color: #f0f0f0;
diff --git a/src/public/css/styles.css b/src/public/css/styles.css
index c6fd9bf724720209c2c65a708b25815782ec79f1..84f67d07b50541f9e76c50119bbd1d39bbdccb91 100644
--- a/src/public/css/styles.css
+++ b/src/public/css/styles.css
@@ -687,3 +687,66 @@ header {
     border-radius: 6px;
     font-weight: bold;
 }
+
+.logo-menu {
+    display: flex;
+    align-items: center;
+}
+
+.language-selector {
+    margin-left: 25px;
+    position: relative;
+    display: inline-block;
+    width: 100px;
+    height: 40px;
+    border-radius: 15px;
+    background-color: #ddd;
+    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+    overflow: hidden;
+    cursor: pointer;
+}
+
+.language-label {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    position: relative;
+    width: 100%;
+    height: 100%;
+    cursor: pointer;
+}
+
+.language-selector input {
+    opacity: 0;
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    z-index: -1;
+}
+
+.language-toggle {
+    position: absolute;
+    top: 0;
+    width: 50%;
+    height: 100%;
+    border-radius: 15px;
+    transition: all 0.3s ease-in-out;
+}
+
+.language-flag {
+    position: relative;
+    width: 24px;
+    height: 24px;
+    background-size: cover;
+    pointer-events: none;
+}
+
+.language-flag.fr {
+    left: 10px;;
+    background-image: url('/images/fr_flag.png');
+}
+
+.language-flag.en {
+    right: 10px;
+    background-image: url('/images/en_flag.png');
+}
\ No newline at end of file
diff --git a/src/public/images/en_flag.png b/src/public/images/en_flag.png
new file mode 100644
index 0000000000000000000000000000000000000000..d52670f5e8a24c891aec2ca562e0fa6c9f8eda38
Binary files /dev/null and b/src/public/images/en_flag.png differ
diff --git a/src/public/images/fr_flag.png b/src/public/images/fr_flag.png
new file mode 100644
index 0000000000000000000000000000000000000000..28a7721e366446a4f8abcf56032f263b0d6e9117
Binary files /dev/null and b/src/public/images/fr_flag.png differ
diff --git a/src/public/js/agenda.js b/src/public/js/agenda.js
index 2749f818ea9723bc68fbabc482e865bbae9db3c2..6c2a78b94e84b1374ac47cc4fe108716f86f6dc1 100644
--- a/src/public/js/agenda.js
+++ b/src/public/js/agenda.js
@@ -343,13 +343,23 @@ async function importAgenda() {
 
             // Add each event to the newly created agenda
             for (const event of events) {
-                await fetch(`/agendas/${newAgenda.id}/addEvent`, {
-                    method: 'POST',
-                    headers: {
-                        'Content-Type': 'application/json',
-                    },
-                    body: JSON.stringify(event)
+              if(event.rrule !== undefined){
+                  await fetch(`/agendas/${newAgenda.id}/addRecurringEvent`, {
+                      method: "POST",
+                      headers: {
+                          "Content-Type": "application/json"
+                      },
+                      body: JSON.stringify(event)
+                  });
+              } else {
+                  await fetch(`/agendas/${newAgenda.id}/addEvent`, {
+                      method: 'POST',
+                      headers: {
+                          'Content-Type': 'application/json',
+                      },
+                      body: JSON.stringify(event)
                 });
+              }
             }
 
             await refreshAgendas();
@@ -549,7 +559,6 @@ async function refreshEvents() {
         const visibleAgendas = agendas.filter(agenda => agendaVisibility[agenda.id]);
 
         if (visibleAgendas.length === 0) {
-            console.log("No visible agendas to display.");
             return;
         }
 
diff --git a/src/public/js/calendar.js b/src/public/js/calendar.js
index 83254e05ff197f35eee1fb78187dc6ddc9373342..15eed793cb5e8c9b585508e7f4e90f128dbfbfa7 100644
--- a/src/public/js/calendar.js
+++ b/src/public/js/calendar.js
@@ -1,16 +1,21 @@
 let calendarEl = document.getElementById('calendar');
 let calendar = new FullCalendar.Calendar(calendarEl, {
     initialView: 'dayGridMonth',
-    locale: 'en',
+    locale: 'fr',
     headerToolbar: {
         left: 'prev,next today',
         center: 'title',
-        right: 'dayGridMonth,timeGridWeek,timeGridDay'
+        right: 'timeGridDay,timeGridWeek,dayGridMonth'
+    },
+    buttonText: {
+        year: 'Année',
+        month: 'Mois',
+        week: 'Semaine',
+        day: 'Jour'
     },
     events: [],
     eventClick: function(info) {
         let event = info.event;
-        console.log(event);
         if (event._def.recurringDef !== null){
             document.getElementById('editRecurringEventId').value = event.id;
             document.getElementById('editRecurringEventName').value = event.title;
@@ -47,7 +52,7 @@ let calendar = new FullCalendar.Calendar(calendarEl, {
     },
     dateClick: function(info) {
         // Vérifier si on est connecte pour ajouter l'event
-        if(document.querySelector('.login-btn').innerHTML === "Log out"){
+        if(document.querySelector('.login-btn').innerHTML === "Log out" || document.querySelector('.login-btn').innerHTML === "Déconnexion" ){
         openAddAppointmentModal(info.dateStr); // Passe la date au format YYYY-MM-DD
         }
     },
@@ -91,7 +96,7 @@ document.addEventListener('DOMContentLoaded', function() {
     });
     refreshAgendas();
     refreshEvents();
-    if(document.querySelector('.login-btn').innerHTML === "Log out"){
+    if(document.querySelector('.login-btn').innerHTML === "Log out" || document.querySelector('.login-btn').innerHTML === "Déconnexion"){
         document.getElementById('calendarButton').addEventListener('click', openAgendaAddMenu);
         document.getElementById('addButton').addEventListener('click', openEventAddMenu);
         document.querySelector('.menu-icon').addEventListener('click', openSideMenu);
@@ -404,3 +409,29 @@ document.getElementById("createEventForm").addEventListener("submit", function(e
     closeAddAppointmentModal();
 });
 
+// Function to update the format depending on the selected language
+function setCalendarFormat(languageCode) {
+    calendar.setOption('locale', languageCode);
+
+    const frenchButtons = {
+        today: 'Aujourd\'hui',
+        year: 'Année',
+        month: 'Mois',
+        week: 'Semaine',
+        day: 'Jour'
+    };
+
+    const englishButtons = {
+        today: 'Today',
+        year: 'Year',
+        month: 'Month',
+        week: 'Week',
+        day: 'Day'
+    };
+
+    if (languageCode === 'fr') {
+        calendar.setOption('buttonText', frenchButtons);
+    } else if (languageCode === 'en') {
+        calendar.setOption('buttonText', englishButtons);
+    }
+}
\ No newline at end of file
diff --git a/src/public/js/internationalization.js b/src/public/js/internationalization.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1346c0f139bcae4fe1a8f839e4ff78b06ace91a
--- /dev/null
+++ b/src/public/js/internationalization.js
@@ -0,0 +1,214 @@
+var translations = {
+    en: {
+        menu_button: '☰',
+        logo_text: '4genda',
+        search_placeholder: 'Search for an event',
+        username_placeholder: 'Username',
+        password_placeholder: 'Password',
+        confirm_password_placeholder: 'Confirm password',
+        agenda_name_placeholder: 'Name of the agenda',
+        agenda_description_placeholder: 'Description of the agenda',
+        add_user_placeholder: 'Username',
+        event_title_placeholder: 'Title',
+        event_description_placeholder: 'Description',
+        event_name_placeholder: 'Name',
+        search_name: 'Name',
+        search_description: 'Description',
+        search_date: 'Date interval',
+        logout: 'Log out',
+        login_button: 'Log in',
+        agendas: 'Agendas',
+        register: 'Register',
+        login: 'Log in',
+        agenda_name: 'Name:',
+        agenda_description: 'Description:',
+        users: 'Users:',
+        add_user_button: 'Add user',
+        show_agenda: 'Show the agenda',
+        modify_agenda: 'Modify the agenda',
+        agenda_select: 'Agenda',
+        cancel_button: 'Cancel',
+        delete_agenda_button: 'Delete the agenda',
+        export_button: 'Export',
+        save_button: 'Save',
+        add_event: 'Add an event',
+        event_title: 'Title',
+        description: 'Description',
+        start_date: 'Start',
+        end_date: 'End',
+        select_agenda: 'Select an agenda',
+        submit_button: 'Submit',
+        modify_event: 'Modify an event',
+        event_name: 'Name',
+        event_description: 'Description',
+        event_start_date: 'Start',
+        event_end_date: 'End',
+        delete_event: 'Delete',
+        dates_first_occurrence_of_event: 'Dates of the first occurrence of the event:',
+        first_day_of_event: 'First day of the event:',
+        last_day_of_event: 'Last day of the event:',
+        starting_time: 'Starting time',
+        ending_time: 'Ending time',
+        weekly_repeat: 'Repeat on',
+        sunday_abbr: 'Sun.',
+        monday_abbr: 'Mon.',
+        tuesday_abbr: 'Tue.',
+        wednesday_abbr: 'Wed.',
+        thursday_abbr: 'Thu.',
+        friday_abbr: 'Fri.',
+        saturday_abbr: 'Sat.',
+        from_date: 'From',
+        to_date: 'To',
+        monthly_repeat: 'Repeat in',
+        january_abbr: 'Jan.',
+        february_abbr: 'Feb.',
+        march_abbr: 'Mar.',
+        april_abbr: 'Apr.',
+        may_abbr: 'May',
+        june_abbr: 'June',
+        july_abbr: 'July',
+        august_abbr: 'Aug.',
+        september_abbr: 'Sept.',
+        october_abbr: 'Oct.',
+        november_abbr: 'Nov.',
+        december_abbr: 'Dec.',
+        import_agenda: 'Import an agenda',
+        import_button: 'Import',
+        exceptional_event_button: 'Exceptional event',
+        recurring_event_button: 'Recurring event',
+        delete_occurrence_button: 'Delete occurrence',
+        delete_event_button: 'Delete event',
+        add_recurring_event: 'Add a recurrent event',
+        event_type: 'Event type',
+        daily_event: 'Daily',
+        weekly_event: 'Weekly',
+        monthly_event: 'Monthly',
+        yearly_event: 'Yearly',
+        create_agenda: 'Create an agenda',
+        create_agenda_button: 'Create an agenda',
+        create_button: 'Create',
+        recurrence: 'Recurrence'
+    },
+    fr: {
+        menu_button: '☰',
+        logo_text: '4genda',
+        search_placeholder: 'Rechercher un événement',
+        username_placeholder: 'Utilisateur',
+        password_placeholder: 'Mot de passe',
+        confirm_password_placeholder: 'Confirmation du mot de passe',
+        agenda_name_placeholder: 'Nom de l\'agenda',
+        agenda_description_placeholder: 'Description de l\'agenda',
+        add_user_placeholder: 'Ajouter un utilisateur',
+        event_title_placeholder: 'Intitulé',
+        event_description_placeholder: 'Description',
+        event_name_placeholder: 'Nom',
+        search_name: 'Nom',
+        search_description: 'Description',
+        search_date: 'Intervalle de temps',
+        logout: 'Déconnexion',
+        login_button: 'Se connecter',
+        agendas: 'Agendas',
+        register: 'S\'inscrire',
+        login: 'Se connecter',
+        agenda_name: 'Nom :',
+        agenda_description: 'Description :',
+        users: 'Utilisateurs :',
+        add_user_button: 'Ajouter',
+        show_agenda: 'Afficher l\'agenda',
+        modify_agenda: 'Modifier l\'agenda',
+        agenda_select: 'Agenda',
+        cancel_button: 'Annuler',
+        delete_agenda_button: 'Supprimer l\'agenda',
+        export_button: 'Exporter',
+        save_button: 'Sauvegarder',
+        add_event: 'Ajouter un événement',
+        event_title: 'Intitulé',
+        description: 'Description',
+        start_date: 'Date de début',
+        end_date: 'Date de fin',
+        select_agenda: 'Sélectionner un agenda',
+        submit_button: 'Soumettre',
+        modify_event: 'Modifier un événement',
+        event_name: 'Nom',
+        event_description: 'Description',
+        event_start_date: 'Début',
+        event_end_date: 'Fin',
+        delete_event: 'Supprimer',
+        dates_first_occurrence_of_event: 'Dates de la première occurrence de l\'événement :',
+        first_day_of_event: 'Premier jour de l\'événement :',
+        last_day_of_event: 'Dernier jour de l\'événement :',
+        starting_time: 'Heure de début',
+        ending_time: 'Heure de fin',
+        weekly_repeat: 'Répéter les',
+        sunday_abbr: 'Dim.',
+        monday_abbr: 'Lun.',
+        tuesday_abbr: 'Mar.',
+        wednesday_abbr: 'Mer.',
+        thursday_abbr: 'Jeu.',
+        friday_abbr: 'Ven.',
+        saturday_abbr: 'Sam.',
+        from_date: 'De',
+        to_date: 'À',
+        monthly_repeat: 'Répéter en',
+        january_abbr: 'Janv.',
+        february_abbr: 'Févr.',
+        march_abbr: 'Mars',
+        april_abbr: 'Avril',
+        may_abbr: 'Mai',
+        june_abbr: 'Juin',
+        july_abbr: 'Juil.',
+        august_abbr: 'Août',
+        september_abbr: 'Sept.',
+        october_abbr: 'Oct.',
+        november_abbr: 'Nov.',
+        december_abbr: 'Déc.',
+        import_agenda: 'Importer un agenda',
+        import_button: 'Importer',
+        exceptional_event_button: 'Événement exceptionnel',
+        recurring_event_button: 'Événement récurrent',
+        delete_occurrence_button: 'Supprimer l\'occurrence',
+        delete_event_button: 'Supprimer l\'événement',
+        add_recurring_event: 'Ajouter un événement récurrent',
+        event_type: 'Type de l\'événement',
+        daily_event: 'Quotidien',
+        weekly_event: 'Hebdomadaire',
+        monthly_event: 'Mensuel',
+        yearly_event: 'Annuel',
+        create_agenda: 'Créer un agenda',
+        create_agenda_button: 'Créer un agenda',
+        create_button: 'Créer',
+        recurrence: 'Récurrence'
+    }
+};
+
+// Initialize Polyglot with default language (French)
+var polyglot = new Polyglot({ phrases: translations['fr'] });
+
+// Set the language dynamically based on user selection
+function setLanguage(language) {
+    localStorage.setItem('selectedLanguage', language);
+    updateLanguageToggle(language);
+    document.getElementById('language-toggle-checkbox').checked = (language === 'en');
+    polyglot.replace(translations[language]);
+
+    document.querySelectorAll('[data-translate]').forEach(function(element) {
+        var key = element.getAttribute('data-translate');
+        if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
+            element.placeholder = polyglot.t(key);
+        } else {
+            element.textContent = polyglot.t(key);
+        }
+    });
+}
+
+// Update the position of the language toggle based on selected language
+function updateLanguageToggle(language) {
+    const toggle = document.querySelector('.language-toggle');
+    if (language === 'en') {
+        toggle.style.left = '50%';
+        toggle.style.backgroundColor = '#00a015';
+    } else {
+        toggle.style.left = '0';
+        toggle.style.backgroundColor = '#00a015';
+    }
+}
\ No newline at end of file
diff --git a/src/public/js/search.js b/src/public/js/search.js
index 46a03a5816c679283ba5d501f6afa6d52e682e83..366a02b77ef5f9b11c1f2674ce3332f780387fbc 100644
--- a/src/public/js/search.js
+++ b/src/public/js/search.js
@@ -53,7 +53,7 @@ function search() {
             if (!searchIntervalStart.value) return;
             const startDate = new Date(searchIntervalStart.value);
             const endDate = searchIntervalEnd.value ? new Date(searchIntervalEnd.value) : null;
-            matchingEvents = getEventsInInterval(startDate, endDate);
+            matchingEvents = getEventsInInterval(loadedEvents, startDate, endDate);
             break;
     }
     matchingEvents.sort((a, b) => new Date(a.startDate) - new Date(b.startDate));
@@ -61,10 +61,19 @@ function search() {
     matchingEvents.forEach((event) => {
         addEventInSearchResults(event);
     });
+
+    const eventsFromToday = getEventsInInterval(matchingEvents, new Date(), null);
+    if (eventsFromToday.length > 0) {
+        const firstEventFromToday =  eventsFromToday[0]
+        // Scroll to the first event from today and align to top
+        const eventElement = document.getElementById("search-result-" + firstEventFromToday.id);
+        eventElement.style.backgroundColor = '#fffadf';
+        eventElement.scrollIntoView({behavior: "instant", block: "center"});
+    }
 }
 
-function getEventsInInterval(startDate, endDate) {
-    return loadedEvents.filter((event) => {
+function getEventsInInterval(events, startDate, endDate) {
+    return events.filter((event) => {
         const eventStartDate = new Date(event.startDate);
         if (!endDate) return eventStartDate >= startDate;
         return eventStartDate >= startDate && eventStartDate <= endDate;
@@ -77,6 +86,7 @@ function addEventInSearchResults(event) {
 
 function createSearchResult(event) {
     let eventResult = document.createElement('div');
+    eventResult.id = "search-result-" + event.id;
     eventResult.classList.add('search-result');
     eventResult.style.width = searchResults.offsetWidth + "px";
     let eventName = document.createElement('span');
diff --git a/src/views/index.ejs b/src/views/index.ejs
index 4dcb1d3019821830e1b62c35d48ef3427163cf23..476f4e1b2ad37f49e5e68d7eff44192117242899 100644
--- a/src/views/index.ejs
+++ b/src/views/index.ejs
@@ -1,5 +1,6 @@
 <!DOCTYPE html>
 <html lang="fr">
+
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -10,54 +11,70 @@
     <link rel="stylesheet" href="css/eventAddMenu.css">
     <!-- Recurring event -->
     <link rel="stylesheet" href="css/recurringEvent.css">
+    <link rel="stylesheet" href="css/recurringEvent.css">
     <!-- Agenda add menu -->
     <link rel="stylesheet" href="css/agendaAddMenu.css">
     <!-- FullCalendar JavaScript -->
     <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.9/index.global.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.9/locales/all.global.min.js"></script>
     <!-- rrule lib -->
     <script src='https://cdn.jsdelivr.net/npm/rrule@2.6.4/dist/es5/rrule.min.js'></script>
     <!-- rrule-to-fullcalendar connector -->
     <script src='https://cdn.jsdelivr.net/npm/@fullcalendar/rrule@6.1.9/index.global.min.js'></script>
+    <!-- Polyglot library -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/polyglot.js/2.0.0/polyglot.min.js"></script>
 </head>
+
 <body>
     <header>
         <div class="logo-menu">
-            <button class="menu-icon">☰</button>
+            <button class="menu-icon" data-translate="menu_button">☰</button>
             <img src="/images/logo.png" alt="Logo" class="logo-image">
-            <span class="logo-text">4genda</span>
+            <span class="logo-text" data-translate="logo_text">4genda</span>
+
+            <!-- Language Selector -->
+            <div class="language-selector">
+                <label for="language-toggle-checkbox" class="language-label">
+                    <input type="checkbox" id="language-toggle-checkbox"
+                        onchange="setLanguage(this.checked ? 'en' : 'fr'); setCalendarFormat(this.checked ? 'en' : 'fr')">
+                    <div class="language-toggle"></div>
+                    <div class="language-flag fr"></div>
+                    <div class="language-flag en"></div>
+                </label>
+            </div>
         </div>
 
         <% if(locals.user) { %>
             <div class="search-menu">
                 <div class="search-menu-form">
-                    <input type="text" id="search-input" placeholder="Rechercher un événement">
+                    <input type="text" id="search-input" placeholder="" data-translate="search_placeholder">
                     <input type="datetime-local" class="search-interval-input" id="search-start-date" style="display: none;">
                     <input type="datetime-local" class="search-interval-input" id="search-end-date" style="display: none;">
                     <select id="search-type">
-                        <option value="name" selected>Nom</option>
-                        <option value="description">Description</option>
-                        <option value="date">Intervalle de temps</option>
+                        <option value="name" selected data-translate="search_name">Nom</option>
+                        <option value="description" data-translate="search_description">Description</option>
+                        <option value="date" data-translate="search_date">Intervalle de temps</option>
                     </select>
                 </div>
                 <div class="search-results" id="search-results"></div>
             </div>
-        <% } %>
-
-        <div class="login-menu">
-            <% if(locals.user) { %>
-                <p id="username">Hello <%= locals.user.name ?? '' %></p>
-                <button class="login-btn" onclick="logout()">Log out</button>
-            <% } else { %>
-                <button class="login-btn" onclick="openLoginModal()">Log in</button>
             <% } %>
-        </div>
+
+                <div class="login-menu">
+                    <% if(locals.user) { %>
+                        <button class="login-btn" onclick="logout()" data-translate="logout">Log out</button>
+                        <% } else { %>
+                            <button class="login-btn" onclick="openLoginModal()" data-translate="login_button">Log in</button>
+                            <% } %>
+                </div>
+
     </header>
 
-    <!-- Bouton de Menu et Side Menu -->
+    <!-- Side Menu -->
     <div id="sideMenuOverlay" class="modal-overlay" style="display: none;" onclick="closeSideMenu()"></div>
     <div id="sideMenu" class="side-menu" style="display: none;">
         <div class="side-menu-content">
-            <h3 style="font-size: 2em;">Agendas</h3>
+            <h3 style="font-size: 2em;" data-translate="agendas">Agendas</h3>
             <ul class="menu-list">
             </ul>
         </div>
@@ -65,169 +82,173 @@
 
     <div id="calendar"></div>
 
-    <!-- Connexion -->
+    <!-- Login Modal -->
     <div id="loginModalOverlay" class="modal-overlay" style="display: none;" onclick="closeLoginModal()">
         <div id="loginModal" class="modal login-modal" style="display: block;">
             <div class="modal-content">
                 <div class="modal-header-container">
-                    <button class="tab-btn" onclick="showForm('registerForm')">Register</button>
-                    <button class="tab-btn active" onclick="showForm('loginForm')">Log in</button>
+                    <button class="tab-btn" onclick="showForm('registerForm')" data-translate="register">Register</button>
+                    <button class="tab-btn active" onclick="showForm('loginForm')" data-translate="login">Log in</button>
                 </div>
                 <div id="loginForm" class="modal-body active">
                     <form id="formLogin" action="/users/login" method="post">
-                        <input type="text" id="login-name" name="name" placeholder="Username" required>
-                        <input type="password" id="login-password" name="password" placeholder="Password" required>
+                        <input type="text" id="login-name" name="name" placeholder="Username" data-translate="username_placeholder" autocomplete="username" required>
+                        <input type="password" id="login-password" name="password" placeholder="Password" data-translate="password_placeholder" autocomplete="current-password" required>
                         <p id="login-message"></p>
-                        <button type="submit" class="submit-btn">Log in</button>
+                        <button type="submit" class="submit-btn" data-translate="login_button">Log in</button>
                     </form>
                 </div>
                 <div id="registerForm" class="modal-body" style="display:none;">
                     <form id="formRegister" action="/users/register" method="post">
-                        <input type="text" id="register-name" name="name" placeholder="Username" required>
-                        <input type="password" id="register-password" name="password" placeholder="Password" required>
-                        <input type="password" id="confirm-password" placeholder="Confirm" required>
+                        <input type="text" id="register-name" name="name" placeholder="Username" data-translate="username_placeholder" autocomplete="username" required>
+                        <input type="password" id="register-password" name="password" placeholder="Password" data-translate="password_placeholder" autocomplete="new-password" required>
+                        <input type="password" id="confirm-password" placeholder="Confirm" data-translate="confirm_password_placeholder" autocomplete="new-password" required>
                         <p id="register-message"></p>
-                        <button type="submit" class="submit-btn">Submit</button>
+                        <button type="submit" class="submit-btn" data-translate="submit_button">Submit</button>
                     </form>
                 </div>
             </div>
         </div>
     </div>
 
-
-    <!-- Modal pour modifier un agenda -->
+    <!-- Modal for modifying agenda -->
     <div id="editAgendaOverlay" class="modal-overlay edit-agenda-overlay" style="display: none;" onclick="closeEditAgendaModal()"></div>
     <div id="editAgendaModal" class="modal edit-agenda-modal" style="display: none;">
         <div class="modal-content">
-            <h3>Modify the agenda</h3>
+            <h3 data-translate="modify_agenda">Modify the agenda</h3>
             <form id="editAgendaForm">
                 <input type="hidden" id="edit-agenda-id">
-                <label for="edit-agenda-name">Name:</label>
-                <input type="text" id="edit-agenda-name" placeholder="Name of the agenda" required>
+                <label for="edit-agenda-name" data-translate="agenda_name">Name:</label>
+                <input type="text" id="edit-agenda-name" placeholder="Name of the agenda" data-translate="agenda_name_placeholder" required>
                 <br>
-                <label for="edit-agenda-description">Description:</label>
-                <input type="text" id="edit-agenda-description" placeholder="Description of the agenda">
+                <label for="edit-agenda-description" data-translate="agenda_description">Description:</label>
+                <input type="text" id="edit-agenda-description" placeholder="Description of the agenda" data-translate="agenda_description_placeholder">
                 <br>
-                <label>Users :</label>
+                <label data-translate="users">Users :</label>
                 <div id="edit-agenda-users" class="edit-agenda-users">
 
                 </div>
                 <div class="add-user-div">
-                    <input type="text" id="add-user-input" placeholder="Add a user">
-                    <button type="button" id="add-user-button">Add</button>
+                    <input type="text" id="add-user-input" placeholder="Username" data-translate="add_user_placeholder">
+                    <button type="button" id="add-user-button" data-translate="add_user_button">Add user</button>
                 </div>
                 <p id="add-user-message"></p>
                 <div style="display: flex; align-items: center;">
                     <label style="margin-right: 10px;">
                         <input type="checkbox" id="edit-agenda-visible" checked>
-                        Show the agenda
+                        <span data-translate="show_agenda">Show the agenda</span>
                     </label>
                 </div>
                 <br>
                 <div class="modal-buttons" style="display: flex; justify-content: space-between;">
-                    <button type="button" onclick="closeEditAgendaModal()">Cancel</button>
-                    <button type="button" class="delete-button" onclick="deleteAgenda()">Delete the agenda</button>
-                    <button type="button" onclick="exportAgenda()">Export</button>
-                    <button type="submit">Save</button>
+                    <button type="button" onclick="closeEditAgendaModal()"
+                        data-translate="cancel_button">Cancel</button>
+                    <button type="button" class="delete-button" onclick="deleteAgenda()"
+                        data-translate="delete_agenda_button">Delete the agenda</button>
+                    <button type="button" onclick="exportAgenda()" data-translate="export_button">Export</button>
+                    <button type="submit" data-translate="save_button">Save</button>
                 </div>
             </form>
         </div>
     </div>
 
-
-    <!-- Bouton calendrier -->
+    <!-- Calendar button -->
     <div class="calendar-button" id="calendarButton">
         <img src="/images/calend.png" alt="Calendrier" class="calendar-icon">
     </div>
 
-    <!-- Créer agenda -->
-    <div id="createAgendaOverlay" class="modal-overlay" style="display: none;" onclick="closeCreateAgendaModal()"></div>
-    <%- include('partials/createAgendaModal.ejs') %>
-
-    <!-- Bouton + -->
-    <div class="add-button" id="addButton">
-        <span class="add-button-icon">+</span>
+    <!-- Create agenda -->
+    <div id="createAgendaOverlay" class="modal-overlay" style="display: none;" onclick="closeCreateAgendaModal()">
     </div>
-
-    <!-- Event creation menu -->
-    <%- include('partials/eventAddMenu.ejs') %>
-
-    <!-- Créer évènement -->
-    <div id="addAppointmentOverlay" class="modal-overlay" style="display: none;" onclick="closeAddAppointmentModal()"></div>
-    <%- include('partials/createRecurringEvent.ejs') %>
-
-    <!-- Ajouter RDV -->
-    <div id="addAppointmentModal" class="modal appointment-modal" style="display:none;">
-        <div class="modal-content">
-            <form id="createEventForm">
-                <div class="modal-body">
-                    <h3>Add an event</h3>
-
-                    <label for="event-name-input">Title</label>
-                    <input type="text" id="event-name-input" name="name" placeholder="Title" required>
-
-                    <label for="event-description-input">Description</label>
-                    <input type="text" id="event-description-input" name="description" placeholder="Description">
-
-                    <label for="event-start-date">Start</label>
-                    <input type="datetime-local" id="event-start-date" name="startDate" required>
-
-                    <label for="event-end-date">End</label>
-                    <input type="datetime-local" id="event-end-date" name="endDate" required>
-
-                    <label for="agenda-select">Agenda</label>
-                    <br>
-                    <select id="agenda-select">
-                        <option value="" selected>Select an agenda</option>
-                    </select>
-                    <p id="create-event-message"></p>
-
-                    <div class="modal-buttons">
-                        <button type="button" onclick="closeAddAppointmentModal()">Cancel</button>
-                        <button type="submit">Submit</button>
+    <%- include('partials/createAgendaModal.ejs') %>
+        <!-- Add button -->
+        <div class="add-button" id="addButton">
+            <span class="add-button-icon">+</span>
+        </div>
+        <!-- Event creation menu -->
+        <%- include('partials/eventAddMenu.ejs') %>
+            <!-- Create event -->
+            <div id="addAppointmentOverlay" class="modal-overlay" style="display: none;" onclick="closeAddAppointmentModal()"></div>
+            <%- include('partials/createRecurringEvent.ejs') %>
+                <!-- Add appointment -->
+                <div id="addAppointmentModal" class="modal appointment-modal" style="display: none;">
+                    <div class="modal-content">
+                        <form id="createEventForm">
+                            <div class="modal-body">
+                                <h3 data-translate="add_event">Add an event</h3>
+
+                                <label for="event-name-input" data-translate="event_title">Title</label>
+                                <input type="text" id="event-name-input" name="name" placeholder="Title" data-translate="event_title_placeholder" required>
+
+                                <label for="event-description-input" data-translate="description">Description</label>
+                                <input type="text" id="event-description-input" name="description" placeholder="Description" data-translate="event_description_placeholder">
+
+                                <label for="event-start-date" data-translate="start_date">Start</label>
+                                <input type="datetime-local" id="event-start-date" name="startDate" required>
+
+                                <label for="event-end-date" data-translate="end_date">End</label>
+                                <input type="datetime-local" id="event-end-date" name="endDate" required>
+
+                                <label for="agenda-select" data-translate="agenda_select">Agenda</label>
+                                <br>
+                                <select id="agenda-select">
+                                    <option value="" selected data-translate="select_agenda">Select an agenda</option>
+                                </select>
+                                <p id="create-event-message"></p>
+
+                                <div class="modal-buttons">
+                                    <button type="button" onclick="closeAddAppointmentModal()" data-translate="cancel_button">Cancel</button>
+                                    <button type="submit" data-translate="submit_button">Submit</button>
+                                </div>
+                            </div>
+                        </form>
                     </div>
                 </div>
-            </form>
-        </div>
-    </div>
 
-
-    <!-- Modifier RDV -->
-    <div id="editAppointmentOverlay" class="modal-overlay" style="display: none;" onclick="closeEditAppointmentModal()"></div>
-    <div id="editAppointmentModal" class="edit-appointment-modal" style="display: none;">
-        <div class="modal-content">
-            <button class="delete-event-button" onclick="deleteEvent()">Delete</button>
-            <h3>Modify an event</h3>
-            <form id="editEventForm">
-                <input type="hidden" id="edit-event-id-input">
-                <label for="edit-event-name-input">Name</label>
-                <br>
-                <input type="text" id="edit-event-name-input" placeholder="Name" required>
-                <br>
-                <label for="edit-event-description-input">Description</label>
-                <br>
-                <input type="text" id="edit-event-description-input" placeholder="Description">
-                <br>
-                <label for="edit-event-startDate-input">Start</label>
-                <br>
-                <input type="datetime-local" id="edit-event-startDate-input" required>
-                <br>
-                <label for="edit-event-endDate-input">End</label>
-                <br>
-                <input type="datetime-local" id="edit-event-endDate-input" required>
-                <p id="edit-event-message"></p>
-                <div class="modal-buttons">
-                    <button type="button" onclick="closeEditAppointmentModal()">Cancel</button>
-                    <button type="submit">Submit</button>
+                <!-- Modify appointment -->
+                <div id="editAppointmentOverlay" class="modal-overlay" style="display: none;" onclick="closeEditAppointmentModal()"></div>
+                <div id="editAppointmentModal" class="edit-appointment-modal" style="display: none;">
+                    <div class="modal-content">
+                        <button class="delete-event-button" onclick="deleteEvent()" data-translate="delete_event">Delete</button>
+                        <h3 data-translate="modify_event">Modify an event</h3>
+                        <form id="editEventForm">
+                            <input type="hidden" id="edit-event-id-input">
+                            <label for="edit-event-name-input" data-translate="event_name">Name</label>
+                            <br>
+                            <input type="text" id="edit-event-name-input" placeholder="Name" data-translate="event_name_placeholder" required>
+                            <br>
+                            <label for="edit-event-description-input" data-translate="event_description">Description</label>
+                            <br>
+                            <input type="text" id="edit-event-description-input" placeholder="Description" data-translate="event_description_placeholder">
+                            <br>
+                            <label for="edit-event-startDate-input" data-translate="event_start_date">Start</label>
+                            <br>
+                            <input type="datetime-local" id="edit-event-startDate-input" required>
+                            <br>
+                            <label for="edit-event-endDate-input" data-translate="event_end_date">End</label>
+                            <br>
+                            <input type="datetime-local" id="edit-event-endDate-input" required>
+                            <p id="edit-event-message"></p>
+                            <div class="modal-buttons">
+                                <button type="button" onclick="closeEditAppointmentModal()" data-translate="cancel_button">Cancel</button>
+                                <button type="submit" data-translate="submit_button">Submit</button>
+                            </div>
+                        </form>
+                    </div>
                 </div>
-            </form>
-        </div>
-    </div>
-    <%- include('partials/editRecurringEventModal.ejs') %>
-
-<script src="/js/calendar.js"></script>
-<script src="/js/auth.js"></script>
-<script src="/js/agenda.js"></script>
-<script src="/js/search.js"></script>
+                <%- include('partials/editRecurringEventModal.ejs') %>
+
+                    <script src="/js/calendar.js"></script>
+                    <script src="/js/auth.js"></script>
+                    <script src="/js/agenda.js"></script>
+                    <script src="/js/search.js"></script>
+                    <script src="/js/internationalization.js"></script>
+
+                    <script>
+                        var savedLanguage = localStorage.getItem('selectedLanguage') || 'fr';
+                        setLanguage(savedLanguage);
+                        setCalendarFormat(savedLanguage);
+                    </script>
 </body>
-</html>
+
+</html>
\ No newline at end of file
diff --git a/src/views/partials/createAgendaModal.ejs b/src/views/partials/createAgendaModal.ejs
index 7d98ed66bf2102c365935911ca8c3b6d6b7d7650..f20c3a580a76ebd3464cd04e1b40d10e2bf9525b 100644
--- a/src/views/partials/createAgendaModal.ejs
+++ b/src/views/partials/createAgendaModal.ejs
@@ -1,14 +1,14 @@
 <!-- Create an agenda -->
 <div id="createAgendaModal" class="modal agenda-modal" style="display:none;">
     <div class="modal-content">
-        <h3>Create an agenda</h3>
+        <h3 data-translate="create_agenda">Create an agenda</h3>
         <form id="createAgendaForm">
-            <input type="text" id="agenda-name" name="name" placeholder="Title" required>
-            <textarea id="agenda-description" name="description" placeholder="Description"></textarea>
+            <input type="text" id="agenda-name" name="name" placeholder="Title" data-translate="event_title_placeholder" required>
+            <textarea id="agenda-description" name="description" placeholder="Description" data-translate="event_description_placeholder"></textarea>
             <p id="create-agenda-message"></p>
             <div class="modal-buttons">
-                <button type="button" onclick="closeCreateAgendaModal()">Cancel</button>
-                <button type="submit">Create</button>
+                <button type="button" onclick="closeCreateAgendaModal()" data-translate="cancel_button">Cancel</button>
+                <button type="submit" data-translate="create_button">Create</button>
             </div>
         </form>
     </div>
@@ -17,13 +17,13 @@
 <!-- Import an agenda -->
 <div id="importAgendaModal" class="modal agenda-modal" style="display:none;">
     <div class="modal-content">
-        <h3 class="import-agenda-title">Import an agenda</h3>
+        <h3 class="import-agenda-title" data-translate="import_agenda">Import an agenda</h3>
         <form id="importAgendaForm">
             <input type="file" id="import-agenda-file">
             <p id="import-agenda-message"></p>
             <div class="modal-buttons">
-                <button type="button" onclick="closeImportAgendaModal()">Cancel</button>
-                <button type="submit">Import</button>
+                <button type="button" onclick="closeImportAgendaModal()" data-translate="cancel_button">Cancel</button>
+                <button type="submit" data-translate="import_button">Import</button>
             </div>
         </form>
     </div>
@@ -37,10 +37,10 @@
 <div id="agendaAddMenu" class="div-menu">
   <div class="agenda-add-menu-internal-div">
     <div for="agenda-create-button" class="div-create">
-      <button id="agenda-create-button" type="button" name="button" class="button-style button-agenda-create">Create an agenda</button>
+      <button id="agenda-create-button" type="button" name="button" class="button-style button-agenda-create" data-translate="create_agenda_button">Create an agenda</button>
     </div>
     <div for="agenda-import-button" class="div-import">
-      <button id="agenda-import-button" type="button" name="button" class="button-style button-agenda-import">Import an agenda</button>
+      <button id="agenda-import-button" type="button" name="button" class="button-style button-agenda-import" data-translate="import_button">Import an agenda</button>
     </div>
   </div>
 </div>
diff --git a/src/views/partials/createRecurringEvent.ejs b/src/views/partials/createRecurringEvent.ejs
index 47f75b240bdc60bd2e86399ae6f81ddb7e2f6504..499a74bc5d44d7746b569216fd3de96fcae4d639 100644
--- a/src/views/partials/createRecurringEvent.ejs
+++ b/src/views/partials/createRecurringEvent.ejs
@@ -1,227 +1,224 @@
-<div id="addRecurringAppointmentModal" class="modal appointment-modal recurring-modal" style="display:none;">
-       <div class="modal-content">
-           <form id="createRecurringEventForm">
-               <div class="modal-body" style="float:left;margin-right:25px">
-                   <h3>Add a recurring event</h3>
-
-                   <label for="recurringEventNameInput">Title</label>
-                   <input type="text" id="recurringEventNameInput" name="name" placeholder="title" required>
-
-                   <label for="recurringEventDescriptionInput">Description</label>
-                   <input type="text" id="recurringEventDescriptionInput" name="description" placeholder="description">
-
-                   <label>Event frequency</label>
-                   <div class="recurringEventType" style="display:block;justify-content:space-between;">
-                     <div style="margin-right:15px;">
-                       <div class="eventFrequencyChoice">
-                           <input type="radio" id="dailyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(0)" required/>
-                           <label>Daily</label>
-                       </div>
-                       <div class="eventFrequencyChoice">
-                           <input type="radio" id="weeklyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(1)"/>
-                           <label>Weekly</label>
-                       </div>
-                     </div>
-                     <div>
-                       <div class="eventFrequencyChoice">
-                           <input type="radio" id="monthlyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(2)"/>
-                           <label>Monthly</label>
-                       </div>
-                       <div class="eventFrequencyChoice">
-                           <input type="radio" id="yearlyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(3)"/>
-                           <label>Yearly</label>
-                       </div>
-                     </div>
-                   </div>
-                   <label for="reAgendaSelect">Agenda</label>
-                   <br>
-                   <select id="reAgendaSelect">
-                       <option value="" selected>Select an agenda</option>
-                   </select>
-                   <p id="reMessage"></p>
-             </div>
-             <div class="modal-body" style="float:right">
-               <h3>Recurrence settings</h3>
-               <div class="recurringEventSetting" >
-
-                 <!-- Daily Event -->
-
-                 <div id="dailyEvent" style="display:none;" name="eventFrequencySetting">
-                       <div>
-                             <label for="dailyEventStartDate">First day</label>
-                             <input type="date" id="dailyEventStartDate" >
-                       </div>
-                       <div>
-                             <label for="dailyEventStartTime">From</label>
-                             <input type="time" id="dailyEventStartTime"  />
-                       </div>
-                       <div>
-                             <label for="dailyEventEndTime">To</label>
-                             <br>
-                             <input type="time" id="dailyEventEndTime"  />
-                       </div>
-                 </div>
-
-                 <!-- Weekly Event -->
-
-                 <div id="weeklyEvent" style="display:none;" name="eventFrequencySetting">
-                 <div>
-                 <label for="weeklyEventStartDate">Event first day</label>
-                 <input type="date" id="weeklyEventStartDate" />
-                 </div>
-                 <div>
-                 <label for="weeklyEventStartTime">From</label>
-                 <input type="time" id="weeklyEventStartTime" />
-                 </div>
-                 <div>
-                 <label for="weeklyEventEndTime">To</label><br>
-                 <input type="time" id="weeklyEventEndTime" />
-                 </div>
-                 <label for="weekDays">Repeat on :</label>
-                 <br>
-                 <div id="weekDays" style="display:inline-flex;justify-content:space-evenly;margin-top:15px;">
-                 <div>
-                 <div style="display:flex;justify-content:space-between;width:100%">
-                 <label class="day-label">Mon.
-                 <input type="checkbox" id="Monday" name ="mo">
-                 <span></span>
-                 </label>
-
-                 <label class="day-label">Tue.
-                 <input type="checkbox" id="Tuesday" name="tu">
-                 <span></span>
-                 </label>
-
-                 <label class="day-label">Wen.
-                 <input type="checkbox" id="Wednesday" name="we">
-                 <span></span>
-                 </label>
-
-                 <label class="day-label">Thu.
-                 <input type="checkbox" id="Thursday" name="th">
-                 <span></span>
-                 </label>
-                 </div class="day-label">
-
-                 <div style="display:flex;justify-content:space-between;padding-top:10px;">
-                 <label class="day-label">Fri.
-                 <input type="checkbox" id="Friday" name="fr">
-                 <span></span>
-                 </label>
-                 <br>
-                 <label class="day-label">Sat.
-                 <input type="checkbox" id="Saturday" name="sa">
-                 <span></span>
-                 </label>
-                 <br>
-                 <label class="day-label">Sun.
-                 <input type="checkbox" id="Sunday" name="su">
-                 <span></span>
-                 </label>
-
-
-                 </div>
-                 </div>
-                 </div>
-                 </div>
-
-                 <!-- Monthly event -->
-
-                 <div id="monthlyEvent" style="display:none;" name="eventFrequencySetting">
-                   <div>
-                     <label for="monthlyEventStart">From</label>
-                     <input type="number" id="monthlyEventStart" min=1 max=31 />
-                     <br>
-                     <label for="monthlyEventEnd">to</label>
-                     <br>
-                     <input type="number" id="monthlyEventEnd" min=1 max=31 />
-                   </div>
-                   <br>
-                   <label for="Months">Repeat on :</label>
-                   <br>
-                   <div id="months" style="display:block;margin-top:5px;">
-                     <div style="display:flex;justify-content:space-between;">
-                       <label class="day-label">Jan.
-                        <input type="checkbox" id="january" name="1">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Feb.
-                        <input type="checkbox" id="february" name="2">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Mar.
-                        <input type="checkbox" id="march" name="3">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Apr.
-                        <input type="checkbox" id="april" name="4">
-                        <span></span>
-                       </label>
-                     </div>
-                     <div style="display:flex;justify-content:space-between;">
-                       <label class="day-label">May.
-                        <input type="checkbox" id="may" name="5">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Jun.
-                        <input type="checkbox" id="june" name="6">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Jul.
-                        <input type="checkbox" id="july" name="7">
-                        <span></span>
-                       </label class="day-label">
-                       <label>Aug.
-                        <input type="checkbox" id="august" name="8">
-                        <span></span>
-                       </label>
-                     </div>
-                     <div style="display:flex;justify-content:space-between;">
-                       <label class="day-label">Sep.
-                        <input type="checkbox" id="september" name="9">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Oct.
-                        <input type="checkbox" id="october" name="10">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Nov.
-                        <input type="checkbox" id="november" name="11">
-                        <span></span>
-                       </label>
-                       <label class="day-label">Dec.
-                        <input type="checkbox" id="decembre" name="12">
-                        <span></span>
-                       </label>
-                     </div>
-                   </div>
-                 </div>
-
-                 <!-- Yearly Event -->
-
-                 <div id="yearlyEvent" style="display:none;" name="eventFrequencySetting">
-                   <div>
-                     <label>Date of first occurence</label>
-                   </div>
-                   <br>
-                   <div>
-                     <label for="yearlyEventStart">From</label>
-                     <input type="date" id="yearlyEventStart" >
-                   </div>
-                   <div>
-                     <label for="yearlyEventEnd">To</label>
-                     <br>
-                     <input type="date" id="yearlyEventEnd">
-                   </div>
-                 </div>
-               </div>
-               <br>
-
-               <div class="modal-buttons">
-                   <button type="button" onclick="closeRecurringEventModal()">Cancel</button>
-                   <button type="submit">Submit</button>
-               </div>
-             </div>
-           </form>
-       </div>
-   </div>
\ No newline at end of file
+<div id="addRecurringAppointmentModal" class="modal appointment-modal recurring-modal" style="display: none;">
+  <div class="modal-content">
+    <form id="createRecurringEventForm">
+      <div class="modal-body" style="float: left; margin-right: 25px">
+        <h3 data-translate="add_recurring_event">Add a recurring event</h3>
+
+        <label for="recurringEventNameInput" data-translate="event_title">Intitulé</label>
+        <input type="text" id="recurringEventNameInput" name="name" placeholder="Intitulé" data-translate="event_title_placeholder" required>
+
+        <label for="recurringEventDescriptionInput" data-translate="event_description">Description</label>
+        <input type="text" id="recurringEventDescriptionInput" name="description" placeholder="Description" data-translate="event_description_placeholder">
+
+        <label for="recurringEventType" data-translate="event_type">Type d'événement</label>
+        <div class="recurringEventType">
+          <div style="margin-right: 15px;">
+            <div class="eventFrequencyChoice">
+              <input type="radio" id="dailyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(0)" required/>
+              <label for="scales" data-translate="daily_event">Quotidien</label>
+            </div>
+            <div class="eventFrequencyChoice">
+              <input type="radio" id="weeklyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(1)"/>
+              <label for="scales" data-translate="weekly_event">Hebdomadaire</label>
+            </div>
+          </div>
+          <div>
+            <div class="eventFrequencyChoice">
+              <input type="radio" id="monthlyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(2)"/>
+              <label for="scales" data-translate="monthly_event">Mensuel</label>
+            </div>
+            <div class="eventFrequencyChoice">
+              <input type="radio" id="yearlyEvent" name="eventFrequency" onclick="displayEventFrequencySetting(3)"/>
+              <label for="scales" data-translate="yearly_event">Annuel</label>
+            </div>
+          </div>
+        </div>
+        <label for="reAgendaSelect" data-translate="agenda_select">Agenda</label>
+        <br>
+        <select id="reAgendaSelect">
+          <option value="" selected data-translate="select_agenda">Select an agenda</option>
+        </select>
+        <p id="reMessage"></p>
+      </div>
+      <div class="modal-body" style="float: right">
+        <h3 data-translate="recurrence">Recurrence settings</h3>
+        <div class="recurringEventSetting">
+
+          <!-- Daily Event -->
+          <div id="dailyEvent" style="display:none;" name="eventFrequencySetting">
+            <div>
+              <label for="dailyEventStartDate" data-translate="start_date">First day</label>
+              <input type="date" id="dailyEventStartDate">
+            </div>
+            <div>
+              <label for="dailyEventStartTime" data-translate="starting_time">From</label>
+              <input type="time" id="dailyEventStartTime" />
+            </div>
+            <div>
+              <label for="dailyEventEndTime" data-translate="ending_time">To</label>
+              <br>
+              <input type="time" id="dailyEventEndTime" />
+            </div>
+          </div>
+
+          <!-- Weekly Event -->
+
+          <div id="weeklyEvent" style="display: none;" name="eventFrequencySetting">
+            <div>
+              <label for="weeklyEventStartDate" data-translate="start_date">Event first day</label>
+              <input type="date" id="weeklyEventStartDate" />
+            </div>
+            <div>
+              <label for="weeklyEventStartTime" data-translate="starting_time">From</label>
+              <input type="time" id="weeklyEventStartTime" />
+            </div>
+            <div>
+              <label for="weeklyEventEndTime" data-translate="ending_time">To</label><br>
+              <input type="time" id="weeklyEventEndTime" />
+            </div>
+            <label for="weekDays" data-translate="weekly_repeat">Repeat on :</label>
+            <br>
+            <div id="weekDays" style="display: inline-flex; justify-content: space-evenly; margin-top: 15px;">
+              <div>
+                <div style="display: flex; justify-content: space-between; width: 100%">
+                  <label class="day-label">
+                    <input type="checkbox" id="Monday" name="mo">
+                    <span data-translate="monday_abbr"></span>
+                  </label>
+
+                  <label class="day-label">
+                    <input type="checkbox" id="Tuesday" name="tu">
+                    <span data-translate="tuesday_abbr"></span>
+                  </label>
+
+                  <label class="day-label">
+                    <input type="checkbox" id="Wednesday" name="we">
+                    <span data-translate="wednesday_abbr"></span>
+                  </label>
+
+                  <label class="day-label">
+                    <input type="checkbox" id="Thursday" name="th">
+                    <span data-translate="thursday_abbr"></span>
+                  </label>
+                </div class="day-label">
+
+                <div style="display: flex; justify-content: space-between; padding-top: 10px;">
+                  <label class="day-label">
+                    <input type="checkbox" id="Friday" name="fr">
+                    <span data-translate="friday_abbr"></span>
+                  </label>
+                  <br>
+                  <label class="day-label">
+                    <input type="checkbox" id="Saturday" name="sa">
+                    <span data-translate="saturday_abbr"></span>
+                  </label>
+                  <br>
+                  <label class="day-label">
+                    <input type="checkbox" id="Sunday" name="su">
+                    <span data-translate="sunday_abbr"></span>
+                  </label>
+
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <!-- Monthly event -->
+          <div id="monthlyEvent" style="display: none;" name="eventFrequencySetting">
+            <div>
+              <label for="monthlyEventStart" data-translate="from_date">From</label>
+              <br>
+              <input type="number" id="monthlyEventStart" min=1 max=31 />
+              <br>
+              <label for="monthlyEventEnd" data-translate="to_date">To</label>
+              <br>
+              <input type="number" id="monthlyEventEnd" min=1 max=31 />
+            </div>
+            <br>
+            <label for="Months" data-translate="monthly_repeat">Repeat on :</label>
+            <br>
+            <div id="months" style="display: block; margin-top: 5px;">
+              <div style="display: flex; justify-content: space-between;">
+                <label class="day-label">
+                  <input type="checkbox" id="january" name="1">
+                  <span data-translate="january_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="february" name="2">
+                  <span data-translate="february_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="march" name="3">
+                  <span data-translate="march_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="april" name="4">
+                  <span data-translate="april_abbr"></span>
+                </label>
+              </div>
+              <div style="display:flex;justify-content:space-between;">
+                <label class="day-label">
+                  <input type="checkbox" id="may" name="5">
+                  <span data-translate="may_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="june" name="6">
+                  <span data-translate="june_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="july" name="7">
+                  <span data-translate="july_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="august" name="8">
+                  <span data-translate="august_abbr"></span>
+                </label>
+              </div>
+              <div style="display: flex; justify-content: space-between;">
+                <label class="day-label">
+                  <input type="checkbox" id="september" name="9">
+                  <span data-translate="september_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="october" name="10">
+                  <span data-translate="october_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="november" name="11">
+                  <span data-translate="november_abbr"></span>
+                </label>
+                <label class="day-label">
+                  <input type="checkbox" id="decembre" name="12">
+                  <span data-translate="december_abbr"></span>
+                </label>
+              </div>
+            </div>
+          </div>
+
+          <!-- Yearly Event -->
+          <div id="yearlyEvent" style="display: none;" name="eventFrequencySetting">
+            <div>
+              <label data-translate="dates_first_occurrence_of_event">Date of first occurence</label>
+            </div>
+            <br>
+            <div>
+              <label for="yearlyEventStart" data-translate="from_date">From</label>
+              <br>
+              <input type="date" id="yearlyEventStart">
+            </div>
+            <div>
+              <label for="yearlyEventEnd" data-translate="to_date">To</label>
+              <br>
+              <input type="date" id="yearlyEventEnd">
+            </div>
+          </div>
+        </div>
+        <br>
+        <div class="modal-buttons">
+          <button type="button" onclick="closeRecurringEventModal()" data-translate="cancel_button">Cancel</button>
+          <button type="submit" data-translate="submit_button">Valider</button>
+        </div>
+      </div>
+    </form>
+  </div>
+</div>
\ No newline at end of file
diff --git a/src/views/partials/editRecurringEventModal.ejs b/src/views/partials/editRecurringEventModal.ejs
index c5b9c0532e54079b5ba0c88a4fe9b8721c7aa163..43521527a1186acd96c42443580cfc71c1d2a398 100644
--- a/src/views/partials/editRecurringEventModal.ejs
+++ b/src/views/partials/editRecurringEventModal.ejs
@@ -1,23 +1,24 @@
-<div id="editRecurringEventModal" class="edit-appointment-modal" style="display:none;">
-    <div class="modal-content">
-      <div style="display:inline-block;">
-        <button class="delete-event-button" onclick="deleteRecurringEventOccurrence()">Remove occurence</button>
-        <button class="delete-event-button" onclick="deleteRecurringEvent()">Delete event</button>
-      </div>
-        <h3>Event Informations</h3>
-        <form id="editRecurringEventForm">
-            <input type="hidden" id="editRecurringEventId">
-            <label for="editRecurringEventName">Title</label>
-            <br>
-            <input type="text" id="editRecurringEventName" placeholder="Intitulé" readonly>
-            <br>
-            <label for="editRecurringEventDescription">Description</label>
-            <br>
-            <input type="text" id="editRecurringEventDescription" placeholder="Description" readonly>
-            <br>
-            <p id="editRecurringEventMessage"></p>
-            <div class="modal-buttons">
-                <button type="button" onclick="closeEditRecurringEventModal()">Close</button>
-            </div>
-        </form>
+<div id="editRecurringEventModal" class="edit-appointment-modal" style="display:none;">
+    <div class="modal-content">
+      <div style="display:inline-block;">
+        <button class="delete-event-button" onclick="deleteRecurringEventOccurrence()" data-translate="delete_occurrence_button">Supprimer l'occurrence</button>
+        <button class="delete-event-button" onclick="deleteRecurringEvent()" data-translate="delete_event_button">Supprimer l'événement</button>
+      </div>
+        <h3 data-translate="modify_event">Modifier un événement</h3>
+        <form id="editRecurringEventForm">
+            <input type="hidden" id="editRecurringEventId">
+            <label for="editRecurringEventName" data-translate="event_title">Title</label>
+            <br>
+            <input type="text" id="editRecurringEventName" placeholder="Intitulé" data-translate="event_title_placeholder" readonly>
+            <br>
+            <label for="editRecurringEventDescription" data-translate="event_description">Description</label>
+            <br>
+            <input type="text" id="editRecurringEventDescription" placeholder="Description" data-translate="event_description_placeholder" readonly>
+            <br>
+            <p id="editRecurringEventMessage"></p>
+            <div class="modal-buttons">
+                <button type="button" onclick="closeEditRecurringEventModal()" data-translate="cancel_button">Annuler</button>
+                <button type="submit" onclick="closeEditRecurringEventModal" data-translate="submit_button" style="display:none;">Valider</button>
+            </div>
+        </form>
     </div>
\ No newline at end of file
diff --git a/src/views/partials/eventAddMenu.ejs b/src/views/partials/eventAddMenu.ejs
index 18aacee2f86a300acc13a4cc90c1816296559bb3..148117281cd9718a80852caa633989b437f96f99 100644
--- a/src/views/partials/eventAddMenu.ejs
+++ b/src/views/partials/eventAddMenu.ejs
@@ -1,11 +1,11 @@
-<div id="eventAddMenuOverlay" class="modal-overlay" style="display: none;" onclick="closeEventAddMenu()"></div>
-<div id="eventAddMenu" class="event-menu" >
-    <div class="event-add-menu-internal-div">
-        <div for="exceptionalEventButton">
-            <button id="exceptionalEventButton" type="button" name="button" class="button-style button-exceptionnal-event">Évènement exceptionnel</button>
-        </div>
-        <div for="recurringEventButton">
-            <button id="recurringEventButton" type="button" name="button" class="button-style button-recurring-event">Évènement récurrent</button>
-        </div>
-      </div>
+<div id="eventAddMenuOverlay" class="modal-overlay" style="display: none;" onclick="closeEventAddMenu()"></div>
+<div id="eventAddMenu" class="event-menu" >
+    <div class="event-add-menu-internal-div">
+        <div for="exceptionalEventButton">
+            <button id="exceptionalEventButton" type="button" name="button" class="button-style button-exceptionnal-event" data-translate="exceptional_event_button">Événement exceptionnel</button>
+        </div>
+        <div for="recurringEventButton">
+            <button id="recurringEventButton" type="button" name="button" class="button-style button-recurring-event" data-translate="recurring_event_button">Événement récurrent</button>
+        </div>
+      </div>
 </div>
\ No newline at end of file