Repository: vacanza/holidays

Issue:
Add missing Germany public holiday
Hello, I think it would be great if, in addition to the country and federal state, the holiday integration also included the city option, or perhaps, since it only affects a single city in Bavaria (Germany), another "federal state" (Bavaria, Augsburg). Here, August 8th is actually another legally protected holiday.


Discussion:
I think that can be arrange, Italy has some similar arrangement for their city-level holidays as well



Patch:
diff --git a/README.md b/README.md
index c784a19954..38a8fb723e 100644
--- a/README.md
+++ b/README.md
@@ -681,7 +681,7 @@ any) in brackets, available languages and additional holiday categories. All cou
 <tr>
 <td>Germany</td>
 <td>DE</td>
-<td>Lands: BB (Brandenburg), BE (Berlin), BW (Baden-Württemberg), BY (Bayern), HB (Bremen), HE (Hessen), HH (Hamburg), MV (Mecklenburg-Vorpommern), NI (Niedersachsen), NW (Nordrhein-Westfalen), RP (Rheinland-Pfalz), SH (Schleswig-Holstein), SL (Saarland), SN (Sachsen), ST (Sachsen-Anhalt), TH (Thüringen)</td>
+<td>States: BB (Brandenburg), BE (Berlin), BW (Baden-Württemberg), BY (Bayern), HB (Bremen), HE (Hessen), HH (Hamburg), MV (Mecklenburg-Vorpommern), NI (Niedersachsen), NW (Nordrhein-Westfalen), RP (Rheinland-Pfalz), SH (Schleswig-Holstein), SL (Saarland), SN (Sachsen), ST (Sachsen-Anhalt), TH (Thüringen); cities: Augsburg</td>
 <td><strong>de</strong>, en_US, th, uk</td>
 <td>CATHOLIC</td>
 </tr>
diff --git a/holidays/countries/germany.py b/holidays/countries/germany.py
index ce1eaa34ba..2b22c30143 100644
--- a/holidays/countries/germany.py
+++ b/holidays/countries/germany.py
@@ -31,12 +31,17 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
     "Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
     in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
     in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
+
+    References:
+        * <https://en.wikipedia.org/wiki/Public_holidays_in_Germany>
+        * [Bavaria's Feiertagsgesetz](https://web.archive.org/web/20250724092008/https://www.gesetze-bayern.de/Content/Document/BayFTG-1)
     """
 
     country = "DE"
     default_language = "de"
     start_year = 1990
     subdivisions = (
+        # States.
         "BB",  # Brandenburg.
         "BE",  # Berlin.
         "BW",  # Baden-Württemberg.
@@ -53,6 +58,8 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
         "SN",  # Sachsen.
         "ST",  # Sachsen-Anhalt.
         "TH",  # Thüringen.
+        # Cities.
+        "Augsburg",
     )
     subdivisions_aliases = {
         "Brandenburg": "BB",
@@ -147,9 +154,13 @@ def _populate_subdiv_bw_public_holidays(self):
 
     def _populate_subdiv_by_public_holidays(self):
         if self._year >= 1991:
+            # Epiphany.
             self._add_epiphany_day(tr("Heilige Drei Könige"))
+
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
+        # All Saints' Day.
         self._add_all_saints_day(tr("Allerheiligen"))
 
     def _populate_subdiv_by_catholic_holidays(self):
@@ -159,63 +170,83 @@ def _populate_subdiv_by_catholic_holidays(self):
 
     def _populate_subdiv_hb_public_holidays(self):
         if self._year >= 2018:
+            # Reformation Day.
             self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_he_public_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
     def _populate_subdiv_hh_public_holidays(self):
         if self._year >= 2018:
+            # Reformation Day.
             self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_mv_public_holidays(self):
         if self._year >= 2023:
+            # International Women's Day.
             self._add_womens_day(tr("Internationaler Frauentag"))
 
+        # Reformation Day.
         self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_ni_public_holidays(self):
         if self._year >= 2018:
+            # Reformation Day.
             self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_nw_public_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
+        # All Saints' Day.
         self._add_all_saints_day(tr("Allerheiligen"))
 
     def _populate_subdiv_rp_public_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
+        # All Saints' Day.
         self._add_all_saints_day(tr("Allerheiligen"))
 
     def _populate_subdiv_sh_public_holidays(self):
         if self._year >= 2018:
+            # Reformation Day.
             self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_sl_public_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
+
+            # Assumption Day.
             self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
 
+        # All Saints' Day.
         self._add_all_saints_day(tr("Allerheiligen"))
 
     def _populate_subdiv_sn_public_holidays(self):
+        # Reformation Day.
         self._add_holiday_oct_31(tr("Reformationstag"))
 
         if self._year >= 1995:
+            # Repentance and Prayer Day.
             self._add_holiday_1st_wed_before_nov_22(tr("Buß- und Bettag"))
 
     def _populate_subdiv_sn_catholic_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
     def _populate_subdiv_st_public_holidays(self):
         if self._year >= 1991:
+            # Epiphany.
             self._add_epiphany_day(tr("Heilige Drei Könige"))
 
+        # Reformation Day.
         self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_th_public_holidays(self):
@@ -223,12 +254,21 @@ def _populate_subdiv_th_public_holidays(self):
             # World Children's Day.
             self._add_holiday_sep_20(tr("Weltkindertag"))
 
+        # Reformation Day.
         self._add_holiday_oct_31(tr("Reformationstag"))
 
     def _populate_subdiv_th_catholic_holidays(self):
         if self._year >= 1991:
+            # Corpus Christi.
             self._add_corpus_christi_day(tr("Fronleichnam"))
 
+    def _populate_subdiv_augsburg_public_holidays(self):
+        self._populate_subdiv_by_public_holidays()
+
+        if self._year >= 1991:
+            # Augsburg Peace Festival.
+            self._add_holiday_aug_8(tr("Augsburger Hohes Friedensfest"))
+
 
 class DE(Germany):
     pass
@@ -248,6 +288,7 @@ class GermanyStaticHolidays:
     """
 
     special_public_holidays = {
+        # Reformation Day.
         2017: (OCT, 31, tr("Reformationstag")),
     }
 
diff --git a/holidays/locale/de/LC_MESSAGES/DE.po b/holidays/locale/de/LC_MESSAGES/DE.po
index 5783958bb3..71708a3dd3 100644
--- a/holidays/locale/de/LC_MESSAGES/DE.po
+++ b/holidays/locale/de/LC_MESSAGES/DE.po
@@ -13,9 +13,9 @@
 # Germany holidays.
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.60\n"
+"Project-Id-Version: Holidays 0.78\n"
 "POT-Creation-Date: 2023-04-04 16:13+0300\n"
-"PO-Revision-Date: 2024-10-30 02:14+0700\n"
+"PO-Revision-Date: 2025-07-24 17:58+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: de\n"
@@ -23,7 +23,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: de\n"
 
 #. New Year's Day.
@@ -102,6 +102,10 @@ msgstr ""
 msgid "Weltkindertag"
 msgstr ""
 
+#. Augsburg Peace Festival.
+msgid "Augsburger Hohes Friedensfest"
+msgstr ""
+
 #. 75th anniversary of the liberation from Nazism and the end of the Second World War in Europe.
 msgid ""
 "75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in "
diff --git a/holidays/locale/en_US/LC_MESSAGES/DE.po b/holidays/locale/en_US/LC_MESSAGES/DE.po
index 1974a0c596..ee450c50e5 100644
--- a/holidays/locale/en_US/LC_MESSAGES/DE.po
+++ b/holidays/locale/en_US/LC_MESSAGES/DE.po
@@ -14,17 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.60\n"
+"Project-Id-Version: Holidays 0.78\n"
 "POT-Creation-Date: 2023-04-04 16:13+0300\n"
-"PO-Revision-Date: 2024-10-30 02:14+0700\n"
+"PO-Revision-Date: 2025-07-24 17:58+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
-"Language-Team: Holidays localization team\n"
+"Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: de\n"
 
 #. New Year's Day.
@@ -103,6 +103,10 @@ msgstr "Assumption Day"
 msgid "Weltkindertag"
 msgstr "World Children's Day"
 
+#. Augsburg Peace Festival.
+msgid "Augsburger Hohes Friedensfest"
+msgstr "Augsburg Peace Festival"
+
 #. 75th anniversary of the liberation from Nazism and the end of the Second World War in Europe.
 msgid ""
 "75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in "
diff --git a/holidays/locale/th/LC_MESSAGES/DE.po b/holidays/locale/th/LC_MESSAGES/DE.po
index 3e6b735467..a82fa2e046 100644
--- a/holidays/locale/th/LC_MESSAGES/DE.po
+++ b/holidays/locale/th/LC_MESSAGES/DE.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.60\n"
+"Project-Id-Version: Holidays 0.78\n"
 "POT-Creation-Date: 2024-09-05 23:21+0700\n"
-"PO-Revision-Date: 2024-10-30 02:14+0700\n"
+"PO-Revision-Date: 2025-07-24 17:58+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingva 5.0.3\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: de\n"
 
 #. New Year's Day.
@@ -103,6 +103,10 @@ msgstr "วันสมโภชแม่พระรับเกียรติ
 msgid "Weltkindertag"
 msgstr "วันเด็กสากล"
 
+#. Augsburg Peace Festival.
+msgid "Augsburger Hohes Friedensfest"
+msgstr "วันเทศกาลสันติภาพเอาก์สบวร์ก"
+
 #. 75th anniversary of the liberation from Nazism and the end of the Second World War in Europe.
 msgid ""
 "75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in "
diff --git a/holidays/locale/uk/LC_MESSAGES/DE.po b/holidays/locale/uk/LC_MESSAGES/DE.po
index 4719eaff25..bb56c57486 100644
--- a/holidays/locale/uk/LC_MESSAGES/DE.po
+++ b/holidays/locale/uk/LC_MESSAGES/DE.po
@@ -14,17 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.60\n"
+"Project-Id-Version: Holidays 0.78\n"
 "POT-Creation-Date: 2023-04-04 16:13+0300\n"
-"PO-Revision-Date: 2024-10-30 02:15+0700\n"
+"PO-Revision-Date: 2025-07-24 17:58+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
-"Language-Team: Holidays localization team\n"
+"Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: de\n"
 
 #. New Year's Day.
@@ -103,6 +103,10 @@ msgstr "Внебовзяття Пресвятої Діви Марії"
 msgid "Weltkindertag"
 msgstr "Всесвітній день дітей"
 
+#. Augsburg Peace Festival.
+msgid "Augsburger Hohes Friedensfest"
+msgstr "Аугсбурзьке свято миру"
+
 #. 75th anniversary of the liberation from Nazism and the end of the Second World War in Europe.
 msgid ""
 "75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in "
diff --git a/snapshots/countries/DE_AUGSBURG.json b/snapshots/countries/DE_AUGSBURG.json
new file mode 100644
index 0000000000..2e9eee60e5
--- /dev/null
+++ b/snapshots/countries/DE_AUGSBURG.json
@@ -0,0 +1,791 @@
+{
+    "1990-10-03": "German Unity Day",
+    "1990-11-01": "All Saints' Day",
+    "1990-11-21": "Repentance and Prayer Day",
+    "1990-12-25": "Christmas Day",
+    "1990-12-26": "Second Day of Christmas",
+    "1991-01-01": "New Year's Day",
+    "1991-01-06": "Epiphany",
+    "1991-03-29": "Good Friday",
+    "1991-04-01": "Easter Monday",
+    "1991-05-01": "Labor Day",
+    "1991-05-09": "Ascension Day",
+    "1991-05-20": "Whit Monday",
+    "1991-05-30": "Corpus Christi",
+    "1991-08-08": "Augsburg Peace Festival",
+    "1991-10-03": "German Unity Day",
+    "1991-11-01": "All Saints' Day",
+    "1991-11-20": "Repentance and Prayer Day",
+    "1991-12-25": "Christmas Day",
+    "1991-12-26": "Second Day of Christmas",
+    "1992-01-01": "New Year's Day",
+    "1992-01-06": "Epiphany",
+    "1992-04-17": "Good Friday",
+    "1992-04-20": "Easter Monday",
+    "1992-05-01": "Labor Day",
+    "1992-05-28": "Ascension Day",
+    "1992-06-08": "Whit Monday",
+    "1992-06-18": "Corpus Christi",
+    "1992-08-08": "Augsburg Peace Festival",
+    "1992-10-03": "German Unity Day",
+    "1992-11-01": "All Saints' Day",
+    "1992-11-18": "Repentance and Prayer Day",
+    "1992-12-25": "Christmas Day",
+    "1992-12-26": "Second Day of Christmas",
+    "1993-01-01": "New Year's Day",
+    "1993-01-06": "Epiphany",
+    "1993-04-09": "Good Friday",
+    "1993-04-12": "Easter Monday",
+    "1993-05-01": "Labor Day",
+    "1993-05-20": "Ascension Day",
+    "1993-05-31": "Whit Monday",
+    "1993-06-10": "Corpus Christi",
+    "1993-08-08": "Augsburg Peace Festival",
+    "1993-10-03": "German Unity Day",
+    "1993-11-01": "All Saints' Day",
+    "1993-11-17": "Repentance and Prayer Day",
+    "1993-12-25": "Christmas Day",
+    "1993-12-26": "Second Day of Christmas",
+    "1994-01-01": "New Year's Day",
+    "1994-01-06": "Epiphany",
+    "1994-04-01": "Good Friday",
+    "1994-04-04": "Easter Monday",
+    "1994-05-01": "Labor Day",
+    "1994-05-12": "Ascension Day",
+    "1994-05-23": "Whit Monday",
+    "1994-06-02": "Corpus Christi",
+    "1994-08-08": "Augsburg Peace Festival",
+    "1994-10-03": "German Unity Day",
+    "1994-11-01": "All Saints' Day",
+    "1994-11-16": "Repentance and Prayer Day",
+    "1994-12-25": "Christmas Day",
+    "1994-12-26": "Second Day of Christmas",
+    "1995-01-01": "New Year's Day",
+    "1995-01-06": "Epiphany",
+    "1995-04-14": "Good Friday",
+    "1995-04-17": "Easter Monday",
+    "1995-05-01": "Labor Day",
+    "1995-05-25": "Ascension Day",
+    "1995-06-05": "Whit Monday",
+    "1995-06-15": "Corpus Christi",
+    "1995-08-08": "Augsburg Peace Festival",
+    "1995-10-03": "German Unity Day",
+    "1995-11-01": "All Saints' Day",
+    "1995-12-25": "Christmas Day",
+    "1995-12-26": "Second Day of Christmas",
+    "1996-01-01": "New Year's Day",
+    "1996-01-06": "Epiphany",
+    "1996-04-05": "Good Friday",
+    "1996-04-08": "Easter Monday",
+    "1996-05-01": "Labor Day",
+    "1996-05-16": "Ascension Day",
+    "1996-05-27": "Whit Monday",
+    "1996-06-06": "Corpus Christi",
+    "1996-08-08": "Augsburg Peace Festival",
+    "1996-10-03": "German Unity Day",
+    "1996-11-01": "All Saints' Day",
+    "1996-12-25": "Christmas Day",
+    "1996-12-26": "Second Day of Christmas",
+    "1997-01-01": "New Year's Day",
+    "1997-01-06": "Epiphany",
+    "1997-03-28": "Good Friday",
+    "1997-03-31": "Easter Monday",
+    "1997-05-01": "Labor Day",
+    "1997-05-08": "Ascension Day",
+    "1997-05-19": "Whit Monday",
+    "1997-05-29": "Corpus Christi",
+    "1997-08-08": "Augsburg Peace Festival",
+    "1997-10-03": "German Unity Day",
+    "1997-11-01": "All Saints' Day",
+    "1997-12-25": "Christmas Day",
+    "1997-12-26": "Second Day of Christmas",
+    "1998-01-01": "New Year's Day",
+    "1998-01-06": "Epiphany",
+    "1998-04-10": "Good Friday",
+    "1998-04-13": "Easter Monday",
+    "1998-05-01": "Labor Day",
+    "1998-05-21": "Ascension Day",
+    "1998-06-01": "Whit Monday",
+    "1998-06-11": "Corpus Christi",
+    "1998-08-08": "Augsburg Peace Festival",
+    "1998-10-03": "German Unity Day",
+    "1998-11-01": "All Saints' Day",
+    "1998-12-25": "Christmas Day",
+    "1998-12-26": "Second Day of Christmas",
+    "1999-01-01": "New Year's Day",
+    "1999-01-06": "Epiphany",
+    "1999-04-02": "Good Friday",
+    "1999-04-05": "Easter Monday",
+    "1999-05-01": "Labor Day",
+    "1999-05-13": "Ascension Day",
+    "1999-05-24": "Whit Monday",
+    "1999-06-03": "Corpus Christi",
+    "1999-08-08": "Augsburg Peace Festival",
+    "1999-10-03": "German Unity Day",
+    "1999-11-01": "All Saints' Day",
+    "1999-12-25": "Christmas Day",
+    "1999-12-26": "Second Day of Christmas",
+    "2000-01-01": "New Year's Day",
+    "2000-01-06": "Epiphany",
+    "2000-04-21": "Good Friday",
+    "2000-04-24": "Easter Monday",
+    "2000-05-01": "Labor Day",
+    "2000-06-01": "Ascension Day",
+    "2000-06-12": "Whit Monday",
+    "2000-06-22": "Corpus Christi",
+    "2000-08-08": "Augsburg Peace Festival",
+    "2000-10-03": "German Unity Day",
+    "2000-11-01": "All Saints' Day",
+    "2000-12-25": "Christmas Day",
+    "2000-12-26": "Second Day of Christmas",
+    "2001-01-01": "New Year's Day",
+    "2001-01-06": "Epiphany",
+    "2001-04-13": "Good Friday",
+    "2001-04-16": "Easter Monday",
+    "2001-05-01": "Labor Day",
+    "2001-05-24": "Ascension Day",
+    "2001-06-04": "Whit Monday",
+    "2001-06-14": "Corpus Christi",
+    "2001-08-08": "Augsburg Peace Festival",
+    "2001-10-03": "German Unity Day",
+    "2001-11-01": "All Saints' Day",
+    "2001-12-25": "Christmas Day",
+    "2001-12-26": "Second Day of Christmas",
+    "2002-01-01": "New Year's Day",
+    "2002-01-06": "Epiphany",
+    "2002-03-29": "Good Friday",
+    "2002-04-01": "Easter Monday",
+    "2002-05-01": "Labor Day",
+    "2002-05-09": "Ascension Day",
+    "2002-05-20": "Whit Monday",
+    "2002-05-30": "Corpus Christi",
+    "2002-08-08": "Augsburg Peace Festival",
+    "2002-10-03": "German Unity Day",
+    "2002-11-01": "All Saints' Day",
+    "2002-12-25": "Christmas Day",
+    "2002-12-26": "Second Day of Christmas",
+    "2003-01-01": "New Year's Day",
+    "2003-01-06": "Epiphany",
+    "2003-04-18": "Good Friday",
+    "2003-04-21": "Easter Monday",
+    "2003-05-01": "Labor Day",
+    "2003-05-29": "Ascension Day",
+    "2003-06-09": "Whit Monday",
+    "2003-06-19": "Corpus Christi",
+    "2003-08-08": "Augsburg Peace Festival",
+    "2003-10-03": "German Unity Day",
+    "2003-11-01": "All Saints' Day",
+    "2003-12-25": "Christmas Day",
+    "2003-12-26": "Second Day of Christmas",
+    "2004-01-01": "New Year's Day",
+    "2004-01-06": "Epiphany",
+    "2004-04-09": "Good Friday",
+    "2004-04-12": "Easter Monday",
+    "2004-05-01": "Labor Day",
+    "2004-05-20": "Ascension Day",
+    "2004-05-31": "Whit Monday",
+    "2004-06-10": "Corpus Christi",
+    "2004-08-08": "Augsburg Peace Festival",
+    "2004-10-03": "German Unity Day",
+    "2004-11-01": "All Saints' Day",
+    "2004-12-25": "Christmas Day",
+    "2004-12-26": "Second Day of Christmas",
+    "2005-01-01": "New Year's Day",
+    "2005-01-06": "Epiphany",
+    "2005-03-25": "Good Friday",
+    "2005-03-28": "Easter Monday",
+    "2005-05-01": "Labor Day",
+    "2005-05-05": "Ascension Day",
+    "2005-05-16": "Whit Monday",
+    "2005-05-26": "Corpus Christi",
+    "2005-08-08": "Augsburg Peace Festival",
+    "2005-10-03": "German Unity Day",
+    "2005-11-01": "All Saints' Day",
+    "2005-12-25": "Christmas Day",
+    "2005-12-26": "Second Day of Christmas",
+    "2006-01-01": "New Year's Day",
+    "2006-01-06": "Epiphany",
+    "2006-04-14": "Good Friday",
+    "2006-04-17": "Easter Monday",
+    "2006-05-01": "Labor Day",
+    "2006-05-25": "Ascension Day",
+    "2006-06-05": "Whit Monday",
+    "2006-06-15": "Corpus Christi",
+    "2006-08-08": "Augsburg Peace Festival",
+    "2006-10-03": "German Unity Day",
+    "2006-11-01": "All Saints' Day",
+    "2006-12-25": "Christmas Day",
+    "2006-12-26": "Second Day of Christmas",
+    "2007-01-01": "New Year's Day",
+    "2007-01-06": "Epiphany",
+    "2007-04-06": "Good Friday",
+    "2007-04-09": "Easter Monday",
+    "2007-05-01": "Labor Day",
+    "2007-05-17": "Ascension Day",
+    "2007-05-28": "Whit Monday",
+    "2007-06-07": "Corpus Christi",
+    "2007-08-08": "Augsburg Peace Festival",
+    "2007-10-03": "German Unity Day",
+    "2007-11-01": "All Saints' Day",
+    "2007-12-25": "Christmas Day",
+    "2007-12-26": "Second Day of Christmas",
+    "2008-01-01": "New Year's Day",
+    "2008-01-06": "Epiphany",
+    "2008-03-21": "Good Friday",
+    "2008-03-24": "Easter Monday",
+    "2008-05-01": "Ascension Day; Labor Day",
+    "2008-05-12": "Whit Monday",
+    "2008-05-22": "Corpus Christi",
+    "2008-08-08": "Augsburg Peace Festival",
+    "2008-10-03": "German Unity Day",
+    "2008-11-01": "All Saints' Day",
+    "2008-12-25": "Christmas Day",
+    "2008-12-26": "Second Day of Christmas",
+    "2009-01-01": "New Year's Day",
+    "2009-01-06": "Epiphany",
+    "2009-04-10": "Good Friday",
+    "2009-04-13": "Easter Monday",
+    "2009-05-01": "Labor Day",
+    "2009-05-21": "Ascension Day",
+    "2009-06-01": "Whit Monday",
+    "2009-06-11": "Corpus Christi",
+    "2009-08-08": "Augsburg Peace Festival",
+    "2009-10-03": "German Unity Day",
+    "2009-11-01": "All Saints' Day",
+    "2009-12-25": "Christmas Day",
+    "2009-12-26": "Second Day of Christmas",
+    "2010-01-01": "New Year's Day",
+    "2010-01-06": "Epiphany",
+    "2010-04-02": "Good Friday",
+    "2010-04-05": "Easter Monday",
+    "2010-05-01": "Labor Day",
+    "2010-05-13": "Ascension Day",
+    "2010-05-24": "Whit Monday",
+    "2010-06-03": "Corpus Christi",
+    "2010-08-08": "Augsburg Peace Festival",
+    "2010-10-03": "German Unity Day",
+    "2010-11-01": "All Saints' Day",
+    "2010-12-25": "Christmas Day",
+    "2010-12-26": "Second Day of Christmas",
+    "2011-01-01": "New Year's Day",
+    "2011-01-06": "Epiphany",
+    "2011-04-22": "Good Friday",
+    "2011-04-25": "Easter Monday",
+    "2011-05-01": "Labor Day",
+    "2011-06-02": "Ascension Day",
+    "2011-06-13": "Whit Monday",
+    "2011-06-23": "Corpus Christi",
+    "2011-08-08": "Augsburg Peace Festival",
+    "2011-10-03": "German Unity Day",
+    "2011-11-01": "All Saints' Day",
+    "2011-12-25": "Christmas Day",
+    "2011-12-26": "Second Day of Christmas",
+    "2012-01-01": "New Year's Day",
+    "2012-01-06": "Epiphany",
+    "2012-04-06": "Good Friday",
+    "2012-04-09": "Easter Monday",
+    "2012-05-01": "Labor Day",
+    "2012-05-17": "Ascension Day",
+    "2012-05-28": "Whit Monday",
+    "2012-06-07": "Corpus Christi",
+    "2012-08-08": "Augsburg Peace Festival",
+    "2012-10-03": "German Unity Day",
+    "2012-11-01": "All Saints' Day",
+    "2012-12-25": "Christmas Day",
+    "2012-12-26": "Second Day of Christmas",
+    "2013-01-01": "New Year's Day",
+    "2013-01-06": "Epiphany",
+    "2013-03-29": "Good Friday",
+    "2013-04-01": "Easter Monday",
+    "2013-05-01": "Labor Day",
+    "2013-05-09": "Ascension Day",
+    "2013-05-20": "Whit Monday",
+    "2013-05-30": "Corpus Christi",
+    "2013-08-08": "Augsburg Peace Festival",
+    "2013-10-03": "German Unity Day",
+    "2013-11-01": "All Saints' Day",
+    "2013-12-25": "Christmas Day",
+    "2013-12-26": "Second Day of Christmas",
+    "2014-01-01": "New Year's Day",
+    "2014-01-06": "Epiphany",
+    "2014-04-18": "Good Friday",
+    "2014-04-21": "Easter Monday",
+    "2014-05-01": "Labor Day",
+    "2014-05-29": "Ascension Day",
+    "2014-06-09": "Whit Monday",
+    "2014-06-19": "Corpus Christi",
+    "2014-08-08": "Augsburg Peace Festival",
+    "2014-10-03": "German Unity Day",
+    "2014-11-01": "All Saints' Day",
+    "2014-12-25": "Christmas Day",
+    "2014-12-26": "Second Day of Christmas",
+    "2015-01-01": "New Year's Day",
+    "2015-01-06": "Epiphany",
+    "2015-04-03": "Good Friday",
+    "2015-04-06": "Easter Monday",
+    "2015-05-01": "Labor Day",
+    "2015-05-14": "Ascension Day",
+    "2015-05-25": "Whit Monday",
+    "2015-06-04": "Corpus Christi",
+    "2015-08-08": "Augsburg Peace Festival",
+    "2015-10-03": "German Unity Day",
+    "2015-11-01": "All Saints' Day",
+    "2015-12-25": "Christmas Day",
+    "2015-12-26": "Second Day of Christmas",
+    "2016-01-01": "New Year's Day",
+    "2016-01-06": "Epiphany",
+    "2016-03-25": "Good Friday",
+    "2016-03-28": "Easter Monday",
+    "2016-05-01": "Labor Day",
+    "2016-05-05": "Ascension Day",
+    "2016-05-16": "Whit Monday",
+    "2016-05-26": "Corpus Christi",
+    "2016-08-08": "Augsburg Peace Festival",
+    "2016-10-03": "German Unity Day",
+    "2016-11-01": "All Saints' Day",
+    "2016-12-25": "Christmas Day",
+    "2016-12-26": "Second Day of Christmas",
+    "2017-01-01": "New Year's Day",
+    "2017-01-06": "Epiphany",
+    "2017-04-14": "Good Friday",
+    "2017-04-17": "Easter Monday",
+    "2017-05-01": "Labor Day",
+    "2017-05-25": "Ascension Day",
+    "2017-06-05": "Whit Monday",
+    "2017-06-15": "Corpus Christi",
+    "2017-08-08": "Augsburg Peace Festival",
+    "2017-10-03": "German Unity Day",
+    "2017-10-31": "Reformation Day",
+    "2017-11-01": "All Saints' Day",
+    "2017-12-25": "Christmas Day",
+    "2017-12-26": "Second Day of Christmas",
+    "2018-01-01": "New Year's Day",
+    "2018-01-06": "Epiphany",
+    "2018-03-30": "Good Friday",
+    "2018-04-02": "Easter Monday",
+    "2018-05-01": "Labor Day",
+    "2018-05-10": "Ascension Day",
+    "2018-05-21": "Whit Monday",
+    "2018-05-31": "Corpus Christi",
+    "2018-08-08": "Augsburg Peace Festival",
+    "2018-10-03": "German Unity Day",
+    "2018-11-01": "All Saints' Day",
+    "2018-12-25": "Christmas Day",
+    "2018-12-26": "Second Day of Christmas",
+    "2019-01-01": "New Year's Day",
+    "2019-01-06": "Epiphany",
+    "2019-04-19": "Good Friday",
+    "2019-04-22": "Easter Monday",
+    "2019-05-01": "Labor Day",
+    "2019-05-30": "Ascension Day",
+    "2019-06-10": "Whit Monday",
+    "2019-06-20": "Corpus Christi",
+    "2019-08-08": "Augsburg Peace Festival",
+    "2019-10-03": "German Unity Day",
+    "2019-11-01": "All Saints' Day",
+    "2019-12-25": "Christmas Day",
+    "2019-12-26": "Second Day of Christmas",
+    "2020-01-01": "New Year's Day",
+    "2020-01-06": "Epiphany",
+    "2020-04-10": "Good Friday",
+    "2020-04-13": "Easter Monday",
+    "2020-05-01": "Labor Day",
+    "2020-05-21": "Ascension Day",
+    "2020-06-01": "Whit Monday",
+    "2020-06-11": "Corpus Christi",
+    "2020-08-08": "Augsburg Peace Festival",
+    "2020-10-03": "German Unity Day",
+    "2020-11-01": "All Saints' Day",
+    "2020-12-25": "Christmas Day",
+    "2020-12-26": "Second Day of Christmas",
+    "2021-01-01": "New Year's Day",
+    "2021-01-06": "Epiphany",
+    "2021-04-02": "Good Friday",
+    "2021-04-05": "Easter Monday",
+    "2021-05-01": "Labor Day",
+    "2021-05-13": "Ascension Day",
+    "2021-05-24": "Whit Monday",
+    "2021-06-03": "Corpus Christi",
+    "2021-08-08": "Augsburg Peace Festival",
+    "2021-10-03": "German Unity Day",
+    "2021-11-01": "All Saints' Day",
+    "2021-12-25": "Christmas Day",
+    "2021-12-26": "Second Day of Christmas",
+    "2022-01-01": "New Year's Day",
+    "2022-01-06": "Epiphany",
+    "2022-04-15": "Good Friday",
+    "2022-04-18": "Easter Monday",
+    "2022-05-01": "Labor Day",
+    "2022-05-26": "Ascension Day",
+    "2022-06-06": "Whit Monday",
+    "2022-06-16": "Corpus Christi",
+    "2022-08-08": "Augsburg Peace Festival",
+    "2022-10-03": "German Unity Day",
+    "2022-11-01": "All Saints' Day",
+    "2022-12-25": "Christmas Day",
+    "2022-12-26": "Second Day of Christmas",
+    "2023-01-01": "New Year's Day",
+    "2023-01-06": "Epiphany",
+    "2023-04-07": "Good Friday",
+    "2023-04-10": "Easter Monday",
+    "2023-05-01": "Labor Day",
+    "2023-05-18": "Ascension Day",
+    "2023-05-29": "Whit Monday",
+    "2023-06-08": "Corpus Christi",
+    "2023-08-08": "Augsburg Peace Festival",
+    "2023-10-03": "German Unity Day",
+    "2023-11-01": "All Saints' Day",
+    "2023-12-25": "Christmas Day",
+    "2023-12-26": "Second Day of Christmas",
+    "2024-01-01": "New Year's Day",
+    "2024-01-06": "Epiphany",
+    "2024-03-29": "Good Friday",
+    "2024-04-01": "Easter Monday",
+    "2024-05-01": "Labor Day",
+    "2024-05-09": "Ascension Day",
+    "2024-05-20": "Whit Monday",
+    "2024-05-30": "Corpus Christi",
+    "2024-08-08": "Augsburg Peace Festival",
+    "2024-10-03": "German Unity Day",
+    "2024-11-01": "All Saints' Day",
+    "2024-12-25": "Christmas Day",
+    "2024-12-26": "Second Day of Christmas",
+    "2025-01-01": "New Year's Day",
+    "2025-01-06": "Epiphany",
+    "2025-04-18": "Good Friday",
+    "2025-04-21": "Easter Monday",
+    "2025-05-01": "Labor Day",
+    "2025-05-29": "Ascension Day",
+    "2025-06-09": "Whit Monday",
+    "2025-06-19": "Corpus Christi",
+    "2025-08-08": "Augsburg Peace Festival",
+    "2025-10-03": "German Unity Day",
+    "2025-11-01": "All Saints' Day",
+    "2025-12-25": "Christmas Day",
+    "2025-12-26": "Second Day of Christmas",
+    "2026-01-01": "New Year's Day",
+    "2026-01-06": "Epiphany",
+    "2026-04-03": "Good Friday",
+    "2026-04-06": "Easter Monday",
+    "2026-05-01": "Labor Day",
+    "2026-05-14": "Ascension Day",
+    "2026-05-25": "Whit Monday",
+    "2026-06-04": "Corpus Christi",
+    "2026-08-08": "Augsburg Peace Festival",
+    "2026-10-03": "German Unity Day",
+    "2026-11-01": "All Saints' Day",
+    "2026-12-25": "Christmas Day",
+    "2026-12-26": "Second Day of Christmas",
+    "2027-01-01": "New Year's Day",
+    "2027-01-06": "Epiphany",
+    "2027-03-26": "Good Friday",
+    "2027-03-29": "Easter Monday",
+    "2027-05-01": "Labor Day",
+    "2027-05-06": "Ascension Day",
+    "2027-05-17": "Whit Monday",
+    "2027-05-27": "Corpus Christi",
+    "2027-08-08": "Augsburg Peace Festival",
+    "2027-10-03": "German Unity Day",
+    "2027-11-01": "All Saints' Day",
+    "2027-12-25": "Christmas Day",
+    "2027-12-26": "Second Day of Christmas",
+    "2028-01-01": "New Year's Day",
+    "2028-01-06": "Epiphany",
+    "2028-04-14": "Good Friday",
+    "2028-04-17": "Easter Monday",
+    "2028-05-01": "Labor Day",
+    "2028-05-25": "Ascension Day",
+    "2028-06-05": "Whit Monday",
+    "2028-06-15": "Corpus Christi",
+    "2028-08-08": "Augsburg Peace Festival",
+    "2028-10-03": "German Unity Day",
+    "2028-11-01": "All Saints' Day",
+    "2028-12-25": "Christmas Day",
+    "2028-12-26": "Second Day of Christmas",
+    "2029-01-01": "New Year's Day",
+    "2029-01-06": "Epiphany",
+    "2029-03-30": "Good Friday",
+    "2029-04-02": "Easter Monday",
+    "2029-05-01": "Labor Day",
+    "2029-05-10": "Ascension Day",
+    "2029-05-21": "Whit Monday",
+    "2029-05-31": "Corpus Christi",
+    "2029-08-08": "Augsburg Peace Festival",
+    "2029-10-03": "German Unity Day",
+    "2029-11-01": "All Saints' Day",
+    "2029-12-25": "Christmas Day",
+    "2029-12-26": "Second Day of Christmas",
+    "2030-01-01": "New Year's Day",
+    "2030-01-06": "Epiphany",
+    "2030-04-19": "Good Friday",
+    "2030-04-22": "Easter Monday",
+    "2030-05-01": "Labor Day",
+    "2030-05-30": "Ascension Day",
+    "2030-06-10": "Whit Monday",
+    "2030-06-20": "Corpus Christi",
+    "2030-08-08": "Augsburg Peace Festival",
+    "2030-10-03": "German Unity Day",
+    "2030-11-01": "All Saints' Day",
+    "2030-12-25": "Christmas Day",
+    "2030-12-26": "Second Day of Christmas",
+    "2031-01-01": "New Year's Day",
+    "2031-01-06": "Epiphany",
+    "2031-04-11": "Good Friday",
+    "2031-04-14": "Easter Monday",
+    "2031-05-01": "Labor Day",
+    "2031-05-22": "Ascension Day",
+    "2031-06-02": "Whit Monday",
+    "2031-06-12": "Corpus Christi",
+    "2031-08-08": "Augsburg Peace Festival",
+    "2031-10-03": "German Unity Day",
+    "2031-11-01": "All Saints' Day",
+    "2031-12-25": "Christmas Day",
+    "2031-12-26": "Second Day of Christmas",
+    "2032-01-01": "New Year's Day",
+    "2032-01-06": "Epiphany",
+    "2032-03-26": "Good Friday",
+    "2032-03-29": "Easter Monday",
+    "2032-05-01": "Labor Day",
+    "2032-05-06": "Ascension Day",
+    "2032-05-17": "Whit Monday",
+    "2032-05-27": "Corpus Christi",
+    "2032-08-08": "Augsburg Peace Festival",
+    "2032-10-03": "German Unity Day",
+    "2032-11-01": "All Saints' Day",
+    "2032-12-25": "Christmas Day",
+    "2032-12-26": "Second Day of Christmas",
+    "2033-01-01": "New Year's Day",
+    "2033-01-06": "Epiphany",
+    "2033-04-15": "Good Friday",
+    "2033-04-18": "Easter Monday",
+    "2033-05-01": "Labor Day",
+    "2033-05-26": "Ascension Day",
+    "2033-06-06": "Whit Monday",
+    "2033-06-16": "Corpus Christi",
+    "2033-08-08": "Augsburg Peace Festival",
+    "2033-10-03": "German Unity Day",
+    "2033-11-01": "All Saints' Day",
+    "2033-12-25": "Christmas Day",
+    "2033-12-26": "Second Day of Christmas",
+    "2034-01-01": "New Year's Day",
+    "2034-01-06": "Epiphany",
+    "2034-04-07": "Good Friday",
+    "2034-04-10": "Easter Monday",
+    "2034-05-01": "Labor Day",
+    "2034-05-18": "Ascension Day",
+    "2034-05-29": "Whit Monday",
+    "2034-06-08": "Corpus Christi",
+    "2034-08-08": "Augsburg Peace Festival",
+    "2034-10-03": "German Unity Day",
+    "2034-11-01": "All Saints' Day",
+    "2034-12-25": "Christmas Day",
+    "2034-12-26": "Second Day of Christmas",
+    "2035-01-01": "New Year's Day",
+    "2035-01-06": "Epiphany",
+    "2035-03-23": "Good Friday",
+    "2035-03-26": "Easter Monday",
+    "2035-05-01": "Labor Day",
+    "2035-05-03": "Ascension Day",
+    "2035-05-14": "Whit Monday",
+    "2035-05-24": "Corpus Christi",
+    "2035-08-08": "Augsburg Peace Festival",
+    "2035-10-03": "German Unity Day",
+    "2035-11-01": "All Saints' Day",
+    "2035-12-25": "Christmas Day",
+    "2035-12-26": "Second Day of Christmas",
+    "2036-01-01": "New Year's Day",
+    "2036-01-06": "Epiphany",
+    "2036-04-11": "Good Friday",
+    "2036-04-14": "Easter Monday",
+    "2036-05-01": "Labor Day",
+    "2036-05-22": "Ascension Day",
+    "2036-06-02": "Whit Monday",
+    "2036-06-12": "Corpus Christi",
+    "2036-08-08": "Augsburg Peace Festival",
+    "2036-10-03": "German Unity Day",
+    "2036-11-01": "All Saints' Day",
+    "2036-12-25": "Christmas Day",
+    "2036-12-26": "Second Day of Christmas",
+    "2037-01-01": "New Year's Day",
+    "2037-01-06": "Epiphany",
+    "2037-04-03": "Good Friday",
+    "2037-04-06": "Easter Monday",
+    "2037-05-01": "Labor Day",
+    "2037-05-14": "Ascension Day",
+    "2037-05-25": "Whit Monday",
+    "2037-06-04": "Corpus Christi",
+    "2037-08-08": "Augsburg Peace Festival",
+    "2037-10-03": "German Unity Day",
+    "2037-11-01": "All Saints' Day",
+    "2037-12-25": "Christmas Day",
+    "2037-12-26": "Second Day of Christmas",
+    "2038-01-01": "New Year's Day",
+    "2038-01-06": "Epiphany",
+    "2038-04-23": "Good Friday",
+    "2038-04-26": "Easter Monday",
+    "2038-05-01": "Labor Day",
+    "2038-06-03": "Ascension Day",
+    "2038-06-14": "Whit Monday",
+    "2038-06-24": "Corpus Christi",
+    "2038-08-08": "Augsburg Peace Festival",
+    "2038-10-03": "German Unity Day",
+    "2038-11-01": "All Saints' Day",
+    "2038-12-25": "Christmas Day",
+    "2038-12-26": "Second Day of Christmas",
+    "2039-01-01": "New Year's Day",
+    "2039-01-06": "Epiphany",
+    "2039-04-08": "Good Friday",
+    "2039-04-11": "Easter Monday",
+    "2039-05-01": "Labor Day",
+    "2039-05-19": "Ascension Day",
+    "2039-05-30": "Whit Monday",
+    "2039-06-09": "Corpus Christi",
+    "2039-08-08": "Augsburg Peace Festival",
+    "2039-10-03": "German Unity Day",
+    "2039-11-01": "All Saints' Day",
+    "2039-12-25": "Christmas Day",
+    "2039-12-26": "Second Day of Christmas",
+    "2040-01-01": "New Year's Day",
+    "2040-01-06": "Epiphany",
+    "2040-03-30": "Good Friday",
+    "2040-04-02": "Easter Monday",
+    "2040-05-01": "Labor Day",
+    "2040-05-10": "Ascension Day",
+    "2040-05-21": "Whit Monday",
+    "2040-05-31": "Corpus Christi",
+    "2040-08-08": "Augsburg Peace Festival",
+    "2040-10-03": "German Unity Day",
+    "2040-11-01": "All Saints' Day",
+    "2040-12-25": "Christmas Day",
+    "2040-12-26": "Second Day of Christmas",
+    "2041-01-01": "New Year's Day",
+    "2041-01-06": "Epiphany",
+    "2041-04-19": "Good Friday",
+    "2041-04-22": "Easter Monday",
+    "2041-05-01": "Labor Day",
+    "2041-05-30": "Ascension Day",
+    "2041-06-10": "Whit Monday",
+    "2041-06-20": "Corpus Christi",
+    "2041-08-08": "Augsburg Peace Festival",
+    "2041-10-03": "German Unity Day",
+    "2041-11-01": "All Saints' Day",
+    "2041-12-25": "Christmas Day",
+    "2041-12-26": "Second Day of Christmas",
+    "2042-01-01": "New Year's Day",
+    "2042-01-06": "Epiphany",
+    "2042-04-04": "Good Friday",
+    "2042-04-07": "Easter Monday",
+    "2042-05-01": "Labor Day",
+    "2042-05-15": "Ascension Day",
+    "2042-05-26": "Whit Monday",
+    "2042-06-05": "Corpus Christi",
+    "2042-08-08": "Augsburg Peace Festival",
+    "2042-10-03": "German Unity Day",
+    "2042-11-01": "All Saints' Day",
+    "2042-12-25": "Christmas Day",
+    "2042-12-26": "Second Day of Christmas",
+    "2043-01-01": "New Year's Day",
+    "2043-01-06": "Epiphany",
+    "2043-03-27": "Good Friday",
+    "2043-03-30": "Easter Monday",
+    "2043-05-01": "Labor Day",
+    "2043-05-07": "Ascension Day",
+    "2043-05-18": "Whit Monday",
+    "2043-05-28": "Corpus Christi",
+    "2043-08-08": "Augsburg Peace Festival",
+    "2043-10-03": "German Unity Day",
+    "2043-11-01": "All Saints' Day",
+    "2043-12-25": "Christmas Day",
+    "2043-12-26": "Second Day of Christmas",
+    "2044-01-01": "New Year's Day",
+    "2044-01-06": "Epiphany",
+    "2044-04-15": "Good Friday",
+    "2044-04-18": "Easter Monday",
+    "2044-05-01": "Labor Day",
+    "2044-05-26": "Ascension Day",
+    "2044-06-06": "Whit Monday",
+    "2044-06-16": "Corpus Christi",
+    "2044-08-08": "Augsburg Peace Festival",
+    "2044-10-03": "German Unity Day",
+    "2044-11-01": "All Saints' Day",
+    "2044-12-25": "Christmas Day",
+    "2044-12-26": "Second Day of Christmas",
+    "2045-01-01": "New Year's Day",
+    "2045-01-06": "Epiphany",
+    "2045-04-07": "Good Friday",
+    "2045-04-10": "Easter Monday",
+    "2045-05-01": "Labor Day",
+    "2045-05-18": "Ascension Day",
+    "2045-05-29": "Whit Monday",
+    "2045-06-08": "Corpus Christi",
+    "2045-08-08": "Augsburg Peace Festival",
+    "2045-10-03": "German Unity Day",
+    "2045-11-01": "All Saints' Day",
+    "2045-12-25": "Christmas Day",
+    "2045-12-26": "Second Day of Christmas",
+    "2046-01-01": "New Year's Day",
+    "2046-01-06": "Epiphany",
+    "2046-03-23": "Good Friday",
+    "2046-03-26": "Easter Monday",
+    "2046-05-01": "Labor Day",
+    "2046-05-03": "Ascension Day",
+    "2046-05-14": "Whit Monday",
+    "2046-05-24": "Corpus Christi",
+    "2046-08-08": "Augsburg Peace Festival",
+    "2046-10-03": "German Unity Day",
+    "2046-11-01": "All Saints' Day",
+    "2046-12-25": "Christmas Day",
+    "2046-12-26": "Second Day of Christmas",
+    "2047-01-01": "New Year's Day",
+    "2047-01-06": "Epiphany",
+    "2047-04-12": "Good Friday",
+    "2047-04-15": "Easter Monday",
+    "2047-05-01": "Labor Day",
+    "2047-05-23": "Ascension Day",
+    "2047-06-03": "Whit Monday",
+    "2047-06-13": "Corpus Christi",
+    "2047-08-08": "Augsburg Peace Festival",
+    "2047-10-03": "German Unity Day",
+    "2047-11-01": "All Saints' Day",
+    "2047-12-25": "Christmas Day",
+    "2047-12-26": "Second Day of Christmas",
+    "2048-01-01": "New Year's Day",
+    "2048-01-06": "Epiphany",
+    "2048-04-03": "Good Friday",
+    "2048-04-06": "Easter Monday",
+    "2048-05-01": "Labor Day",
+    "2048-05-14": "Ascension Day",
+    "2048-05-25": "Whit Monday",
+    "2048-06-04": "Corpus Christi",
+    "2048-08-08": "Augsburg Peace Festival",
+    "2048-10-03": "German Unity Day",
+    "2048-11-01": "All Saints' Day",
+    "2048-12-25": "Christmas Day",
+    "2048-12-26": "Second Day of Christmas",
+    "2049-01-01": "New Year's Day",
+    "2049-01-06": "Epiphany",
+    "2049-04-16": "Good Friday",
+    "2049-04-19": "Easter Monday",
+    "2049-05-01": "Labor Day",
+    "2049-05-27": "Ascension Day",
+    "2049-06-07": "Whit Monday",
+    "2049-06-17": "Corpus Christi",
+    "2049-08-08": "Augsburg Peace Festival",
+    "2049-10-03": "German Unity Day",
+    "2049-11-01": "All Saints' Day",
+    "2049-12-25": "Christmas Day",
+    "2049-12-26": "Second Day of Christmas",
+    "2050-01-01": "New Year's Day",
+    "2050-01-06": "Epiphany",
+    "2050-04-08": "Good Friday",
+    "2050-04-11": "Easter Monday",
+    "2050-05-01": "Labor Day",
+    "2050-05-19": "Ascension Day",
+    "2050-05-30": "Whit Monday",
+    "2050-06-09": "Corpus Christi",
+    "2050-08-08": "Augsburg Peace Festival",
+    "2050-10-03": "German Unity Day",
+    "2050-11-01": "All Saints' Day",
+    "2050-12-25": "Christmas Day",
+    "2050-12-26": "Second Day of Christmas"
+}


Test patch:
diff --git a/tests/countries/test_germany.py b/tests/countries/test_germany.py
index 8ef91c3351..1d64db6684 100644
--- a/tests/countries/test_germany.py
+++ b/tests/countries/test_germany.py
@@ -43,389 +43,332 @@ def test_deprecated(self):
             sorted(Germany(subdiv="BY", years=2023).keys()),
         )
 
-    def test_no_public_holidays_before_1990(self):
+    def test_no_holidays(self):
         self.assertNoHolidays(DE(years=1989))
-        for p in DE.subdivisions:
-            self.assertNoHolidays(DE(years=1989, subdiv=p))
-
-    def test_no_catholic_holidays_before_1991(self):
+        for subdiv in DE.subdivisions:
+            self.assertNoHolidays(DE(years=1989, subdiv=subdiv))
+        # Bayern, Sachsen, Thüringen.
         for subdiv in ("BY", "SN", "TH"):
             self.assertNoHolidays(DE(subdiv=subdiv, years=1990, categories=CATHOLIC))
 
-    def test_1990_present(self):
-        y_1990 = set()
-        for p in DE.subdivisions:
-            y_1990.update(DE(years=1990, subdiv=p).values())
-        all_h = {  # Holidays names in their chronological order.
-            "Tag der Deutschen Einheit",
-            "Reformationstag",
-            "Allerheiligen",
-            "Buß- und Bettag",
-            "Erster Weihnachtstag",
-            "Zweiter Weihnachtstag",
-        }
-
-        self.assertEqual(
-            all_h,
-            y_1990,
-            f"missing: {all_h - y_1990 or 'no'}, extra: {y_1990 - all_h or 'no'}",
+    def test_special_holidays(self):
+        # 2017's Reformation Day is tested in test_reformation_day.
+        be_dt = (
+            "2020-05-08",
+            "2025-05-08",
+            "2028-06-17",
         )
+        for subdiv, holidays in self.subdiv_holidays.items():
+            # Berlin.
+            if subdiv == "BE":
+                self.assertHoliday(holidays, be_dt)
+            else:
+                self.assertNoHoliday(holidays, be_dt)
 
-    def test_all_holidays_present(self):
-        y_2015 = set()
-        for p in DE.subdivisions:
-            y_2015.update(DE(years=2015, subdiv=p).values())
-        all_h = {  # Holidays names in their chronological order.
-            "Neujahr",
-            "Heilige Drei Könige",
-            "Karfreitag",
-            "Ostersonntag",
-            "Ostermontag",
-            "Erster Mai",
-            "Christi Himmelfahrt",
-            "Pfingstsonntag",
-            "Pfingstmontag",
-            "Fronleichnam",
-            "Mariä Himmelfahrt",
-            "Tag der Deutschen Einheit",
-            "Reformationstag",
-            "Allerheiligen",
-            "Buß- und Bettag",
-            "Erster Weihnachtstag",
-            "Zweiter Weihnachtstag",
-        }
-
-        self.assertEqual(
-            all_h,
-            y_2015,
-            f"missing: {all_h - y_2015 or 'no'}, extra: {y_2015 - all_h or 'no'}",
-        )
+    def test_new_years_day(self):
+        name = "Neujahr"
+        self.assertHolidayName(name, (f"{year}-01-01" for year in range(1991, 2050)))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_fixed_holidays(self):
-        self.assertHolidayName("Neujahr", (f"{year}-01-01" for year in range(1991, 2050)))
-        self.assertHolidayName("Erster Mai", (f"{year}-05-01" for year in range(1991, 2050)))
-        self.assertHolidayName(
-            "Tag der Deutschen Einheit", (f"{year}-10-03" for year in range(1990, 2050))
-        )
-        self.assertHolidayName(
-            "Erster Weihnachtstag", (f"{year}-12-25" for year in range(1990, 2050))
-        )
-        self.assertHolidayName(
-            "Zweiter Weihnachtstag", (f"{year}-12-26" for year in range(1990, 2050))
-        )
-
-    def test_heilige_drei_koenige(self):
+    def test_epiphany(self):
         name = "Heilige Drei Könige"
         self.assertNoHolidayName(name)
         for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv in {"BW", "BY", "ST"}:
+            # Bayern, Sachsen, Thüringen, Augsburg.
+            if subdiv in {"BW", "BY", "ST", "Augsburg"}:
                 self.assertHolidayName(
                     name, holidays, (f"{year}-01-06" for year in range(1991, 2050))
                 )
+                self.assertNoHolidayName(name, holidays, 1990)
+            else:
+                self.assertNoHolidayName(name, holidays)
+
+    def test_international_womens_day(self):
+        name = "Internationaler Frauentag"
+        self.assertNoHolidayName(name)
+        for subdiv, holidays in self.subdiv_holidays.items():
+            # Berlin - 2019.
+            if subdiv == "BE":
+                self.assertHolidayName(
+                    name, holidays, (f"{year}-03-08" for year in range(2019, 2050))
+                )
+                self.assertNoHolidayName(name, holidays, range(1990, 2019))
+            # Mecklenburg-Vorpommern - 2023.
+            elif subdiv == "MV":
+                self.assertHolidayName(
+                    name, holidays, (f"{year}-03-08" for year in range(2023, 2050))
+                )
+                self.assertNoHolidayName(name, holidays, range(1990, 2023))
             else:
-                self.assertNoHoliday(holidays, (f"{year}-01-06" for year in range(1991, 2050)))
                 self.assertNoHolidayName(name, holidays)
 
-    def test_karfreitag(self):
+    def test_good_friday(self):
         name = "Karfreitag"
-        known_good = (
-            "2014-04-18",
-            "2015-04-03",
-            "2016-03-25",
-            "2017-04-14",
-            "2018-03-30",
-            "2019-04-19",
+        dt = (
             "2020-04-10",
             "2021-04-02",
             "2022-04-15",
             "2023-04-07",
             "2024-03-29",
+            "2025-04-18",
         )
         for holidays in self.subdiv_holidays.values():
-            self.assertHolidayName(name, holidays, known_good)
+            self.assertHolidayName(name, holidays, dt)
             self.assertHolidayName(name, holidays, range(1991, 2050))
-        self.assertHolidayName(name, known_good)
+            self.assertNoHolidayName(name, holidays, 1990)
+        self.assertHolidayName(name, dt)
         self.assertHolidayName(name, range(1991, 2050))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_ostersonntag(self):
+    def test_easter_sunday(self):
         name = "Ostersonntag"
         self.assertNoHolidayName(name)
-        known_good = (
-            "2014-04-20",
-            "2015-04-05",
-            "2016-03-27",
-            "2017-04-16",
-            "2018-04-01",
-            "2019-04-21",
-            "2020-04-12",
-            "2021-04-04",
-            "2022-04-17",
-            "2023-04-09",
-            "2024-03-31",
-        )
         for subdiv, holidays in self.subdiv_holidays.items():
+            # Brandenburg.
             if subdiv == "BB":
-                self.assertHolidayName(name, holidays, known_good)
+                self.assertHolidayName(
+                    name,
+                    holidays,
+                    "2020-04-12",
+                    "2021-04-04",
+                    "2022-04-17",
+                    "2023-04-09",
+                    "2024-03-31",
+                    "2025-04-20",
+                )
                 self.assertHolidayName(name, holidays, range(1991, 2050))
+                self.assertNoHolidayName(name, holidays, 1990)
             else:
-                self.assertNoHoliday(holidays, known_good)
                 self.assertNoHolidayName(name, holidays)
 
-    def test_ostermontag(self):
+    def test_easter_monday(self):
         name = "Ostermontag"
-        known_good = (
-            "2014-04-21",
-            "2015-04-06",
-            "2016-03-28",
-            "2017-04-17",
-            "2018-04-02",
-            "2019-04-22",
+        dt = (
             "2020-04-13",
             "2021-04-05",
             "2022-04-18",
             "2023-04-10",
             "2024-04-01",
+            "2025-04-21",
         )
         for holidays in self.subdiv_holidays.values():
-            self.assertHolidayName(name, holidays, known_good)
+            self.assertHolidayName(name, holidays, dt)
             self.assertHolidayName(name, holidays, range(1991, 2050))
-        self.assertHolidayName(name, known_good)
+            self.assertNoHolidayName(name, holidays, 1990)
+        self.assertHolidayName(name, dt)
         self.assertHolidayName(name, range(1991, 2050))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_75_jahrestag_beendigung_zweiter_weltkrieg(self):
-        dt = "2020-05-08"
-        for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv == "BE":
-                self.assertHoliday(holidays, dt)
-            else:
-                self.assertNoHoliday(holidays, dt)
-
-    def test_80_jahrestag_beendigung_zweiter_weltkrieg(self):
-        dt = "2025-05-08"
-        for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv == "BE":
-                self.assertHoliday(holidays, dt)
-            else:
-                self.assertNoHoliday(holidays, dt)
-
-    def test_75_jahrestag_des_aufstandes_vom_17_juni_1953(self):
-        dt = "2028-06-17"
-        for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv == "BE":
-                self.assertHoliday(holidays, dt)
-            else:
-                self.assertNoHoliday(holidays, dt)
-
-    def test_christi_himmelfahrt(self):
+    def test_ascension_day(self):
         name = "Christi Himmelfahrt"
-        known_good = (
-            "2014-05-29",
-            "2015-05-14",
-            "2016-05-05",
-            "2017-05-25",
-            "2018-05-10",
-            "2019-05-30",
+        dt = (
             "2020-05-21",
             "2021-05-13",
             "2022-05-26",
             "2023-05-18",
             "2024-05-09",
+            "2025-05-29",
         )
         for holidays in self.subdiv_holidays.values():
-            self.assertHolidayName(name, holidays, known_good)
+            self.assertHolidayName(name, holidays, dt)
             self.assertHolidayName(name, holidays, range(1991, 2050))
-        self.assertHolidayName(name, known_good)
+            self.assertNoHolidayName(name, holidays, 1990)
+        self.assertHolidayName(name, dt)
         self.assertHolidayName(name, range(1991, 2050))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_weltkindertag(self):
-        name = "Weltkindertag"
-        self.assertNoHolidayName(name)
-        for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv == "TH":
-                self.assertHolidayName(
-                    name, holidays, (f"{year}-09-20" for year in range(2019, 2050))
-                )
-                self.assertNoHoliday(holidays, (f"{year}-09-20" for year in range(1991, 2019)))
-                self.assertNoHolidayName(name, range(1991, 2019))
-            else:
-                self.assertNoHoliday(holidays, (f"{year}-09-20" for year in range(1991, 2050)))
-                self.assertNoHolidayName(name, holidays)
+    def test_labor_day(self):
+        name = "Erster Mai"
+        self.assertHolidayName(name, (f"{year}-05-01" for year in range(1991, 2050)))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_frauentag(self):
-        name = "Internationaler Frauentag"
-        self.assertNoHolidayName(name)
-        for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv == "BE":
-                self.assertHolidayName(
-                    name, holidays, (f"{year}-03-08" for year in range(2019, 2050))
-                )
-                self.assertNoHoliday(holidays, (f"{year}-03-08" for year in range(1991, 2019)))
-                self.assertNoHolidayName(name, range(1991, 2019))
-            elif subdiv == "MV":
-                self.assertHolidayName(
-                    name, holidays, (f"{year}-03-08" for year in range(2023, 2050))
-                )
-                self.assertNoHoliday(holidays, (f"{year}-03-08" for year in range(1991, 2023)))
-                self.assertNoHolidayName(name, range(1991, 2023))
-            else:
-                self.assertNoHoliday(holidays, (f"{year}-03-08" for year in range(1991, 2050)))
-                self.assertNoHolidayName(name, holidays)
-
-    def test_pfingstsonntag(self):
+    def test_whit_sunday(self):
         name = "Pfingstsonntag"
         self.assertNoHolidayName(name)
-        known_good = (
-            "2014-06-08",
-            "2015-05-24",
-            "2016-05-15",
-            "2017-06-04",
-            "2018-05-20",
-            "2019-06-09",
-            "2020-05-31",
-            "2021-05-23",
-            "2022-06-05",
-            "2023-05-28",
-            "2024-05-19",
-        )
         for subdiv, holidays in self.subdiv_holidays.items():
+            # Brandenburg.
             if subdiv == "BB":
-                self.assertHolidayName(name, holidays, known_good)
+                self.assertHolidayName(
+                    name,
+                    holidays,
+                    "2020-05-31",
+                    "2021-05-23",
+                    "2022-06-05",
+                    "2023-05-28",
+                    "2024-05-19",
+                    "2025-06-08",
+                )
                 self.assertHolidayName(name, holidays, range(1991, 2050))
+                self.assertNoHolidayName(name, holidays, 1990)
             else:
-                self.assertNoHoliday(holidays, known_good)
                 self.assertNoHolidayName(name, holidays)
 
-    def test_pfingstmontag(self):
+    def test_whit_monday(self):
         name = "Pfingstmontag"
-        known_good = (
-            "2014-06-09",
-            "2015-05-25",
-            "2016-05-16",
-            "2017-06-05",
-            "2018-05-21",
-            "2019-06-10",
+        dt = (
             "2020-06-01",
             "2021-05-24",
             "2022-06-06",
             "2023-05-29",
             "2024-05-20",
+            "2025-06-09",
         )
         for holidays in self.subdiv_holidays.values():
-            self.assertHolidayName(name, holidays, known_good)
+            self.assertHolidayName(name, holidays, dt)
             self.assertHolidayName(name, holidays, range(1991, 2050))
-        self.assertHolidayName(name, known_good)
+            self.assertNoHolidayName(name, holidays, 1990)
+        self.assertHolidayName(name, dt)
         self.assertHolidayName(name, range(1991, 2050))
+        self.assertNoHolidayName(name, 1990)
 
-    def test_fronleichnam(self):
+    def test_corpus_christi(self):
         name = "Fronleichnam"
         self.assertNoHolidayName(name)
-        known_good = (
-            "2014-06-19",
-            "2015-06-04",
-            "2016-05-26",
-            "2017-06-15",
-            "2018-05-31",
-            "2019-06-20",
+        dt = (
             "2020-06-11",
             "2021-06-03",
             "2022-06-16",
             "2023-06-08",
             "2024-05-30",
+            "2025-06-19",
         )
         for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv in {"BW", "BY", "HE", "NW", "RP", "SL"}:
-                self.assertHolidayName(name, holidays, known_good)
+            # Baden-Württemberg, Bayern, Hessen, Nordrhein-Westfalen,
+            # Rheinland-Pfalz, Saarland, Augsburg.
+            if subdiv in {"BW", "BY", "HE", "NW", "RP", "SL", "Augsburg"}:
+                self.assertHolidayName(name, holidays, dt)
                 self.assertHolidayName(name, holidays, range(1991, 2050))
+                self.assertNoHolidayName(name, holidays, 1990)
             else:
-                self.assertNoHoliday(holidays, known_good)
                 self.assertNoHolidayName(name, holidays)
+
+        # Sachsen, Thüringen.
         for subdiv in ("SN", "TH"):
             catholic_holidays = DE(subdiv=subdiv, categories=CATHOLIC, years=range(1991, 2050))
-            self.assertHolidayName(name, catholic_holidays, known_good)
+            self.assertHolidayName(name, catholic_holidays, dt)
             self.assertHolidayName(name, catholic_holidays, range(1991, 2050))
 
-    def test_mariae_himmelfahrt(self):
+    def test_augsburg_peace_festival(self):
+        name = "Augsburger Hohes Friedensfest"
+        self.assertNoHolidayName(name)
+        for subdiv, holidays in self.subdiv_holidays.items():
+            # Augsburg.
+            if subdiv == "Augsburg":
+                self.assertHolidayName(
+                    name, holidays, (f"{year}-08-08" for year in range(1991, 2050))
+                )
+                self.assertNoHolidayName(name, holidays, 1990)
+            else:
+                self.assertNoHolidayName(name, holidays)
+
+    def test_assumption_day(self):
         name = "Mariä Himmelfahrt"
         self.assertNoHolidayName(name)
         for subdiv, holidays in self.subdiv_holidays.items():
+            # Saarland.
             if subdiv == "SL":
                 self.assertHolidayName(
                     name, holidays, (f"{year}-08-15" for year in range(1991, 2050))
                 )
+                self.assertNoHolidayName(name, holidays, 1990)
             else:
-                self.assertNoHoliday(holidays, (f"{year}-08-15" for year in range(1991, 2050)))
                 self.assertNoHolidayName(name, holidays)
 
+        # Bayern.
         self.assertHolidayName(
             name,
             DE(subdiv="BY", categories=CATHOLIC, years=range(1991, 2050)),
             (f"{year}-08-15" for year in range(1991, 2050)),
         )
 
-    def test_reformationstag(self):
+    def test_world_childrens_day(self):
+        name = "Weltkindertag"
+        self.assertNoHolidayName(name)
+        for subdiv, holidays in self.subdiv_holidays.items():
+            # Thüringen.
+            if subdiv == "TH":
+                self.assertHolidayName(
+                    name, holidays, (f"{year}-09-20" for year in range(2019, 2050))
+                )
+                self.assertNoHolidayName(name, holidays, range(1990, 2019))
+            else:
+                self.assertNoHolidayName(name, holidays)
+
+    def test_german_unity_day(self):
+        self.assertHolidayName(
+            "Tag der Deutschen Einheit", (f"{year}-10-03" for year in range(1990, 2050))
+        )
+
+    def test_reformation_day(self):
         name = "Reformationstag"
         for subdiv, holidays in self.subdiv_holidays.items():
+            # Brandenburg, Mecklenburg-Vorpommern, Sachsen, Sachsen-Anhalt, Thüringen.
             if subdiv in {"BB", "MV", "SN", "ST", "TH"}:
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-10-31" for year in range(1991, 2050))
+                    name, holidays, (f"{year}-10-31" for year in range(1990, 2050))
                 )
+            # Bremen, Hamburg, Niedersachsen, Schleswig-Holstein.
             elif subdiv in {"HB", "HH", "NI", "SH"}:
+                # While these subdivisions started their holiday observance in 2018,
+                # this is de facto implemented in 2017's nationwide special observance.
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-10-31" for year in range(2018, 2050))
+                    name, holidays, (f"{year}-10-31" for year in range(2017, 2050))
                 )
-                self.assertNoHoliday(holidays, (f"{year}-10-31" for year in range(1991, 2017)))
-                self.assertNoHolidayName(name, range(1991, 2017))
+                self.assertNoHolidayName(name, holidays, range(1990, 2017))
             else:
-                self.assertNoHoliday(
-                    holidays,
-                    (f"{year}-10-31" for year in (*range(1991, 2017), *range(2018, 2050))),
-                )
-                self.assertNoHolidayName(name, range(1991, 2017), range(2018, 2050))
+                self.assertHolidayName(name, holidays, "2017-10-31")
+                self.assertNoHolidayName(name, holidays, range(1991, 2017), range(2018, 2050))
         self.assertHolidayName(name, "2017-10-31")
 
-    def test_allerheiligen(self):
+    def test_all_saints_day(self):
         name = "Allerheiligen"
         self.assertNoHolidayName(name)
         for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv in {"BW", "BY", "NW", "RP", "SL"}:
+            # Baden-Württemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Augsburg.
+            if subdiv in {"BW", "BY", "NW", "RP", "SL", "Augsburg"}:
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-11-01" for year in range(1991, 2050))
+                    name, holidays, (f"{year}-11-01" for year in range(1990, 2050))
                 )
             else:
-                self.assertNoHoliday(holidays, (f"{year}-11-01" for year in range(1991, 2050)))
                 self.assertNoHolidayName(name, holidays)
 
-    def test_buss_und_bettag(self):
+    def test_repentance_and_prayer_day(self):
         name = "Buß- und Bettag"
-        known_good = (
-            "2014-11-19",
-            "2015-11-18",
-            "2016-11-16",
-            "2017-11-22",
-            "2018-11-21",
-            "2019-11-20",
+        dt_pre_1995 = (
+            "1990-11-21",
+            "1991-11-20",
+            "1992-11-18",
+            "1993-11-17",
+            "1994-11-16",
+        )
+        dt = (
             "2020-11-18",
             "2021-11-17",
             "2022-11-16",
             "2023-11-22",
             "2024-11-20",
+            "2025-11-19",
         )
         for subdiv, holidays in self.subdiv_holidays.items():
+            # Sachsen.
             if subdiv == "SN":
-                self.assertHolidayName(name, holidays, known_good)
-                self.assertHolidayName(name, holidays, range(1991, 2050))
+                self.assertHolidayName(name, holidays, dt, dt_pre_1995)
+                self.assertHolidayName(name, holidays, range(1990, 2050))
             else:
-                self.assertNoHoliday(holidays, known_good)
+                self.assertHolidayName(name, holidays, dt_pre_1995)
                 self.assertNoHolidayName(name, holidays, range(1995, 2050))
+        self.assertHolidayName(name, dt_pre_1995)
+        self.assertNoHolidayName(name, range(1995, 2050))
+
+    def test_christmas_day(self):
         self.assertHolidayName(
-            name,
-            "1990-11-21",
-            "1991-11-20",
-            "1992-11-18",
-            "1993-11-17",
-            "1994-11-16",
+            "Erster Weihnachtstag", (f"{year}-12-25" for year in range(1990, 2050))
+        )
+
+    def test_second_day_of_christmas(self):
+        self.assertHolidayName(
+            "Zweiter Weihnachtstag", (f"{year}-12-26" for year in range(1990, 2050))
         )
-        self.assertNoHolidayName(name, range(1995, 2050))
 
     def test_l10n_default(self):
         self.assertLocalizedHolidays(
@@ -440,6 +383,7 @@ def test_l10n_default(self):
             ("2022-06-05", "Pfingstsonntag"),
             ("2022-06-06", "Pfingstmontag"),
             ("2022-06-16", "Fronleichnam"),
+            ("2022-08-08", "Augsburger Hohes Friedensfest"),
             ("2022-08-15", "Mariä Himmelfahrt"),
             ("2022-09-20", "Weltkindertag"),
             ("2022-10-03", "Tag der Deutschen Einheit"),
@@ -464,6 +408,7 @@ def test_l10n_en_us(self):
             ("2022-06-05", "Whit Sunday"),
             ("2022-06-06", "Whit Monday"),
             ("2022-06-16", "Corpus Christi"),
+            ("2022-08-08", "Augsburg Peace Festival"),
             ("2022-08-15", "Assumption Day"),
             ("2022-09-20", "World Children's Day"),
             ("2022-10-03", "German Unity Day"),
@@ -488,6 +433,7 @@ def test_l10n_th(self):
             ("2022-06-05", "วันสมโภชพระจิตเจ้า"),
             ("2022-06-06", "วันจันทร์หลังวันสมโภชพระจิตเจ้า"),
             ("2022-06-16", "วันสมโภชพระคริสตวรกาย"),
+            ("2022-08-08", "วันเทศกาลสันติภาพเอาก์สบวร์ก"),
             ("2022-08-15", "วันสมโภชแม่พระรับเกียรติยกขึ้นสวรรค์"),
             ("2022-09-20", "วันเด็กสากล"),
             ("2022-10-03", "วันรวมชาติเยอรมัน"),
@@ -512,6 +458,7 @@ def test_l10n_uk(self):
             ("2022-06-05", "Трійця"),
             ("2022-06-06", "День Святого Духа"),
             ("2022-06-16", "Свято Тіла і Крові Христових"),
+            ("2022-08-08", "Аугсбурзьке свято миру"),
             ("2022-08-15", "Внебовзяття Пресвятої Діви Марії"),
             ("2022-09-20", "Всесвітній день дітей"),
             ("2022-10-03", "День німецької єдності"),