diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
new file mode 100644
index 00000000..7f8e9742
--- /dev/null
+++ b/layouts/_default/_markup/render-heading.html
@@ -0,0 +1 @@
+{{ template "_default/_markup/td-render-heading.html" . }}
diff --git a/layouts/_default/_markup/td-heading-self-link.html b/layouts/_default/_markup/td-heading-self-link.html
new file mode 100644
index 00000000..20d95611
--- /dev/null
+++ b/layouts/_default/_markup/td-heading-self-link.html
@@ -0,0 +1,11 @@
+{{- /*
+
+ A copy of the private "_default/_markup/_td-heading-self-link.html" template
+ in Docsy's "_default/_markup/_td-render-heading.html" partial to be able to
+ reuse it when the title has custom markup.
+
+ Takes a string which is the ID of the heading.
+
+*/ -}}
+
+
\ No newline at end of file
diff --git a/layouts/partials/events/render-event.html b/layouts/partials/events/render-event.html
index 154e51bf..f9cbb246 100644
--- a/layouts/partials/events/render-event.html
+++ b/layouts/partials/events/render-event.html
@@ -15,14 +15,16 @@
{{ $event_name := .event_name }}
{{ $desired_example_name := .desired_example_name }}
{{ $event_data := .event_data }}
+{{ $anchor := anchorize $event_name }}
-
+
{{ with .title }}{{ . | markdownify }}{{ else }}{{ $event_name }}{{ end }}
+ {{ template "_default/_markup/td-heading-self-link.html" $anchor }}
diff --git a/layouts/partials/openapi/render-operation.html b/layouts/partials/openapi/render-operation.html
index 614e37a1..b55a209e 100644
--- a/layouts/partials/openapi/render-operation.html
+++ b/layouts/partials/openapi/render-operation.html
@@ -37,6 +37,7 @@
{{ $method }}
{{ $endpoint }}
+ {{ template "_default/_markup/td-heading-self-link.html" $anchor }}