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

5 апреля 2011 г.

В статье я опишу как на 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 на соответствующее название.
    При необходимости можно исправить время напоминаний.
  4. Для быстрого доступа к скрипту, его можно сохранить по адресу ~/Library/Scripts/, а в настройках AppleScript Editor установить галку Show Script menu in menu bar.
    Теперь он будет доступен из меню в 2 клика. Полезно если таких скриптов в системе несколько.
  5. Теперь остаётся лишь периодически выполнять этот скрипт для учёта изменений в Address Book.

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

Чтоб воспользоваться данными напоминаниями на iOS есть два способа:

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

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

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

Теги: рубрика Интернет