diff --git a/app/models/communication/block/template/agenda.rb b/app/models/communication/block/template/agenda.rb
index 72a406e43a9cf5b8396804eef99b0409e86c1194..3256da47b0393540c9efbaf46e9b93e6a5638c38 100644
--- a/app/models/communication/block/template/agenda.rb
+++ b/app/models/communication/block/template/agenda.rb
@@ -19,7 +19,7 @@ class Communication::Block::Template::Agenda < Communication::Block::Template::B
   has_component :show_status, :boolean
 
   def selected_events
-    @selected_events ||= events_with_time_scope
+    @selected_events ||= send "selected_events_#{mode}"
   end
 
   def category
@@ -40,10 +40,25 @@ class Communication::Block::Template::Agenda < Communication::Block::Template::B
 
   protected
 
-  def events_with_time_scope
+  def base_events
     events = website.events.for_language(block.language).published
     events = events.send(time) if time.in? AUTHORIZED_SCOPES
+  end
+
+  def selected_events_all
+    events = base_events.limit(quantity)
+  end
+
+  def selected_events_category
+    events = base_events
+    events = events.for_category(category) if category
     events = events.limit(quantity)
   end
 
+  def selected_events_selection
+    elements.map { |element|
+      element.event
+    }.compact
+  end
+
 end
diff --git a/app/models/communication/website/agenda/event.rb b/app/models/communication/website/agenda/event.rb
index d5b7b769d7c49abe73b848aa3499232013a6c7ef..ac96d5b5f97c1da00263392b9459aae26b37afc3 100644
--- a/app/models/communication/website/agenda/event.rb
+++ b/app/models/communication/website/agenda/event.rb
@@ -71,6 +71,8 @@ class Communication::Website::Agenda::Event < ApplicationRecord
   scope :recent, -> { order(:updated_at).limit(5) }
   scope :published, -> { where(published: true) }
   scope :draft, -> { where(published: false) }
+  
+  scope :for_category, -> (category_id) { joins(:categories).where(communication_website_categories: { id: category_id }).distinct }
 
   scope :future, -> { where('from_day > :today', today: Date.today).ordered_asc }
   scope :future_or_present, -> { where('from_day <= :today', today: Date.today).ordered_asc }
diff --git a/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb b/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb
index 1597d94971975d53108a8003cb6472c59234cfc4..1dbe1ecefb7bb378f8e0d924236318e6b9814fbd 100644
--- a/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/agenda/_edit.html.erb
@@ -23,7 +23,9 @@
     </div>    
   </div>
   <div class="col-xl-6 mb-5">
-    <%= block_component_edit block, :time %>
+    <div v-if="data.mode != 'selection'">
+      <%= block_component_edit block, :time %>
+    </div>
   </div>
 </div>