• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

AppleScript für iCal wiederholender Termin

Schöngeist

Carola
Registriert
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
 
Zuletzt bearbeitet:

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
tell application "iCal" to set recurrence of event 1 of calendar "..." to "FREQ=YEARLY;INTERVAL=1"
 

Schöngeist

Carola
Registriert
03.06.07
Beiträge
113
Wow, genau das habe ich gesucht. Vielen Dank. Ich probiere es morgen gleich aus.
 

Schöngeist

Carola
Registriert
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?
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
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ß
 
Zuletzt bearbeitet:

Schöngeist

Carola
Registriert
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

  • Scriptversuch.png
    Scriptversuch.png
    75,8 KB · Aufrufe: 151

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
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)
 

Schöngeist

Carola
Registriert
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?
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Liegt es an OS 10.6?
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
 

Schöngeist

Carola
Registriert
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