diff --git a/app/models/communication/website/agenda/event.rb b/app/models/communication/website/agenda/event.rb
index aca1072d54f845a047f8c6cc1774513a075067a9..d1f9e19fdc384df0e21d7c96a9540ac13500bba9 100644
--- a/app/models/communication/website/agenda/event.rb
+++ b/app/models/communication/website/agenda/event.rb
@@ -60,7 +60,8 @@ class Communication::Website::Agenda::Event < ApplicationRecord
   scope :ordered, -> { order(from_day: :desc, from_hour: :desc) }
   scope :recent, -> { ordered.limit(5) }
 
-  validates_presence_of :from_day
+  validates_presence_of :from_day, :title
+  validate :to_day_after_from_day, :to_hour_after_from_hour_on_same_day
 
   STATUS_FUTURE = 'future'
   STATUS_PRESENT = 'present'
@@ -116,4 +117,15 @@ class Communication::Website::Agenda::Event < ApplicationRecord
   def to_s
     "#{title}"
   end
+
+  protected
+
+  def to_day_after_from_day
+    errors.add(:to_day, :too_soon) if to_day.present? && to_day < from_day
+  end
+
+  def to_hour_after_from_hour_on_same_day
+    return if from_day != to_day
+    errors.add(:to_hour, :too_soon) if to_hour.present? && from_hour.present? && to_hour < from_hour
+  end
 end
diff --git a/app/views/admin/communication/websites/agenda/events/static.html.erb b/app/views/admin/communication/websites/agenda/events/static.html.erb
index 691753777e9e66fac507a1b6faa0b5e0022129fb..932c37d15d94328ff682ea2af9ea184f3cfe6ecf 100644
--- a/app/views/admin/communication/websites/agenda/events/static.html.erb
+++ b/app/views/admin/communication/websites/agenda/events/static.html.erb
@@ -12,7 +12,7 @@ dates:
     hour: <%= @about.from_hour.strftime "%H:%M" %>
 <% end %>
   to:
-    day: <%= @about.to_day || @about.from_day%>
+    day: <%= @about.to_day || @about.from_day %>
 <% if @about.to_hour %>
     hour: <%= @about.to_hour.strftime "%H:%M" %>
 <% end %>
diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml
index 3153f83b44f77195a6561930ba672a7b8fcda023..fcced216b30339327115dc5e6e43a1b17b0d3d35 100644
--- a/config/locales/communication/en.yml
+++ b/config/locales/communication/en.yml
@@ -233,6 +233,12 @@ en:
             languages:
               must_include_default: must include at least the default language
               too_short: must include at least one
+        communication/website/agenda/event:
+          attributes:
+            to_day:
+              too_soon: must be after "from day"
+            to_hour:
+              too_soon: must be after "from hour"
   admin:
     communication:
       blocks:
diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml
index 518e1c6231adae808e17c3b8eb0ca8302f6f40fe..83f21d2b647e6da97e6bf7fd0edd20c0c479dd93 100644
--- a/config/locales/communication/fr.yml
+++ b/config/locales/communication/fr.yml
@@ -233,6 +233,12 @@ fr:
             languages:
               must_include_default: doivent contenir la langue par défaut
               too_short: doivent en comporter une minimum
+        communication/website/agenda/event:
+          attributes:
+            to_day:
+              too_soon: doit être après jour de début
+            to_hour:
+              too_soon: doit être après l'heure de début
   admin:
     communication:
       blocks: