diff --git a/ioBroker---FAQ-&-Anleitungen.md b/ioBroker---FAQ-&-Anleitungen.md
index 397df31..cbea137 100644
--- a/ioBroker---FAQ-&-Anleitungen.md
+++ b/ioBroker---FAQ-&-Anleitungen.md
@@ -249,7 +249,8 @@ Die Info wird nur angezeigt, wenn der Screensaver wieder aktiv ist. Deshalb muss

- Blockly Skript
+ Blockly Skript
+
```
@@ -348,6 +349,7 @@ Die Info wird nur angezeigt, wenn der Screensaver wieder aktiv ist. Deshalb muss
```
+
Mein Blockly gibt hie einfach nur fest definierten Text zurück. Möglichkeiten dies nun dynamisch zu gestalten, gibt es viele. Tobt Euch aus!
* **Konfigurationsskript**:
@@ -357,4 +359,524 @@ Im Konfigurationsskript habe ich mir nun einen Button definiert
{ id: "alias.0.InfoRQ", icon: "comment-question" ,name: "InfoScreen"},
```
+***
+
+## **4.) Abfallkalender**
+
+* **Generell**
+Um das Thema Abfallkalender Umsetzen zu können gibt es verschiedene Herangehensweisen. Die Minimum Punkte sind unter den Voraussetzungen aufgelistet.
+Ob man nun direkt mit einem Kalender arbeitet der vom Entsorger bereitgestellt wird oder ob man sich die Mühe macht sich einen eigenen Kalender anzulegen - jeder wie er möchte.
+Die Basis für meine Dokumentation ist ein Google Kalender, der dann via einem ICal Adapter verbunden ist. Weiterhin nutze ich den Adapter Trashschedule von @haus-automatisierung. Das positive daran ist, [Matthias](@haus-automatisierung ) hat ein [Video](https://www.youtube.com/watch?v=v9-6LJph_8Q) zur Einrichtung gemacht, bei der die Grundlage eben genau ein Google Kalender ist. Ich finde das eine schöne Basis.
+
+
+* **Voraussetzungen**
+--> Abfallkalender des Entsorgers / der Entsorger
+--> ICal Adapter
+--> @Armilar s Skript zur Verarbeitung
+--> Datenpunkte
+
+
+* **IoBroker**
+Ich setze an der Stelle nun voraus, dass es bereits einen ICal Adapter gibt und dieser mit einem Kalender verbunden ist.
+
+**Datenpunkte**:
+Unter 0_userdata.0. einen Ordner Abfallkalender anlegen. Darunter vier Unterordner 1-4. In jedem Unterordner gibt es dann drei Datenpunkte anzulegen: **color**, **date** und **event**
+
+
+(Bild by @Armilar )
+
+**Aliase**:
+Im Geräte Adapter oder Alias Adapter einen Ordner für die Aliase des Abfallkalenders anlegen.
+Darunter dann 4 generische Einträge event1 - event4 vom **Typ Warnung**.
+
+(Bild by @Armilar )
+
+**Wichtig**:
+**LEVEL** --> geht auf Datenpunkt **color**
+**TITEL** --> geht auf Datenpunkt **event**
+**INFO** --> geht auf Datenpunkt **date**
+
+
+(Bild by @Armilar )
+
+
+
+* JS / Blockly (Alle Skripte by @Armilar):
+Es steht für die Umsetzung / Aufbereitung der Kalenderdaten nach NSPanel ein JS und ein Blockly zur Verfügung. Man benötigt nur eines davon. Es spricht aber nichts dagegen, beide mal zu testen ;-)
+
+Java Skript:
+
+1 = Hier muss der Pfad zum ICal Adapter zum Punkt **ical.0.data.table** eigestellt werden. Achtet auf die Instanznummer beim Adapter
+2 = Muss nur angepasst werden, wenn Eure Datenpunkte nicht unter **0_userdata.0.Abfallkalender.** liegen
+3 = Die Bezeichnungen der Abfallbehälter in Eurem Kalender. Die Namen müssen passen, das mit das Parsen funktioniert. Tipp: Die Ziffern bei "setze Color auf ....." sind die Farbcodierungen im Dezimalsystem.
+4 = Für's parsen wichtig. Bei funktioniert die 0, es kann sein dass dies bei euch anders ist.
+
+
+
+
+
+ Java Skript
+
+ ```
+var i, Muell_JSON, Event2, Color;
+
+function subsequenceFromStartLast(sequence, at1) {
+ var start = at1;
+ var end = sequence.length - 1 + 1;
+ return sequence.slice(start, end);
+}
+
+
+on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
+ var value = obj.state.val;
+ var oldValue = obj.oldState.val;
+ for (i = 0; i <= 3; i++) {
+ Muell_JSON = getState("ical.1.data.table").val;
+ setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
+ Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), 0);
+ setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
+ if (Event2 == 'Restabfalltonne') {
+ Color = 33840;
+ } else if (Event2 == 'Bio
+ tonne') {
+ Color = 2016;
+ } else if (Event2 == 'Blaue Tonne') {
+ Color = 31;
+ } else if (Event2 == 'Gelbe Tonne') {
+ Color = 65504;
+ }
+ setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
+ }
+});
+```
+
+
+
+
+Blockly Skript:
+
+1 = Hier muss der Pfad zum ICal Adapter zum Punkt **ical.0.data.table** eigestellt werden. Achtet auf die Instanznummer beim Adapter
+2 = Muss nur angepasst werden, wenn Eure Datenpunkte nicht unter **0_userdata.0.Abfallkalender.** liegen
+3 = Die Bezeichnungen der Abfallbehälter in Eurem Kalender. Die Namen müssen passen, das mit das Parsen funktioniert. Tipp: Die Ziffern bei "setze Color auf ....." sind die Farbcodierungen im Dezimalsystem.
+4 = Für's parsen wichtig. Bei funktioniert die 1, es kann sein dass dies bei euch anders ist.
+
+
+
+
+
+
+
+ Blockly Skript
+
+ ```
+
+
+ i
+ Muell_JSON
+ Event
+ Color
+
+
+
+ ne
+
+
+
+ ical.1.data.table
+
+
+
+
+ i
+
+
+ 0
+
+
+
+
+ 3
+
+
+
+
+ 1
+
+
+
+
+ Muell_JSON
+
+
+ val
+ ical.1.data.table
+
+
+
+
+ false
+ FALSE
+
+
+ Object ID
+
+
+
+
+
+ 0_userdata.0.Abfallkalender.
+
+
+
+
+ ADD
+
+
+ 1
+
+
+ i
+
+
+
+
+ 1
+
+
+
+
+
+
+ .date
+
+
+
+
+
+
+ TRUE
+
+
+
+
+ 0.date
+
+
+
+
+
+ i
+
+
+
+
+ .date
+
+
+
+
+
+
+ Muell_JSON
+
+
+
+
+
+
+ 0
+
+
+
+
+ Event
+
+
+
+ FROM_START
+ LAST
+
+
+
+
+ 0.event
+
+
+
+
+
+ i
+
+
+
+
+ .event
+
+
+
+
+
+
+ Muell_JSON
+
+
+
+
+
+
+ 9
+
+
+
+
+
+
+ false
+ FALSE
+
+
+ Object ID
+
+
+
+
+
+ 0_userdata.0.Abfallkalender.
+
+
+
+
+ ADD
+
+
+ 1
+
+
+ i
+
+
+
+
+ 1
+
+
+
+
+
+
+ .event
+
+
+
+
+
+
+ TRUE
+
+
+ Event
+
+
+
+
+ 0
+
+
+
+
+
+
+
+ EQ
+
+
+ Event
+
+
+
+
+ Reststoff
+
+
+
+
+
+
+ Color
+
+
+ 33840
+
+
+
+
+
+
+ EQ
+
+
+ Event
+
+
+
+
+ Biotonne
+
+
+
+
+
+
+ Color
+
+
+ 2016
+
+
+
+
+
+
+ EQ
+
+
+ Event
+
+
+
+
+ Blaue Tonne
+
+
+
+
+
+
+ Color
+
+
+ 31
+
+
+
+
+
+
+ EQ
+
+
+ Event
+
+
+
+
+ Gelbe Tonne
+
+
+
+
+
+
+ Color
+
+
+ 65504
+
+
+
+
+
+
+ false
+ FALSE
+
+
+ Object ID
+
+
+
+
+
+ 0_userdata.0.Abfallkalender.
+
+
+
+
+ ADD
+
+
+ 1
+
+
+ i
+
+
+
+
+ 1
+
+
+
+
+
+
+ .color
+
+
+
+
+
+
+ TRUE
+
+
+ Color
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+* **Konfigurationsskript**
+Im Konfigurationsskript muss ein Grid passend zu den Aliasen angelegt werden. Hier das Bsp. aus dem Default:
+```
+var Abfall: PageEntities =
+{
+ "type": "cardEntities",
+ "heading": "Abfallkalender",
+ "useColor": true,
+ "subPage": false,
+ "parent": Abfall,
+ "items": [
+ { id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
+ { id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
+ { id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
+ { id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
+ ]
+};
+```
+
+* **Fazit**:
+Eine vermeintlich einfache Sache, die aber ziemlich knifflig werden kann.