Удалить элемент и / или элемент-контейнер в 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();
Другие вопросы по тегам