Suche Ics-Datei einlesen und mit Hilfe von Tasker einlesen, ändern und abspeichern

Ch.Grebe

Ch.Grebe

Fortgeschrittenes Mitglied
38
Hallo zusammen, vielleicht kann mir jemand von den Experten hier helfen!

Ich habe mir ein Müllabfuhr-Event-Widget mit KWGT erstellt, welches mir einen bestimmten Kalender anzeigt und auf bestimmte Einträge wie "Altpapiertonne", "Biotonne" oder "Restmülltonne" reagiert.
Bei meiner Stadtverwaltung kann ich eine Kalender-Datei (*.ics) downloaden, die alle Abfuhrtermine des kompletten Jahres beinhaltet.

Ich stehe vor folgendem Problem:
Ich möchte die ICal Kalenderdatei (*.ics) mit Hilfe von Tasker einlesen, bestimmte Einträge ändern oder löschen und anschließend die geänderte Datei als Ics-Datei wieder abspeichern.

Der Aufbau der der Datei sieht in etwa so aus:

BEGIN:VCALENDAR
METHOD:pUBLISH
VERSION:2.0
X-WR-CALNAME:Abfallkalender
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:9bd73f6667da370f59a95b85024bda0e@EasyPeasyICS.php
DTSTAMP:20180103T000000Z
DTSTART;VALUE=DATE:20180103
SUMMARY:Restmülltonne (4 wöchig)
DESCRIPTION:Heute Restmülltonne (4 wöchig) am 03.01.2018 in der Strasse: XXX
URL;VALUE=URI:
LOCATION:Stadt XXX, Straße XXX
PRIORITY:5
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
UID:8a5d77f9face4866bc3ba1f41ed3aa41@EasyPeasyICS.php
DTSTAMP:20180103T000000Z
DTSTART;VALUE=DATE:20180103
SUMMARY:Restmülltonne (2 wöchig)
DESCRIPTION:Heute Restmülltonne (2 wöchig) am 03.01.2018 in der Strasse: XXX
URL;VALUE=URI:
LOCATION:Stadt XXX, Straße XXX
PRIORITY:5
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
TRANSP:TRANSPARENT
END:VEVENT

Alle Einträge hinter "SUMMARY" sollen in der ganzen Datei geändert werden. (z.B. "Restmülltonne (4 wöchig)" geändert zu "Restmülltonne").
Alle Einträge hinter "DISCRIPTION" und "LOCATION" sollen gelöscht werden.
Die geänderte Datei soll anschließend im ics-Format abgespeichert werden.

Über eure Hilfe wäre ich sehr dankbar!

LG Chris
 
Muss es unbedingt Android / Tasker sein?
Ich pflege ICS-Kalenderdaten auf einem Windows-PC mit der Thunderbird-Erweiterung Lightning. Es gibt sicher einige Anwendungen, die mit ICS umgehen können.
 
Hallo,
Ich habe nicht das Problem mit dem einlesen der ics - Dateien.
Ich wollte das mit Tasker machen, da ich die ics nur für mein Widget auf dem Android brauche.
Außerdem ist es mühsam, die ganzen paar hundert Einträge zu ändern.
Deshalb wollte ich das mit Tasker automatisieren!

LG Chris
 
"Außerdem ist es mühsam, die ganzen paar hundert Einträge zu ändern."
Mit ICS-Tools kann man in der Regel "Suchen & Ersetzen" automatisiert durchlaufen lassen.
Mit http://www.kdrive.de/files/ICS-Editor.xls zum Beispiel kann man eine ICS-Datei einlesen / bearbeiten / im ICS-Format exportieren. In OpenOffice/LibreOffice/Excel stehen einem diverse Werkzeuge zur Verfügung.
 
  • Danke
Reaktionen: Ch.Grebe
Und wie wird nun die ics Datei bei dem Editor in die xls Tabelle eingefügt?
 
Lies in der XLS!
 
  • Danke
Reaktionen: Ch.Grebe
So sollte es funktionieren

Read_.ics.tsk.xml

read .ics (13)
A1: Read File [ File:calender.ics To Var:%ics ]
A2: Variable Split [ Name:%ics Splitter:SUMMARY: Delete Base:Off ]
A3: For [ Variable:%data Items:%ics(2:) ]
A4: Variable Split [ Name:%data Splitter:pRIORITY: Delete Base:Off ]
A5: If [ %data1 ~ Altpapiertonne* ]
A6: Variable Set [ Name:%calender To:SUMMARY:Altpapiertonne
DESCRIPTION:
URL;VALUE=URI:
LOCATION:
PRIORITY:%data2 Recurse Variables:Off Do Maths:Off Append:On ]
A7: Goto [ Type:Top of Loop Number:1 Label: ]
A8: End If
A9: If [ %data1 ~ Biotonne* ]
A10: Variable Set [ Name:%calender To:SUMMARY:Biotonne
DESCRIPTION:
URL;VALUE=URI:
LOCATION:
PRIORITY:%data2 Recurse Variables:Off Do Maths:Off Append:On ]
A11: Goto [ Type:Top of Loop Number:1 Label: ]
A12: End If
A13: If [ %data1 ~ Restmülltonne* ]
A14: Variable Set [ Name:%calender To:SUMMARY:Restmülltonne
DESCRIPTION:
URL;VALUE=URI:
LOCATION:
PRIORITY:%data2 Recurse Variables:Off Do Maths:Off Append:On ]
A15: Goto [ Type:Top of Loop Number:1 Label: ]
A16: Else
A17: Variable Set [ Name:%calender To:SUMMARY:%data Recurse Variables:Off Do Maths:Off Append:On ]
A18: End If
A19: End For
A20: Write File [ File:calender_new.ics Text:%ics1
%calender Append:Off Add Newline:Off ]

Falls es nicht klappt einfach melden
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Ch.Grebe und ilkaskim
Hallo, möchte mich hier auch einklinken und mein ähnliches Problem ansprechen. Ich habe auch eine ics Datei. Die bearbeite ich mit Notepad++ makro soweit das alles gelöscht und entfernt wird was ich nicht brauche.
Kann tasker mir hinter jedem Termin einen vordefinierten Namen eintragen?
Zb 05.01.19 Max
11.01.19 Moritz
18.01.19 Bertha
25.01.19 Rudi

Das Datum ändert sich natürlich jedes Jahr aufs Neue.
 
Sollte eigentlich möglich sein.
Kannst du bitte noch ein Beispiel bringen wie die ics Datei davor ausschaut und wie sie danach sein sollte
 
  • Danke
Reaktionen: ilkaskim
Ich hab einen Teil kopiert weil es einfach zu lang ist da 52 Termine vorhanden sind in der Datei

Code:
BEGIN:VCALENDAR
PRODID:-//AWG//AWG Abfallkalendar 1.0//DE
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:pUBLISH
X-WR-CALNAME:AWG Abfallkalender
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190105
DTEND;VALUE=DATE:20190106
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:5201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190111
DTEND;VALUE=DATE:20190112
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:11201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190118
DTEND;VALUE=DATE:20190119
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:18201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190125
DTEND;VALUE=DATE:20190126
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:25201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190201
DTEND;VALUE=DATE:20190202
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:32201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190208
DTEND;VALUE=DATE:20190209
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:39201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de


So müsste es eingetragen werden unter DESCRIPTION.

Code:
BEGIN:VCALENDAR
PRODID:-//AWG//AWG Abfallkalendar 1.0//DE
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:pUBLISH
X-WR-CALNAME:AWG Abfallkalender
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190105
DTEND;VALUE=DATE:20190106
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:5201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:Max
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190111
DTEND;VALUE=DATE:20190112
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:11201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:Moritz
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190118
DTEND;VALUE=DATE:20190119
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:18201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:Bertha
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190125
DTEND;VALUE=DATE:20190126
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:25201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:Rudi
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190201
DTEND;VALUE=DATE:20190202
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:32201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
DESCRIPTION:Anton
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190208
DTEND;VALUE=DATE:20190209
DTSTAMP:20181109T175530Z
LAST-MODIFIED:20181109T175530Z
CREATED:20181109T175530Z
UID:39201918745aea50ce90da0fccbd251496d2a5@awg.wuppertal.de
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: derstein98 - Grund: Beitrag editiert @derstein98
Wiederholt sich die Reihenfolge der Namen so dass nach Rudi wieder Max kommt?
 
  • Danke
Reaktionen: ilkaskim
Es sind 7 Namen insgesamt vorhanden, man stelle sich vor wie 1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7

Es ist ein Rhythmus und daran ändert sich das ganze Jahr nichts.
Das einzige, wenn Ende des Jahres Nr. 4 dran war dann geht der Rhythmus nämlich mit 5 weiter nur das natürlich eine neue Liste erstellt wird.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Mathens
Read_.ics_name.tsk.xml

read .ics name (15)
A1: Variable Set [ Name:%name0 To:Max Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Set [ Name:%name1 To:Moritz Recurse Variables:Off Do Maths:Off Append:Off ]
A3: Variable Set [ Name:%name2 To:Bertha Recurse Variables:Off Do Maths:Off Append:Off ]
A4: Variable Set [ Name:%name3 To:Rudi Recurse Variables:Off Do Maths:Off Append:Off ]
A5: Variable Set [ Name:%name4 To:Anton Recurse Variables:Off Do Maths:Off Append:Off ]
A6: Variable Set [ Name:%name5 To:Elia Recurse Variables:Off Do Maths:Off Append:Off ]
A7: Variable Set [ Name:%name6 To:Mathias Recurse Variables:Off Do Maths:Off Append:Off ]
A8: Variable Set [ Name:%counter To:6 Recurse Variables:Off Do Maths:Off Append:Off ]
A9: Read File [ File:calender.ics To Var:%ics ]
A10: Variable Split [ Name:%ics Splitter: DESCRIPTION: Delete Base:Off ]
A11: For [ Variable:%data Items:%ics(2: ) ]
A12: Variable Add [ Name:%counter Value:1 Wrap Around:7 ]
A13: Variable Set [ Name:%calender To: DESCRIPTION:%name(%counter)%data Recurse Variables:Off Do Maths:Off Append:On ]
A14: End For
A15: Write File [ File:calender_new.ics Text:%ics1%calender Append:Off Add Newline:Off ]
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: ilkaskim
Super funktioniert bestens
Danke dir
 
Ich hab da noch eine Frage, da ich meine ics Datei vorher abspecke mit Notepad++ und danach Einträge ändere mit dem task wollte ich fragen ob ich das alles auch mit dem task machen kann?
 

Anhänge

  • read_.ics.tsk.xml.zip
    814 Bytes · Aufrufe: 55
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: derstein98 - Grund: Zitate entfernt - gelöscht @derstein98
Ja sollte eigentlich auch machbar sein
 
Mit dem makro von Notepad++ wird alles hinter DESCRIPTION und LOCATION gelöscht.

SUMMARY wird bearbeitet, wenn kein SPERRMÜLL hinter SUMMARY steht dann ändert es nur auf Müllabfuhr. Wenn in SUMMARY SPERRMÜLL auftaucht dann ändert es auf Müllabfuhr/SPERRMÜLL um

Code:
Original ics:
DESCRIPTION:Nochmalige Zusammenfassung für Straße : Restmüll/Bio/SPERRMÜLL
LOCATION:Straße
SUMMARY:Müllabfuhr : Restmüll/Bio/SPERRMÜLL

geändert ics wenn Sperrmüll hinter SUMMARY steht oder auftaucht:
DESCRIPTION:
LOCATION:
SUMMARY:Müllabfuhr/SPERRMÜLL

geändert ics ohne Sperrmüll hinter SUMMARY:
DESCRIPTION:
LOCATION:
SUMMARY:Müllabfuhr

Danach dein super task mit 7 Namen in Rhythmus eingetragen.
 
Zuletzt bearbeitet:
Download Task

read .ics name 2 (15)
A1: Variable Set [ Name:%name0 To:Max Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Set [ Name:%name1 To:Moritz Recurse Variables:Off Do Maths:Off Append:Off ]
A3: Variable Set [ Name:%name2 To:Bertha Recurse Variables:Off Do Maths:Off Append:Off ]
A4: Variable Set [ Name:%name3 To:Rudi Recurse Variables:Off Do Maths:Off Append:Off ]
A5: Variable Set [ Name:%name4 To:Anton Recurse Variables:Off Do Maths:Off Append:Off ]
A6: Variable Set [ Name:%name5 To:Elia Recurse Variables:Off Do Maths:Off Append:Off ]
A7: Variable Set [ Name:%name6 To:Mathias Recurse Variables:Off Do Maths:Off Append:Off ]
A8: Variable Set [ Name:%counter To:6 Recurse Variables:Off Do Maths:Off Append:Off ]
A9: Read File [ File:calender.ics To Var:%ics ]
A10: Variable Split [ Name:%ics Splitter: DESCRIPTION: Delete Base:Off ]
A11: For [ Variable:%data Items:%ics(2: ) ]
A12: Variable Add [ Name:%counter Value:1 Wrap Around:7 ]
A13: Variable Split [ Name:%data Splitter:END:VEVENT Delete Base:Off ]
A14: If [ %data1 ~ *SPERRMÜLL* ]
A15: Variable Set [ Name:%calender To: DESCRIPTION:%name(%counter)
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr/SPERRMÜLL
END:VEVENT%data2 Recurse Variables:Off Do Maths:Off Append:On ]
A16: Goto [ Type:Top of Loop Number:1 Label: ]
A17: Else
A18: Variable Set [ Name:%calender To: DESCRIPTION:%name(%counter)
LOCATION:
SEQUENCE:0
SUMMARY:Müllabfuhr
END:VEVENT%data2 Recurse Variables:Off Do Maths:Off Append:On ]
A19: End If
A20: End For
A21: Write File [ File:calender_new.ics Text:%ics1%calender Append:Off Add Newline:Off ]
 
  • Danke
Reaktionen: ilkaskim
Ich danke dir, hast mir sehr viel geholfen und mir viel Arbeit erspart. Besten Dank, funktioniert bestens
 
  • Danke
Reaktionen: Mathens

Ähnliche Themen

rtwl
Antworten
3
Aufrufe
401
rtwl
rtwl
E
Antworten
5
Aufrufe
373
TinTin2030
TinTin2030
coolzero3389
Antworten
10
Aufrufe
300
coolzero3389
coolzero3389
Zurück
Oben Unten