Напоминания о днях рождения в iCal и iOS стандартными средствами с помощью AppleScript

В статье я опишу как на Mac OS X используя только встроенные средства системы настроить напоминания о днях рождения (стандартными средствами можно только отобразить календарь без напоминаний). Таже при желании можно воспользоваться результатом на iOS-устройстве.
Далее я буду использовать термины из англоязычного варианта Mac OS X.

1. Предполагаем что в Address Book уже есть контакты и в них заполнены данные о днях рождения.

2. Календарь дней рождений можно легко отобразить в настройках iCal установив галку Show Birthdays calendar.
В нём есть один недостаток — нет напоминаний о событиях.

3. В 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 на соответствующее название.
При необходимости можно исправить время напоминаний.

5. Для быстрого доступа к скрипту, его можно сохранить по адресу
~/Library/Scripts/
, а в настройках AppleScript Editor установить галку Show Script menu in menu bar.
Теперь он будет доступен из меню в 2 клика. Полезно если таких скриптов в системе несколько.

6. Теперь остаётся лишь периодически выполнять этот скрипт для учёта изменений в Address Book.

В свежих iOS уже есть календарь Birthdays (в секции Others), который автоматически заполняется из Адресной книги, но в нём нет напоминаний.

Чтоб воспользоваться данными напоминаниями на iOS есть два способа:
1. Необходимо опубликовать данный календарь, допустим на MobileMe (также есть опция публикации — private server, но где взять такой бесплатный я не знаю). А затем подписаться на этот календарь в iOS, используя ссылку вида webcal://.
2. При синхронизации через iTunes данный календарь отсутствует, но при желании можно доработать скрипт, чтоб он копировал данные в обычный календарь. И уже обычный календарь синхронизировать с iOS.

Вот и всё. Надеюсь кому-то окажется полезным.

PS: в моих наработках также есть AppleScript для тех кто запускает приложения через Spotlight. Он позволяет запускать приложения, набранные в русской раскладке, допустим по запросу «шегтуы» найдётся iTunes. Если кому-то интересно — также могу опубликовать. Он состоит из сотни с небольшим строк и также будет полезен для людей изучающий AppleScript.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.