diff --git a/components/UCalendar.vue b/components/UCalendar.vue
index 01f2da5d5ad768cf3d073a5309bf68cac557c86c..e978e66a8fabee5131e9857b3492557a74da99d3 100644
--- a/components/UCalendar.vue
+++ b/components/UCalendar.vue
@@ -33,7 +33,7 @@
                         <component :is="event.component" :event="event"></component>
                     </div>
 
-                    <div v-if="canAddEvent">
+                    <div v-if="canAdd(jour)">
                         <button @click="addEvent" :data-jour="jour" class="btn btn-light btn-sm">
                             <u-icon name="plus"/>
                             Nouvel événement
@@ -53,6 +53,8 @@ export default {
         date: {type: Date, required: true},
         events: {type: Array, required: true},
         canAddEvent: {type: Boolean, required: true, default: true},
+        addDateDebut: {type: String, required: false},
+        addDateFin: {type: String, required: false},
     },
     data()
     {
@@ -135,6 +137,41 @@ export default {
             return annees;
         },
 
+        canAdd(numJour)
+        {
+            let dateDebut = this.addDateDebut;
+
+            if (undefined === dateDebut){
+                dateDebut = new Date('2000-01-01');
+            }else if ('now' === dateDebut){
+                dateDebut = new Date();
+            }else{
+                dateDebut = new Date(dateDebut);
+            }
+
+
+            let dateFin = this.addDateFin;
+            if (undefined === dateFin){
+                dateFin = new Date('2500-01-01');
+            }else if ('now' === dateFin){
+                dateFin = new Date();
+            }else{
+                dateFin = new Date(dateFin);
+            }
+
+            let date = new Date(this.date);
+            date.setDate(numJour);
+
+            dateDebut = this.isoDateOnly(dateDebut);
+            dateFin = this.isoDateOnly(dateFin);
+            date = this.isoDateOnly(date);
+
+            if (date < dateDebut) return false;
+            if (date > dateFin) return false;
+
+            return true;
+        },
+
         addEvent(event)
         {
             const dateObj = new Date(this.date);
@@ -175,6 +212,16 @@ export default {
             }
             return res;
         },
+
+        isoDateOnly(dateObj)
+        {
+            const year = dateObj.getFullYear();
+            const month = String(dateObj.getMonth() + 1).padStart(2, '0');
+            const day = String(dateObj.getDate()).padStart(2, '0');
+            const formattedDate = `${year}-${month}-${day}`;
+
+            return formattedDate;
+        },
     }
 }
 </script>