在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
错误。谢谢!
答案 0 :(得分:0)
事实证明,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();