def METHOD_NAME(self):
    # get token
    params = {"key": self._key, "modus": MODUS_KEY, "waction": "init"}
    r = requests.post("https://api.abfall.io", params=params, headers=HEADERS)
    # add all hidden input fields to form data
    # There is one hidden field which acts as a token:
    # It consists of a UUID key and a UUID value.
    p = HiddenInputParser()
    p.feed(r.text)
    args = p.args
    args["f_id_kommune"] = self._kommune
    args["f_id_strasse"] = self._strasse
    if self._bezirk is not None:
        args["f_id_bezirk"] = self._bezirk
    if self._strasse_hnr is not None:
        args["f_id_strasse_hnr"] = self._strasse_hnr
    for i in range(len(self._abfallarten)):
        args[f"f_id_abfalltyp_{i}"] = self._abfallarten[i]
    args["f_abfallarten_index_max"] = len(self._abfallarten)
    args["f_abfallarten"] = ",".join(map(lambda x: str(x), self._abfallarten))
    now = datetime.datetime.now()
    date2 = now.replace(year=now.year + 1)
    args["f_zeitraum"] = f"{now.strftime('%Y%m%d')}-{date2.strftime('%Y%m%d')}"
    params = {"key": self._key, "modus": MODUS_KEY, "waction": "export_ics"}
    # get csv file
    r = requests.post(
        "https://api.abfall.io", params=params, data=args, headers=HEADERS
    )
    # parse ics file
    r.encoding = "utf-8"  # requests doesn't guess the encoding correctly
    ics_file = r.text
    # Remove all lines starting with <b
    # This warning are caused for customers which use an extra radiobutton
    # list to add special waste types:
    # - AWB Limburg-Weilheim uses this list to select a "Sonderabfall <city>"
    #   waste type. The warning could be removed by adding the extra config
    #   option "f_abfallarten" with the following values [27, 28, 17, 67]
    html_warnings = re.findall(r"\<b.*", ics_file)
    if html_warnings:
        ics_file = re.sub(r"\<br.*|\<b.*", "\\r", ics_file)
        # _LOGGER.warning("Html tags removed from ics file: " + ', '.join(html_warnings))
    dates = self._ics.convert(ics_file)
    entries = []
    for d in dates:
        entries.append(Collection(d[0], d[1]))
    return entries