iCal AppleScript, как указать «тот же день в 9»?

1197
zakmck

Я знаю, что могу определять новое событие iCal программно, с помощью AppleScript, определяя что-то вроде:

 tell application "iCal" tell calendar "My Calendar" set theCurrentDate to current date set newEvent to make new event at end with properties  tell newEvent make new sound alarm at end with properties  end tell end tell end tell 

Тем не менее, я не очень доволен тем, что нужно указывать точную дату в «дате запуска», я предпочел бы иметь возможность указать «тот же день в 9:00» или «2 часа назад». Это возможно через графический интерфейс, но я не могу найти соответствующий синтаксис AppleScript. Есть ли ссылка для такого рода вещей?

Заранее спасибо.

3

2 ответа на вопрос

2
kopischke

Если вы ссылаетесь на поле ввода на естественном языке, то при нажатии +кнопки Lion iCal появляется, эта функциональность, по-видимому, не доступна AppleScript.

Ссылка для этого, фактически первая ссылка для модели сценариев любого приложения, представляет собой собственный словарь сценариев - документированный интерфейс сценариев, который вы можете просматривать в окне «Библиотека» редактора AppleScript. iCal там по умолчанию, как и словарь большинства скриптовых приложений, которые поставляются с предустановленной OS X, но вы можете добавить любое скриптовое приложение, просто перетащив его в окно (или пройдя длинный путь через +кнопку) - это Кстати, хороший способ выяснить, подходит ли приложение для сценариев, так как не предназначенные для сценариев приложения просто откажутся добавлять себя в библиотеку.

0
boissonnfive

Я знаю, это старый вопрос, но ...

«тот же день в 9:00»:

-- 1. Get the start date of the event set evtStartDate to start date of newEvent -- 2. Reset the time of that date (=> 00:00) -- Not necessary in your example as you don't specify time so time is already 00:00 tell evtStartDate to set myTriggerDate to it - (its time) -- 3. Add 9 hours to that date set myTriggerDate to myTriggerDate + 9 * hours -- 4. Set this date as the trigger date tell newEvent make new sound alarm at end with properties  end tell 

«За 2 часа до»:

ЗАМЕЧАНИЯ: в вашем примере за 2 часа до означает 2 часа до 21/5/2012 00:00:00, поэтому 20/05/2012 22:00:00. Вам нужно указать время в вашей начальной дате, если вы хотите что-то еще.

-- 1. Get the start date of the event set evtStartDate to start date of newEvent -- 2. Subtract 2 hours to that date set myTriggerDate to evtStartDate - 2 * hours -- 3. Set this date as the trigger date tell newEvent make new sound alarm at end with properties  end tell 

Похожие вопросы