1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

AppleScript für iCal wiederholender Termin

Dieses Thema im Forum "AppleScript" wurde erstellt von Schöngeist, 13.10.09.

  1. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Hallo Leute,
    ich bin neu hier und habe schon wild gesucht, aber leider nichts gefunden. Ich stehe vermutlich total auf der Leitung, und das Ergebnis wird simpel sein. Ich komme aber nicht darauf.
    Wie kann ich ein Event von iCal jährlich wiederholen lassen, ohne, dass ich dafür eine Schleife programmieren muss. Ich finde die notwendige property dafür nicht.
    Wie läuft das?
    Danke
     
    #1 Schöngeist, 13.10.09
    Zuletzt bearbeitet: 13.10.09
  2. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    tell application "iCal" to set recurrence of event 1 of calendar "..." to "FREQ=YEARLY;INTERVAL=1"
     
  3. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Wow, genau das habe ich gesucht. Vielen Dank. Ich probiere es morgen gleich aus.
     
  4. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Hallo,

    ich habe s hiermit versucht:

    make new event at end of events of calendar kalenderName with properties {start date:d, summary:t, allday event:true, recurrence:"FREQ=YEARLY,INTERVAL=1"}

    Leider funktioniert es so nicht. Ich bekomme für jeden Tag ganz viele Einträge an einem Tag mit dem Text t.
    Ändere ich die obige Zeile auf "...,INTERVAL=365" dann wird jeden Tag ein Eintrag gefertigt.
    Was mache ich falsch. Aus einem Eintrag habe ich auch den oben vorgeschlagenen Eintrag gefunden.

    Wer kann helfen?
     
  5. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo Schöngeist!

    Kannst Du bitte deine Doppelposts in "dem anderen Forum" aktualisieren, so dass dir dort niemand "umsonst" antwortet. Danke! :)
    Oder noch besser gleich auf solche Crossover Aktionen verzichten? Du hast dir bestimmt nichts dabei gedacht...

    Nimm ein ; statt ein , (wie CloneOfMyself es schon beschrieben hat):

    "FREQ=YEARLY;INTERVAL=1"

    Gruß
     
    #5 sedna, 17.10.09
    Zuletzt bearbeitet: 18.10.09
  6. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Hallo Sedna,
    ich hatte es mit Semikolon und Komma versucht. Das Ergebnis war das selbe. Ich habe nun einmal einen Screenshot gemacht. Hier sieht man auch die farbliche Darstellung des Applescript-Editors.
    Auch die unter dargestellte Schreibweise führt zu extrem vielen Einträgen an einem Tag.
     

    Anhänge:

  7. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo!

    Dann liegt der Fehler wahrscheinlich im Skript.
    Erstelle doch mal eine "Grundversion" und führe sie aus.
    Z.B.:

    Code:
    tell application "iCal"
    	make event at end of events of calendar 1 with properties {start date:current date, allday event:true, summary:"xxx", recurrence:"FREQ=WEEKLY;INTERVAL=1"}
    end tell
    (Ich habe jetzt mal WEEKLY genommen, damit man gleich das Ergebniss sieht)
     
  8. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Hallo sedna,

    ich habe in meinem Script das Datum "d" durch "current date" ersetzt. Dies funktioniert mit ...FREQ=YEARLY ...!

    In meinem Script wird der Inhalt von d auch in die tell application "iCal"-Schleife übernommen. Die Variable d übernimmt richtig das birth date aus "addressbook". Warum arbeitet dieses Datumsformat nicht mit recurrence zusammen?

    Liegt es an OS 10.6?
     
  9. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Nein.
    Und es sollte auch funktionieren ...
    Sorry, aber mit einem Screenshot (noch dazu eines Teiles des Skriptes) kann und möchte hier bestimmt keiner was anfangen.

    Übrigens wirst Du eh noch auf weitere Probleme stoßen, denn der Geburtstag wird normalerweise mit 12:00 Uhr festgelegt.

    Mit den # (Code) Tags kann man hier Skripte gut posten ;)

    Code:
    tell application "Address Book"
    	set sel to selection
    	try
    		set n to name of (item 1 of sel)
    		set theBirthday to birth date of (item 1 of sel)
    		set ZeroBirthday to (theBirthday - 43200)
    	end try
    	tell application "iCal"
    		try
    			make event at end of events of calendar 1 with properties {start date:ZeroBirthday, end date:ZeroBirthday, allday event:true, summary:"xxx", recurrence:"FREQ=YEARLY;INTERVAL=1"}
    		end try
    	end tell
    end tell
    Selektiere einen Kontakt mit Geburtstag und führe dieses Skript aus. Du wirst zwei Dinge bemerken, die wichtig sind, um einen ganztägigen Event in diesem Zusammenhang zu erstellen.

    Und denke bitte an meinen Wunsch aus meinem ersten Post. Ich persönlich mag solche Doppelposts gar nicht. Ich weiß nicht, wie andere darüber denken, aber es könnte dich um zukünftige Hilfestellungen bringen.

    Gruß
    Sedna
     
  10. Schöngeist

    Schöngeist Carola

    Dabei seit:
    03.06.07
    Beiträge:
    113
    Hallo sedna,

    erst einmal vielen Dank für deine große Hilfe.

    1. Doppelposting sind auch für die Poster blöd. Ich werde es in Zukunft nicht machen.

    2. Die Möglichkeit zum Einbinden von Code kenne ich bis jetzt nicht und habe den Hinweis mir #(Code) Tags auch noch nicht ganz verstanden.

    3. Das Problem mit dem 12h war bisher kein Problem für mich, werde ich aber aufnehmen, die Alarmzeiten kommen bestimmt.

    4. Das Problem mit dem recurrence lag in meinem fehlenden end date!

    Bitte schreibe doch einmal etwas für absolute absolute beginner, wie ich den Code posten kann. Danke
     

Diese Seite empfehlen