1

JavaScript for Automation では、要素オブジェクトを作成し、それをコンテナに追加できます。例えば:

    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エラーを与えるだけです。ありがとう!

4

1 に答える 1

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();
于 2016-06-26T19:21:06.083 に答える