We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
(Berliner Stadtreinigung) BSR not working
Hi there, since about a day or two BSR integration isn't pulling data into HA. 
Any idea what might be wrong? Just FYI the data from abfall.io (ALBA Berlin) is working just fine. 

Sorry for not posting code / log, but I'm unsure, what I should be posting. 

--- 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()
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
@@ -28,7 +28,7 @@
     def __init__(self, abf_strasse, abf_hausnr):
         self._abf_strasse = abf_strasse
         self._abf_hausnr = abf_hausnr
-        self._ics = ICS()
+        self._ics = ICS(offset=1)
 
     def fetch(self):
         # get cookie

{"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@@ -28,7 +28,7 @@\n     def __init__(self, abf_strasse, abf_hausnr):\n         self._abf_strasse = abf_strasse\n         self._abf_hausnr = abf_hausnr\n-        self._ics = ICS()\n+        self._ics = ICS(offset=1)\n \n     def fetch(self):\n         # get cookie\n", "issue": "(Berliner Stadtreinigung) BSR not working\nHi there, since about a day or two BSR integration isn't pulling data into HA. \r\nAny idea what might be wrong? Just FYI the data from abfall.io (ALBA Berlin) is working just fine. \r\n\r\nSorry for not posting code / log, but I'm unsure, what I should be posting. \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()\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\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"}]}