...
Hallo floeru,
der Geburtstagskalender von iCal ist schreibgeschützt darum taucht der auch nicht in der Auswahlliste auf.
set this_calendars to calendars
whose writable is true
Ich bin auch davon ausgegangen, du hast den Kalender mit diesem Skript erstellt, welches traurigerweise mit der neuen iCal Version gar nicht funktioniert. Oder mit diesem Tool welches auch nicht funktioniert.
Nunja du hast richtig erkannt, was geändert werden muss. Tut mir auch leid, dass ich mich erst jetzt melde. Ich konnte es auch nicht ändern
Logisch wäre ja
set the_recurrence to {""}
das wird aber nicht angenommen. Man kann alle möglichen gültigen Wiederholungen eintragen, aber nicht ohne
Da bin ich ehrlich gesagt stinkesauer darüber.
Ich kann dir folgende Möglichkeit anbieten, das Problem zu beheben.
Als erstes setzt du
-- vor die Zeile " make new sound alarm at end of sound alarms of this_event with properties {trigger interval
item 1 of the_trigger_time)}" damit wird diese Anweisung zu einem Kommentar und nicht ausgeführt.
Du lässt das Skript noch mal über den Kalender "Privat" laufen und bestätigst "Alte Alarme löschen".
Nun beendest du iCal!
Um die Wiederholung zu löschen, gehst du ins Verzeichnis ~/Library/Application Support/iCal/Sources/ in deinem Userverzeichnis. Dort liegen die Kalender in Ordnern mit kryptischer Bezeichnung (hasse ich auch sowas). Um den Kalender Privat zu finden, öffnest du die Ordner der Reihe nach und ziehst jeweils die Datei "Info.plist" auf das TextEdit (in Programme) Icon um es zu öffnen.
Es muss so:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Key</key>
<string>F7BCC920-BA61-43A1-B635-3C7FD7191099</string>
<key>Title</key>
<string>
Privat</string>
<key>Type</key>
<string>com.apple.ical.sources.naivereadwrite</string>
</dict>
</plist>
aussehen.
In diesem Ordner befindet sich auch ein File namens "corestorage.ics" das Ist die eigentliche Kalenderdatei. Diese ziehst du auch auf das TextEdit Icon um es zu öffnen. Mit apfel-f rufst du nun den Suchen-Dialog auf. In die erste Zeile "Suchen nach:"setzt du
"FREQ=YEARLY;INTERVAL=1" mit den Anführungszeichen! ein. Die Zweite Zeile "Ersetzen durch:" lässt du leer. Danach den linken Button "Alles Ersetzen" drücken."
Jetzt kannst du iCal wieder öffnen und die Wiederholungen in den Events sind weg. Jetzt brauchst du natürlich eine neue Erinnerung für deine Termine.
Dazu wieder das Skript anpassen.
-- vor " make new sound alarm at end of sound alarms of this_event with properties {trigger interval
item 1 of the_trigger_time)}" entfernen und nur vor "with properties {trigger interval
item 1 of the_trigger_time)}"in der selben Zeile setzten. Eine Zeile höher
--vor die Zeile "set recurrence of this_event to item 1 of the_recurrence" setzen, damit nicht wieder eine Wiederholung eingetragen wird.
OK - mein Fehler war das nicht vorher zu prüfen. Die Funktion "Geburtstagskalender einblenden" habe ich auch übersehen. Selbst wenn ich sie gesehen hätte, wäre ich NIIIEEE! auf die Idee gekommen etwas in einen "schreibgeschützten" Kalender einzutragen denn "set writable of calendar xy to true/false" geht geschickter weise auch nicht.
Das Script lautet also:
Code:
tell application "iCal"
activate
set this_calendars to calendars whose writable is false
set this_calendar to item 1 of this_calendars
repeat with i from 1 to count events in this_calendar
set this_event to event i of this_calendar
make new sound alarm at end of sound alarms of this_event with properties {trigger interval:-240, sound name:"Basso"}
end repeat
end tell
das trigger interval sind Minuten. Negative Zahlen vor dem Ereignis und positive Zahlen nach dem Ereignis.
der sound name ist der wie in der Auswahlliste.
Vorsicht: Jedweder Logik kannst du einen Soundalarm anhängen, dieser wird aber sofort schreibgeschützt. Du kannst alles aber zurücksetzten, indem du den Kalender löscht und in Einstellungen erneut anzeigen lässt.
Sorry für die Unannehmlichkeiten...
Gruß Andi