diff --git a/templates/event-page.html b/templates/event-page.html
new file mode 100644
index 0000000..d807e31
--- /dev/null
+++ b/templates/event-page.html
@@ -0,0 +1,28 @@
+{% extends "base.html" %}
+{% import "macros.html" as macros %}
+
+{% block content %}
+
+ {{ page.title }}
+
+
+{% set meetups = load_data(path="events.toml") %}
+{% set upcoming = meetups['upcoming'] %}
+{% set all_events = meetups['recent'] | concat(with=upcoming) %}
+
+{% set event = all_events | filter(attribute="title", value=page.title) | first %}
+
+{% if event %}
+
+
+ Details about this event
+
+ {{ macros::event_attributes(event=event) }}
+
+{% else %}
+ No data found for this event.
+{% endif %}
+
+{{ page.content | safe }}
+
+{% endblock content %}
\ No newline at end of file
diff --git a/templates/events.html b/templates/events.html
new file mode 100644
index 0000000..afa9747
--- /dev/null
+++ b/templates/events.html
@@ -0,0 +1,67 @@
+{% extends "base.html" %}
+{% import "macros.html" as macros %}
+
+{% block sidebar %}
+{% set toc = ['upcoming', 'recent', 'past'] %}
+
+ {% if section.toc %}{% set toc = section.toc %}{% elif page.toc %}{% set toc = page.toc %}{% endif %}
+ {% if toc %}
+
+
+ {% for h in toc %}
+
+ {% endfor %}
+
+ {% endif %}
+
+{% endblock sidebar %}
+
+{% block content %}
+
+ {{ section.title }}
+
+
+{{ section.content | safe }}
+
+{% set groups = ['upcoming', 'recent', 'past'] %}
+{% set meetups = load_data(path="events.toml") %}
+
+{% for group in groups %}
+
+ {% if meetups[group] %}
+
+ {{ group | capitalize }}
+
+ {% for event in meetups[group] %}
+ {% set event_page = section.pages | filter(attribute="title", value=event.title) | first%}
+
+ {% if event_page %}
+
+
+ {{ event_page.title }}
+
+
+ {% else %}
+
+
+
+
+ {{ event.title }}
+
+
+
+ {{ macros::event_attributes(event=event) }}
+
+
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+
+{% endfor %}
+
+{% endblock content %}
\ No newline at end of file
diff --git a/templates/macros.html b/templates/macros.html
new file mode 100644
index 0000000..47b07e2
--- /dev/null
+++ b/templates/macros.html
@@ -0,0 +1,42 @@
+{% macro event_attributes(event) %}
+
+ {% if event.url %}
+
+ Event link
+
+
+ {{ event.title}} on Meetup.com
+
+ {% endif %}
+
+
+ Date
+
+
+ {% if event.date %}
+ {{ event.date | date(format="%A, %e %B %Y", timezone="Europe/Berlin") }}
+ {% else %}
+ (No date found)
+ {% endif %}
+
+
+
+ Venue
+
+
+ {% if event.venue %}
+ {{ event.venue }} – {% endif %}
+ {% if event.address %}{{ event.address }}
+ {% else %}
+ (No venue)
+ {% endif %}
+
+
+ {% if event.content -%}
+ Description
+
+ {{ event.content | safe }}
+
+ {% endif %}
+
+{% endmacro event_attributes %}
\ No newline at end of file
diff --git a/templates/shortcodes/get_event.html b/templates/shortcodes/get_event.html
new file mode 100644
index 0000000..1526685
--- /dev/null
+++ b/templates/shortcodes/get_event.html
@@ -0,0 +1,18 @@
+{% set meetups = load_data(path="events.toml") %}
+
+{% if meetups['recent'] %}
+## {{ 'recent' | capitalize }}
+
+{% for item in meetups['recent'] %}
+### {{ item.title }}
+
+{% if item.event_page %}yo{% endif %}
+
+{% if item.url %}**Link:** [Meetup.com]({{ item.url }}){% endif %}
+**Date:** {% if item.date %}
{{ item.date | date(format="%A, %e %B %Y", timezone="Europe/Berlin") }} {% else %}(No date found) {% endif %}
+**Venue:** {% if item.venue %}{{ item.venue }} – {% endif %}{% if item.address %}{{ item.address }} {% else %}(No venue) {% endif %}
+{% if item.content -%}**Description:**
{{ item.content | safe }} {% endif %}
+
+{% endfor %}
+{% endif %}
+
diff --git a/templates/shortcodes/list_events.html b/templates/shortcodes/list_events.html
new file mode 100644
index 0000000..aa59de8
--- /dev/null
+++ b/templates/shortcodes/list_events.html
@@ -0,0 +1,18 @@
+{% set meetups = load_data(path="events.toml") %}
+
+{% if meetups[group] %}
+## {{ group | capitalize }}
+
+{% for item in meetups[group] %}
+### {{ item.title }}
+
+{% if item.event_page %}yo{% endif %}
+
+{% if item.url %}**Link:** [Meetup.com]({{ item.url }}){% endif %}
+**Date:** {% if item.date %}
{{ item.date | date(format="%A, %e %B %Y", timezone="Europe/Berlin") }} {% else %}(No date found) {% endif %}
+**Venue:** {% if item.venue %}{{ item.venue }} – {% endif %}{% if item.address %}{{ item.address }} {% else %}(No venue) {% endif %}
+{% if item.content -%}**Description:**
{{ item.content | safe }} {% endif %}
+
+{% endfor %}
+{% endif %}
+
diff --git a/templates/shortcodes/list_events.md b/templates/shortcodes/list_events.md
deleted file mode 100644
index 1b887c7..0000000
--- a/templates/shortcodes/list_events.md
+++ /dev/null
@@ -1,15 +0,0 @@
-{% set meetups = load_data(path="events.toml") %}
-
-{% if meetups[group] %}
-## {{ group | capitalize }}
-
-{% for item in meetups[group] %}
-### {{ item.title }}
-
-{% if item.url %}**Link:** [Meetup.com]({{ item.url }}){% endif %}
-**Date:** {% if item.date %}
{{ item.date | date(format="%A, %e %B %Y", timezone="Europe/Berlin") }} {% else %}(No date found) {% endif %}
-**Venue:** {% if item.venue %}{{ item.venue }} – {% endif %}{% if item.address %}{{ item.address }} {% else %}(No venue) {% endif %}
-{% if item.content -%}**Description:**
{{ item.content | safe }} {% endif %}
-
-{% endfor %}
-{% endif %}
diff --git a/templates/shortcodes/slides_link.html b/templates/shortcodes/slides_link.html
new file mode 100644
index 0000000..49271ff
--- /dev/null
+++ b/templates/shortcodes/slides_link.html
@@ -0,0 +1,5 @@
+
+ {{title}}
+
\ No newline at end of file
diff --git a/templates/shortcodes/youtube.html b/templates/shortcodes/youtube.html
new file mode 100644
index 0000000..573e269
--- /dev/null
+++ b/templates/shortcodes/youtube.html
@@ -0,0 +1,11 @@
+
+
+
--
cgit v1.2.3