We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[Bug]: BSR_DE seems not to work anymore
### I Have A Problem With:

A specific source

### What's Your Problem

Source BSR_DE is not importing anything.

This is the Path to the Calendar
https://www.bsr.de/abfuhrkalender_ajax.php?script=dynamic_iCal_ajax&abf_strasse=Chaukenstr.,%2012524%20Berlin%20(Treptow-K%C3%B6penick)&abf_hausnr=3X&tab_control=Liste&abf_config_weihnachtsbaeume=&abf_config_restmuell=on&abf_config_biogut=on&abf_config_wertstoffe=on&abf_config_laubtonne=on

this is the Ical it should get.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//www.bsr.de//NONSGML kigkonsult.se iCalcreator 2.41.71//
CALSCALE:GREGORIAN
UID:65616338-3738-4064-a633-326437643934
BEGIN:VEVENT
UID:32386261-6536-4130-a166-356138626438
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Hausmüll
DTSTART;TZID=Europe/Berlin:20231228T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Hausmüll
END:VEVENT
BEGIN:VEVENT
UID:37383565-6638-4232-a331-633133633061
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Biogut
DTSTART;TZID=Europe/Berlin:20240102T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Biogut
END:VEVENT
BEGIN:VEVENT
UID:30626662-3731-4963-b836-653262613233
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Wertstoffe (Abholung durch ALBA)
DTSTART;TZID=Europe/Berlin:20240109T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Wertstoffe (Abholung durch ALBA)
END:VEVENT
BEGIN:VEVENT
UID:64356336-6132-4464-a339-646533373961
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Hausmüll
DTSTART;TZID=Europe/Berlin:20240110T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Hausmüll
END:VEVENT
BEGIN:VEVENT
UID:61636636-6661-4834-b063-653566636636
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Biogut
DTSTART;TZID=Europe/Berlin:20240115T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Biogut
END:VEVENT
BEGIN:VEVENT
UID:32326238-3862-4533-b361-353033303935
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Wertstoffe (Abholung durch ALBA)
DTSTART;TZID=Europe/Berlin:20240123T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Wertstoffe (Abholung durch ALBA)
END:VEVENT
BEGIN:VEVENT
UID:30396632-3239-4764-b439-336132306661
DTSTAMP:20231228T151659Z
DESCRIPTION:Abholung Hausmüll
DTSTART;TZID=Europe/Berlin:20240124T000000
LOCATION:Chaukenstr. 3X\,
SUMMARY:Abholung Hausmüll
END:VEVENT
END:VCALENDAR

### Source (if relevant)

BSR_DE

### Logs

```Shell
no relevant logs
```


### Relevant Configuration

```YAML
- name: bsr_de
      args:
        abf_strasse: Chaukenstr., 12524 Berlin (Treptow-Köpenick)
        abf_hausnr: 3*
```


### Checklist Source Error

- [X] Use the example parameters for your source (often available in the documentation) (don't forget to restart Home Assistant after changing the configuration)
- [X] Checked that the website of your service provider is still working
- [X] Tested my attributes on the service provider website (if possible)
- [X] I have tested with the latest version of the integration (master) (for HACS in the 3 dot menu of the integration click on "Redownload" and choose master as version)

### Checklist Sensor Error

- [x] Checked in the Home Assistant Calendar tab if the event names match the types names (if types argument is used)

### Required

- [X] I have searched past (closed AND opened) issues to see if this bug has already been reported, and it hasn't been.
- [X] I understand that people give their precious time for free, and thus I've done my very best to make this problem as easy as possible to investigate.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py`
Content:
```
1 import urllib.parse
2 
3 import requests
4 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
5 from waste_collection_schedule.service.ICS import ICS
6 
7 TITLE = "Berliner Stadtreinigungsbetriebe"
8 DESCRIPTION = "Source for Berliner Stadtreinigungsbetriebe waste collection."
9 URL = "https://bsr.de"
10 TEST_CASES = {
11     "Bahnhofstr., 12159 Berlin (Tempelhof-Schöneberg)": {
12         "abf_strasse": "Bahnhofstr., 12159 Berlin (Tempelhof-Schöneberg)",
13         "abf_hausnr": 1,
14     },
15     "Am Ried, 13467 Berlin (Reinickendorf)": {
16         "abf_strasse": "Am Ried, 13467 Berlin (Reinickendorf)",
17         "abf_hausnr": "11G",
18     },
19 }
20 
21 
22 def myquote(s):
23     # bsr uses strange quoting
24     return urllib.parse.quote(s, safe=",()")
25 
26 
27 class Source:
28     def __init__(self, abf_strasse, abf_hausnr):
29         self._abf_strasse = abf_strasse
30         self._abf_hausnr = abf_hausnr
31         self._ics = ICS(offset=1)
32 
33     def fetch(self):
34         # get cookie
35         r = requests.get("https://www.bsr.de/abfuhrkalender-20520.php")
36         cookies = r.cookies
37 
38         # get street name only (without PLZ)
39         street = self._abf_strasse.split(",")[0]
40 
41         # start search using string name (without PLZ)
42         args = {"script": "dynamic_search", "step": 1, "q": street}
43         r = requests.get(
44             "https://www.bsr.de/abfuhrkalender_ajax.php", params=args, cookies=cookies
45         )
46 
47         # retrieve house number list
48         args = {"script": "dynamic_search", "step": 2, "q": self._abf_strasse}
49         r = requests.get(
50             "https://www.bsr.de/abfuhrkalender_ajax.php", params=args, cookies=cookies
51         )
52 
53         args = {
54             "abf_strasse": street,
55             "abf_hausnr": self._abf_hausnr,
56             "tab_control": "Jahr",
57             "abf_config_weihnachtsbaeume": "",
58             "abf_config_restmuell": "on",
59             "abf_config_biogut": "on",
60             "abf_config_wertstoffe": "on",
61             "abf_config_laubtonne": "on",
62             # "abf_selectmonth": "5 2020",
63             # "abf_datepicker": "28.04.2020",
64             # "listitems":7,
65         }
66         r = requests.post(
67             "https://www.bsr.de/abfuhrkalender_ajax.php?script=dynamic_kalender_ajax",
68             data=args,
69             cookies=cookies,
70         )
71 
72         args = {
73             "script": "dynamic_iCal_ajax",
74             "abf_strasse": self._abf_strasse,
75             "abf_hausnr": self._abf_hausnr,
76             "tab_control": "Jahr",
77             "abf_config_weihnachtsbaeume": "",
78             "abf_config_restmuell": "on",
79             "abf_config_biogut": "on",
80             "abf_config_wertstoffe": "on",
81             "abf_config_laubtonne": "on",
82             # "abf_selectmonth": "5 2020",
83             # "listitems":7,
84         }
85 
86         # create url using private url encoding
87         encoded = map(lambda key: f"{key}={myquote(str(args[key]))}", args.keys())
88         url = "https://www.bsr.de/abfuhrkalender_ajax.php?" + "&".join(encoded)
89         r = requests.get(url, cookies=cookies)
90 
91         # parse ics file
92         dates = self._ics.convert(r.text)
93 
94         entries = []
95         for d in dates:
96             entries.append(Collection(d[0], d[1]))
97         return entries
98
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py
--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py
+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py
@@ -1,4 +1,5 @@
 import urllib.parse
+import datetime
 
 import requests
 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
@@ -91,6 +92,22 @@
         # parse ics file
         dates = self._ics.convert(r.text)
 
+
+        now = datetime.datetime.now()
+        # in nov/dec already fetch a monthly ics for january
+        # as yearly ics isn't available until the 1. of january.
+        if now.month in [11, 12]:
+            args["tab_control"] = "Monat"
+            args["abf_selectmonth"] = "1 " + str(now.year + 1)
+
+            # create url using private url encoding
+            encoded = map(lambda key: f"{key}={myquote(str(args[key]))}", args.keys())
+            url = "https://www.bsr.de/abfuhrkalender_ajax.php?" + "&".join(encoded)
+            r = requests.get(url, cookies=cookies)
+
+            # parse ics file
+            dates.extend (self._ics.convert(r.text) )
+
         entries = []
         for d in dates:
             entries.append(Collection(d[0], d[1]))

{"golden_diff": "diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py\n--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py\n+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py\n@@ -1,4 +1,5 @@\n import urllib.parse\n+import datetime\n \n import requests\n from waste_collection_schedule import Collection  # type: ignore[attr-defined]\n@@ -91,6 +92,22 @@\n         # parse ics file\n         dates = self._ics.convert(r.text)\n \n+\n+        now = datetime.datetime.now()\n+        # in nov/dec already fetch a monthly ics for january\n+        # as yearly ics isn't available until the 1. of january.\n+        if now.month in [11, 12]:\n+            args[\"tab_control\"] = \"Monat\"\n+            args[\"abf_selectmonth\"] = \"1 \" + str(now.year + 1)\n+\n+            # create url using private url encoding\n+            encoded = map(lambda key: f\"{key}={myquote(str(args[key]))}\", args.keys())\n+            url = \"https://www.bsr.de/abfuhrkalender_ajax.php?\" + \"&\".join(encoded)\n+            r = requests.get(url, cookies=cookies)\n+\n+            # parse ics file\n+            dates.extend (self._ics.convert(r.text) )\n+\n         entries = []\n         for d in dates:\n             entries.append(Collection(d[0], d[1]))\n", "issue": "[Bug]: BSR_DE seems not to work anymore\n### I Have A Problem With:\n\nA specific source\n\n### What's Your Problem\n\nSource BSR_DE is not importing anything.\r\n\r\nThis is the Path to the Calendar\r\nhttps://www.bsr.de/abfuhrkalender_ajax.php?script=dynamic_iCal_ajax&abf_strasse=Chaukenstr.,%2012524%20Berlin%20(Treptow-K%C3%B6penick)&abf_hausnr=3X&tab_control=Liste&abf_config_weihnachtsbaeume=&abf_config_restmuell=on&abf_config_biogut=on&abf_config_wertstoffe=on&abf_config_laubtonne=on\r\n\r\nthis is the Ical it should get.\r\n\r\nBEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//www.bsr.de//NONSGML kigkonsult.se iCalcreator 2.41.71//\r\nCALSCALE:GREGORIAN\r\nUID:65616338-3738-4064-a633-326437643934\r\nBEGIN:VEVENT\r\nUID:32386261-6536-4130-a166-356138626438\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Hausm\u00fcll\r\nDTSTART;TZID=Europe/Berlin:20231228T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Hausm\u00fcll\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:37383565-6638-4232-a331-633133633061\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Biogut\r\nDTSTART;TZID=Europe/Berlin:20240102T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Biogut\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:30626662-3731-4963-b836-653262613233\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Wertstoffe (Abholung durch ALBA)\r\nDTSTART;TZID=Europe/Berlin:20240109T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Wertstoffe (Abholung durch ALBA)\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:64356336-6132-4464-a339-646533373961\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Hausm\u00fcll\r\nDTSTART;TZID=Europe/Berlin:20240110T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Hausm\u00fcll\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:61636636-6661-4834-b063-653566636636\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Biogut\r\nDTSTART;TZID=Europe/Berlin:20240115T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Biogut\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:32326238-3862-4533-b361-353033303935\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Wertstoffe (Abholung durch ALBA)\r\nDTSTART;TZID=Europe/Berlin:20240123T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Wertstoffe (Abholung durch ALBA)\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:30396632-3239-4764-b439-336132306661\r\nDTSTAMP:20231228T151659Z\r\nDESCRIPTION:Abholung Hausm\u00fcll\r\nDTSTART;TZID=Europe/Berlin:20240124T000000\r\nLOCATION:Chaukenstr. 3X\\,\r\nSUMMARY:Abholung Hausm\u00fcll\r\nEND:VEVENT\r\nEND:VCALENDAR\n\n### Source (if relevant)\n\nBSR_DE\n\n### Logs\n\n```Shell\nno relevant logs\n```\n\n\n### Relevant Configuration\n\n```YAML\n- name: bsr_de\r\n      args:\r\n        abf_strasse: Chaukenstr., 12524 Berlin (Treptow-K\u00f6penick)\r\n        abf_hausnr: 3*\n```\n\n\n### Checklist Source Error\n\n- [X] Use the example parameters for your source (often available in the documentation) (don't forget to restart Home Assistant after changing the configuration)\n- [X] Checked that the website of your service provider is still working\n- [X] Tested my attributes on the service provider website (if possible)\n- [X] I have tested with the latest version of the integration (master) (for HACS in the 3 dot menu of the integration click on \"Redownload\" and choose master as version)\n\n### Checklist Sensor Error\n\n- [x] Checked in the Home Assistant Calendar tab if the event names match the types names (if types argument is used)\n\n### Required\n\n- [X] I have searched past (closed AND opened) issues to see if this bug has already been reported, and it hasn't been.\n- [X] I understand that people give their precious time for free, and thus I've done my very best to make this problem as easy as possible to investigate.\n", "before_files": [{"content": "import urllib.parse\n\nimport requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"Berliner Stadtreinigungsbetriebe\"\nDESCRIPTION = \"Source for Berliner Stadtreinigungsbetriebe waste collection.\"\nURL = \"https://bsr.de\"\nTEST_CASES = {\n    \"Bahnhofstr., 12159 Berlin (Tempelhof-Sch\u00f6neberg)\": {\n        \"abf_strasse\": \"Bahnhofstr., 12159 Berlin (Tempelhof-Sch\u00f6neberg)\",\n        \"abf_hausnr\": 1,\n    },\n    \"Am Ried, 13467 Berlin (Reinickendorf)\": {\n        \"abf_strasse\": \"Am Ried, 13467 Berlin (Reinickendorf)\",\n        \"abf_hausnr\": \"11G\",\n    },\n}\n\n\ndef myquote(s):\n    # bsr uses strange quoting\n    return urllib.parse.quote(s, safe=\",()\")\n\n\nclass Source:\n    def __init__(self, abf_strasse, abf_hausnr):\n        self._abf_strasse = abf_strasse\n        self._abf_hausnr = abf_hausnr\n        self._ics = ICS(offset=1)\n\n    def fetch(self):\n        # get cookie\n        r = requests.get(\"https://www.bsr.de/abfuhrkalender-20520.php\")\n        cookies = r.cookies\n\n        # get street name only (without PLZ)\n        street = self._abf_strasse.split(\",\")[0]\n\n        # start search using string name (without PLZ)\n        args = {\"script\": \"dynamic_search\", \"step\": 1, \"q\": street}\n        r = requests.get(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php\", params=args, cookies=cookies\n        )\n\n        # retrieve house number list\n        args = {\"script\": \"dynamic_search\", \"step\": 2, \"q\": self._abf_strasse}\n        r = requests.get(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php\", params=args, cookies=cookies\n        )\n\n        args = {\n            \"abf_strasse\": street,\n            \"abf_hausnr\": self._abf_hausnr,\n            \"tab_control\": \"Jahr\",\n            \"abf_config_weihnachtsbaeume\": \"\",\n            \"abf_config_restmuell\": \"on\",\n            \"abf_config_biogut\": \"on\",\n            \"abf_config_wertstoffe\": \"on\",\n            \"abf_config_laubtonne\": \"on\",\n            # \"abf_selectmonth\": \"5 2020\",\n            # \"abf_datepicker\": \"28.04.2020\",\n            # \"listitems\":7,\n        }\n        r = requests.post(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php?script=dynamic_kalender_ajax\",\n            data=args,\n            cookies=cookies,\n        )\n\n        args = {\n            \"script\": \"dynamic_iCal_ajax\",\n            \"abf_strasse\": self._abf_strasse,\n            \"abf_hausnr\": self._abf_hausnr,\n            \"tab_control\": \"Jahr\",\n            \"abf_config_weihnachtsbaeume\": \"\",\n            \"abf_config_restmuell\": \"on\",\n            \"abf_config_biogut\": \"on\",\n            \"abf_config_wertstoffe\": \"on\",\n            \"abf_config_laubtonne\": \"on\",\n            # \"abf_selectmonth\": \"5 2020\",\n            # \"listitems\":7,\n        }\n\n        # create url using private url encoding\n        encoded = map(lambda key: f\"{key}={myquote(str(args[key]))}\", args.keys())\n        url = \"https://www.bsr.de/abfuhrkalender_ajax.php?\" + \"&\".join(encoded)\n        r = requests.get(url, cookies=cookies)\n\n        # parse ics file\n        dates = self._ics.convert(r.text)\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py"}], "after_files": [{"content": "import urllib.parse\nimport datetime\n\nimport requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"Berliner Stadtreinigungsbetriebe\"\nDESCRIPTION = \"Source for Berliner Stadtreinigungsbetriebe waste collection.\"\nURL = \"https://bsr.de\"\nTEST_CASES = {\n    \"Bahnhofstr., 12159 Berlin (Tempelhof-Sch\u00f6neberg)\": {\n        \"abf_strasse\": \"Bahnhofstr., 12159 Berlin (Tempelhof-Sch\u00f6neberg)\",\n        \"abf_hausnr\": 1,\n    },\n    \"Am Ried, 13467 Berlin (Reinickendorf)\": {\n        \"abf_strasse\": \"Am Ried, 13467 Berlin (Reinickendorf)\",\n        \"abf_hausnr\": \"11G\",\n    },\n}\n\n\ndef myquote(s):\n    # bsr uses strange quoting\n    return urllib.parse.quote(s, safe=\",()\")\n\n\nclass Source:\n    def __init__(self, abf_strasse, abf_hausnr):\n        self._abf_strasse = abf_strasse\n        self._abf_hausnr = abf_hausnr\n        self._ics = ICS(offset=1)\n\n    def fetch(self):\n        # get cookie\n        r = requests.get(\"https://www.bsr.de/abfuhrkalender-20520.php\")\n        cookies = r.cookies\n\n        # get street name only (without PLZ)\n        street = self._abf_strasse.split(\",\")[0]\n\n        # start search using string name (without PLZ)\n        args = {\"script\": \"dynamic_search\", \"step\": 1, \"q\": street}\n        r = requests.get(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php\", params=args, cookies=cookies\n        )\n\n        # retrieve house number list\n        args = {\"script\": \"dynamic_search\", \"step\": 2, \"q\": self._abf_strasse}\n        r = requests.get(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php\", params=args, cookies=cookies\n        )\n\n        args = {\n            \"abf_strasse\": street,\n            \"abf_hausnr\": self._abf_hausnr,\n            \"tab_control\": \"Jahr\",\n            \"abf_config_weihnachtsbaeume\": \"\",\n            \"abf_config_restmuell\": \"on\",\n            \"abf_config_biogut\": \"on\",\n            \"abf_config_wertstoffe\": \"on\",\n            \"abf_config_laubtonne\": \"on\",\n            # \"abf_selectmonth\": \"5 2020\",\n            # \"abf_datepicker\": \"28.04.2020\",\n            # \"listitems\":7,\n        }\n        r = requests.post(\n            \"https://www.bsr.de/abfuhrkalender_ajax.php?script=dynamic_kalender_ajax\",\n            data=args,\n            cookies=cookies,\n        )\n\n        args = {\n            \"script\": \"dynamic_iCal_ajax\",\n            \"abf_strasse\": self._abf_strasse,\n            \"abf_hausnr\": self._abf_hausnr,\n            \"tab_control\": \"Jahr\",\n            \"abf_config_weihnachtsbaeume\": \"\",\n            \"abf_config_restmuell\": \"on\",\n            \"abf_config_biogut\": \"on\",\n            \"abf_config_wertstoffe\": \"on\",\n            \"abf_config_laubtonne\": \"on\",\n            # \"abf_selectmonth\": \"5 2020\",\n            # \"listitems\":7,\n        }\n\n        # create url using private url encoding\n        encoded = map(lambda key: f\"{key}={myquote(str(args[key]))}\", args.keys())\n        url = \"https://www.bsr.de/abfuhrkalender_ajax.php?\" + \"&\".join(encoded)\n        r = requests.get(url, cookies=cookies)\n\n        # parse ics file\n        dates = self._ics.convert(r.text)\n\n\n        now = datetime.datetime.now()\n        # in nov/dec already fetch a monthly ics for january\n        # as yearly ics isn't available until the 1. of january.\n        if now.month in [11, 12]:\n            args[\"tab_control\"] = \"Monat\"\n            args[\"abf_selectmonth\"] = \"1 \" + str(now.year + 1)\n\n            # create url using private url encoding\n            encoded = map(lambda key: f\"{key}={myquote(str(args[key]))}\", args.keys())\n            url = \"https://www.bsr.de/abfuhrkalender_ajax.php?\" + \"&\".join(encoded)\n            r = requests.get(url, cookies=cookies)\n\n            # parse ics file\n            dates.extend (self._ics.convert(r.text) )\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/bsr_de.py"}]}