Напоминания о днях рождения в iCal и iOS стандартными средствами с помощью AppleScript
В статье я опишу как на Mac OS X используя только встроенные средства системы настроить напоминания о днях рождения (стандартными средствами можно только отобразить календарь без напоминаний). Таже при желании можно воспользоваться результатом на iOS-устройстве.
Далее я буду использовать термины из англоязычного варианта Mac OS X.
- Предполагаем что в Address Book уже есть контакты и в них заполнены данные о днях рождения.
- Календарь дней рождений можно легко отобразить в настройках iCal установив галку Show Birthdays calendar.
В нём есть один недостаток — нет напоминаний о событиях. - В AppleScript Editor (/Applications/Utilites) создаём скрипт следующего содержания:
-- trigger interval - величина в минутах с 00:00 этого дня
-- * можно указывать отрицательное число (предупредит за день до праздника)
-- * можно создать несколько make new, при необходимости
tell application iCal
tell calendar Birthdays
set all_events to every event
repeat with this_event in all_events
tell this_event
delete every sound alarm
make new sound alarm at end with properties {trigger interval:600, sound name:Ping} -- 10:00 the same day
make new sound alarm at end with properties {trigger interval:-180, sound name:Ping} -- 21:00 the day before
end tell
end repeat
end tell
end tell
Для русскоязычной версии необходимо заменить Birthdays на соответствующее название.
При необходимости можно исправить время напоминаний. - Для быстрого доступа к скрипту, его можно сохранить по адресу
~/Library/Scripts/
, а в настройках AppleScript Editor установить галку Show Script menu in menu bar.
Теперь он будет доступен из меню в 2 клика. Полезно если таких скриптов в системе несколько. - Теперь остаётся лишь периодически выполнять этот скрипт для учёта изменений в Address Book.
В свежих iOS уже есть календарь Birthdays (в секции Others), который автоматически заполняется из Адресной книги, но в нём нет напоминаний.
Чтоб воспользоваться данными напоминаниями на iOS есть два способа:
- Необходимо опубликовать данный календарь, допустим на MobileMe (также есть опция публикации — private server, но где взять такой бесплатный я не знаю). А затем подписаться на этот календарь в iOS, используя ссылку вида webcal://.
- При синхронизации через iTunes данный календарь отсутствует, но при желании можно доработать скрипт, чтоб он копировал данные в обычный календарь. И уже обычный календарь синхронизировать с iOS.
Вот и всё. Надеюсь кому-то окажется полезным.
PS: в моих наработках также есть AppleScript для тех кто запускает приложения через Spotlight. Он позволяет запускать приложения, набранные в русской раскладке, допустим по запросу «шегтуы» найдётся iTunes. Если кому-то интересно — также могу опубликовать. Он состоит из сотни с небольшим строк и также будет полезен для людей изучающий AppleScript.