Поскольку iCal не имеет никаких уведомлений (некоторые приложения, например, iChat), вам придется запустить приложение «оставайтесь открытым» appleScript. Нечто подобное сделает это для вашего сценария "B". ПРИМЕЧАНИЕ: вам нужно будет добавить путь к вашему яблочному файлу (тот, который делает ваш звонок в Skype) в переменную яблочный скрипт.
При запуске он получит список всех событий календаря, которые есть в iCal. Затем он будет запускаться каждые 5 минут. Когда он запускается, он сверяет текущие события со списком событий, которые он первоначально сделал. Если есть новые события, то ваш яблочный скрипт будет добавлен в качестве тревоги для новых событий. Таким образом, он отслеживает текущие события между запусками и находит только новые.
Так что этот скрипт должен быть хорошей отправной точкой для вас. Не забудьте сохранить его как открытое приложение appleScript. Вы, вероятно, захотите изменить его. Например, у меня есть проверка каждого календаря на наличие новых событий, но у вас может быть один конкретный календарь, на который вы хотите настроить таргетинг. Удачи.
property storedUIDs : {} -- we use this to check for new events, if an event is not in this list then it is new
global applescriptPath
on run
set applescriptPath to (path to desktop as text) & "myAlarm.scpt" -- the path to the applescript which is run as the alarm
end run
on idle
set newEvents to {}
tell application "iCal"
set theCals to calendars
set allUIDs to {}
repeat with aCal in theCals
tell aCal
set theseEvents to events
repeat with anEvent in theseEvents
set thisUID to uid of anEvent
set end of allUIDs to thisUID
if thisUID is not in storedUIDs then
set end of newEvents to contents of anEvent
end if
end repeat
end tell
end repeat
set storedUIDs to allUIDs
if (count of newEvents) is less than 5 then -- this will prevent the first run of the script from adding the alarm to every event
repeat with aNewEvent in newEvents
-- do something with this new events like add an alarm to run an applescript
set theAlarm to make new open file alarm at end of open file alarms of aNewEvent with properties {trigger interval:0, filepath:POSIX path of applescriptPath}
end repeat
end if
end tell
return (5 * 60) -- run every 5 minutes
end idle
on quit
set storedUIDs to {}
continue quit
end quit