Удалить элемент и / или элемент-контейнер в JXA (Javascript для автоматизации)
В Javascript для автоматизации можно создать объект элемента, а затем добавить его в контейнер. Например:
var cal = Application('Calendar')
var newEvent = cal.Event(
{
summary: todoSummary,
startDate: new Date(),
endDate: endDate
}
);
cal.calendars[0].events.push(newEvent);
}
Этот метод работы хорошо описан и задокументирован во многих местах, так что у Calendar (iCal) не должно быть своих собственных методов для этого.
Каким образом можно удалить объект (событие и т. Д.) Из контейнера (события) или хотя бы удалить связь между этим событием и его календарем? В AppleScript можно написать:
delete (every event whose uid is eventID)
Поэтому может показаться, что версия JXA будет выглядеть примерно так:
cal.calendars.events.delete.whose({uid: event.uid()})
Но различные попытки просто дают мне invalid key forms
или же Can't convert types
ошибки. Спасибо!
1 ответ
Оказывается, что delete
Метод находится на Application
Сам объект, так что это было так просто, как:
// delete most recent message on first calendar
var ical = Application('Calendar');
var ev = ical.calendars[0].events.last();
ical.delete(ev);
// and specifically for OS X calendar:
ical.reloadCalendars();