diff --git a/newsletter.xml b/newsletter.xml
new file mode 100644
index 0000000000..a729e10ea5
--- /dev/null
+++ b/newsletter.xml
@@ -0,0 +1,44 @@
+---
+permalink: /newsletter.xml
+---
+
+
+
+ {{ site.title | xml_escape }} Newsletter
+ Python conference CFP deadlines coming up in the next 14 days
+ {{ site.url }}
+
+ en-US
+ {{ site.time | date_to_rfc822 }}
+ Jekyll v{{ jekyll.version }}
+{%- assign today = site.time | date: "%s" | plus: 0 -%}
+{%- assign horizon = site.time | date: "%s" | plus: 1209600 -%}
+{%- for conf in site.data.conferences -%}
+ {%- if conf.cfp_ext -%}
+ {%- assign cfp = conf.cfp_ext -%}
+ {%- else -%}
+ {%- assign cfp = conf.cfp -%}
+ {%- endif -%}
+ {%- if cfp != "TBA" and cfp != "Cancelled" and cfp != "None" -%}
+ {%- assign cfp_epoch = cfp | date: "%s" | plus: 0 -%}
+ {%- if cfp_epoch >= today and cfp_epoch <= horizon %}
+ -
+ {{ conf.conference | xml_escape }} {{ conf.year }} — CFP closes {{ cfp | date: "%b %-d" }}
+ {{ site.url }}{{ site.baseurl }}/conference/{{ conf.conference | slugify: "latin" }}-{{ conf.year }}/
+ {{ conf.conference | slugify: "latin" }}-{{ conf.year }}
+ {{ site.time | date_to_rfc822 }}
+ {{ site.title | xml_escape }}
+ {{ conf.sub }}
+ 📍 {{ conf.place | xml_escape }} · 📅 {% translate_file dates/pretty_dates.html start=conf.start end=conf.end %}
+📝 CfP deadline: {% translate_file dates/pretty_dates.html start=cfp end=cfp %}
+{% if conf.cfp_link %}Submit your proposal →
{% endif %}]]>
+
+ {%- endif -%}
+ {%- endif -%}
+{%- endfor %}
+
+