AS Geburtstage aus Adressbuch in Entourage Kalender übernehmen

T

timtailor

Neues Mitglied
Thread Starter
Dabei seit
10.04.2008
Beiträge
5
Reaktionspunkte
0
Hi,
ich möchte die Geburtstage aus meinem Entourage Adressbuch automatisch in den Entourage Kalender übernehmen. Dafür wollte ich folgendes AS nutzen:
tell application "Microsoft Entourage"
set theContacts to every contact whose birthday is not ""
repeat with acontact in theContacts
set theBirthday to date (get birthday of acontact)
set monthDay to day of theBirthday
set monthNumber to month of theBirthday as integer
set recurrenceString to "FREQ=YEARLY;INTERVAL=1;BYMONTHDAY=" & monthDay & ";BYMONTH=" & monthNumber & ";WKST=SU"
set theName to first name of acontact & " " & last name of acontact
set eventLabel to "Birthday - " & theName
make new event with properties {subject:eventLabel, start time:theBirthday, all day event:true, recurring:true, recurrence:recurrenceString}
end repeat
end tell

Nun bekomme ich aber als Fehler:
AppleScript-Fehler
„Microsoft Entourage“ hat einen Fehler erhalten: „date "Di, 9. Dez 1969"“ kann nicht gelesen werden.

Weiß jemand Abhilfe? Besten Dank, Sascha

P.S. Di, 9. Dez 1969 ist der Geburtstag des ersten Eintrags (sortiert nach Vornamen) in meinem Adressbuch (habe diesen auch schon gelöscht, bekomme dann aber den gleichen Fehler mit dem nächsten Geburtstag.
 
Ciao,
das passiert weil Entourage ein Datumsformat benutzt, das nicht mit Apple's Datumsformat (und folglich dem ScriptEditorformat) kompatibel ist. Ueberrascht ? :p
Um die Datumsoperationen in Deinem Script nutzen zu können, mußt Du einen Schritt einbauen, der das Entourage-Datum in ein scripttaugliches Format konvertiert, z.B.:
PHP:
tell application "Microsoft Entourage"
set theContacts to every contact whose birthday is not ""
repeat with acontact in theContacts
set theBirthday to birthday of acontact
-- Handler, der das Datum konvertiert (siehe unten):
set theBirthday to my convertBirthday(theBirthday)
-- weiter geht's mit Deinem Originalscript ...
set theDay to day of theBirthday
set theMonth to month of theBirthday
set theYear to year of theBirthday
-- ...
end repeat
end tell

-- hier der Code für den Handler:
on convertBirthday(theBirthday)
set bdConverted to date theBirthday
return bdConverted
end convertBirthday

Good scripting
Farid

PS: Nimm den 9. Dezember bitte wieder in Deinen Kalender auf: ist mein Geburtstag ;)
 
Zuletzt bearbeitet:
thanx

Hallo Farid, besten Dank für Deine Hilfe. Das ursprüngliche Script habe ich von Barry Wainwright (Microsoft MVP) angepasst. :)
 
Zurück
Oben Unten