diff --git a/events.json b/events.json
index 99ba3b4d4973426c1e5c5d2caaa52e2770523551..4bf24dc78afe8251a04cde9f846d9435716a8fbf 100644
--- a/events.json
+++ b/events.json
@@ -17,19 +17,22 @@
     "description": "Große Sommerfreizeit in Bonn-Bad Godesberg mit Coding-Workshops, Spiel und Spaß",
     "location": "Bonn (Jugendzeltplatz)",
     "date": "2025-08-21",
-    "fully_booked": false
+    "fully_booked": false,
+    "featured": true
   },
   "froglabs-2025-glt": {
     "display_name": "Mini-FrogLabs Grazer Linux-Tage 2025",
     "description": "Workshopprogramm für Kinder und Jugendliche bei den Grazer Linux-Tagen 2025",
     "location": "Graz",
-    "date": "2025-04-26"
+    "date": "2025-04-26",
+    "featured": true
   },
   "froglabs-2025-tuebix": {
     "display_name": "Mini-FrogLabs TÃœBIX 2025",
     "description": "Workshopprogramm für Kinder und Jugendliche beim Tübinger Linux-Tag 2025",
     "location": "Tübingen",
-    "date": "2025-07-05"
+    "date": "2025-07-05",
+    "featured": true
   },
   "campdays-2024-12": {
     "display_name": "Campdays Winter 2024",
diff --git a/templates/frontpage/events.html b/templates/frontpage/events.html
index cec012d950e872a8aa82d1877efcfdc9ad4b904d..aebaae526b0bbede045066ceba676c1be51468b1 100644
--- a/templates/frontpage/events.html
+++ b/templates/frontpage/events.html
@@ -1,4 +1,16 @@
-{# FIXME generate dynamically #}
-{% set title = trans(key="upcoming_events", lang=lang) %}
-{% set slug = "hacknsun-2025-bn" %}
-{% include "shortcodes/event_section.html" %}
+<section class="section">
+  <div class="container">
+    <h2 class="title is-2">{{ trans(key="upcoming_events", lang=lang) }}</h2>
+    {#    <div class="columns is-multiline is-same-height mt-4"> #}
+      {% set events_data = load_data(path="events.json") -%}
+      {% set no_title = true %}
+      {% for slug, event in events_data %}
+        {% if event.featured | default(value=false) %}
+	{#	  <div class="column is-one-third"> #}
+            {% include "shortcodes/teckids_event.html" %}
+	    {#	  </div> #}
+        {% endif %}
+      {% endfor %}
+      {#    </div> #}
+  </div>
+</section>