Here my attempt for everyone who prefers to use config files using the widget in post 1 provided. Refreshing the calendar every 12 hours because I don’t know their limitations:
Thank you very much @DrRSatzteil
Thing
Bridge icalendar:calendar:garbagecollection "Garbage Collection" @ "Internet" [ url="URL TO MY CITIES CALENDAR FOR MY STREET", refreshTime=360 ]
Thing icalendar:eventfilter:yellowbin "Yellow Bin Events" (icalendar:calendar:garbagecollection ) [ maxEvents=1, datetimeUnit="DAY", datetimeStart=0, datetimeRound=true, textEventField="SUMMARY", textEventValue="Gelbe Tonne", textValueType="TEXT" ]
Thing icalendar:eventfilter:bluebin "Yellow Bin Events" (icalendar:calendar:garbagecollection ) [ maxEvents=1, datetimeUnit="DAY", datetimeStart=0, datetimeRound=true, textEventField="SUMMARY", textEventValue="Blaue Tonne", textValueType="TEXT" ]
Thing icalendar:eventfilter:blackbin "Yellow Bin Events" (icalendar:calendar:garbagecollection ) [ maxEvents=1, datetimeUnit="DAY", datetimeStart=0, datetimeRound=true, textEventField="SUMMARY", textEventValue="Restabfalltonne", textValueType="TEXT" ]
Items
DateTime garbage_collection "[%1$tT, %1$tY-%1$tm-%1$td]" <calendar> { channel="icalendar:calendar:garbagecollection:next_start", stateDescription=""[pattern="%1$tA %1$td.%1$tm.%1$tY"] }
DateTime garbage_collection_yellowbin "[%1$tT, %1$tY-%1$tm-%1$td]" <calendar> { channel="icalendar:eventfilter:yellowbin:result_0#begin", stateDescription=""[pattern="%1$tA %1$td.%1$tm.%1$tY"] }
DateTime garbage_collection_bluebin "[%1$tT, %1$tY-%1$tm-%1$td]" <calendar> { channel="icalendar:eventfilter:bluebin:result_0#begin", stateDescription=""[pattern="%1$tA %1$td.%1$tm.%1$tY"] }
DateTime garbage_collection_blackbin "[%1$tT, %1$tY-%1$tm-%1$td]" <calendar> { channel="icalendar:eventfilter:blackbin:result_0#begin", stateDescription=""[pattern="%1$tA %1$td.%1$tm.%1$tY"] }
Footer
="Nächste Abholung: " + ((dayjs(items.garbage_collection.state).diff(dayjs().startOf("day"), "days")) == 0 ? "Heute" : (dayjs(items.garbage_collection.state).diff(dayjs().startOf("day"), "days")) == 1 ? "Morgen" : "In " + (dayjs(items.garbage_collection.state).diff(dayjs().startOf("day"), "days")) + " Tagen")
Date Array
"Restmüll","black","f7:trash","garbage_collection_blackbin"|"Gelbe Tonne","yellow","f7:trash","garbage_collection_yellowbin"|"Blaue Tonne","blue","f7:trash","garbage_collection_bluebin"