diff --git a/summarize b/summarize
new file mode 100755
index 0000000000000000000000000000000000000000..76288681ce00db77948a3ebed34edea0613f41b2
--- /dev/null
+++ b/summarize
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+
+import glob
+import logging
+logging.basicConfig()
+logging.getLogger().setLevel(logging.DEBUG)
+
+# But you can use your content.
+
+def parse_file(filename):
+    logging.debug(f'opening {filename}')
+    with open(filename) as f:
+        lines = f.readlines()
+        titles = [ f"## {x[6:].strip()[1:-1]}\n" for x in lines if x.startswith("title:")]
+        entries = titles + [ f"##{x}" for x in lines if x[0] == "#" ]
+        entries = [ f'* {x[4:]}' if x[:4]=="####" else x  for x in entries ]
+    return entries
+
+files = glob.glob("[01]*/index.qmd")
+
+all_entries = [ ]
+for x in files:
+    all_entries.extend(parse_file(x))
+
+with open("summary.md", "w") as outfile:
+    outfile.write("# Overview of all lectures\n")
+    outfile.writelines(all_entries)
+