如何对新创建的约会做出反应?

How to react on newly created Appointments?

我正在寻找一种获取约会增量的方法。基本上我想要的是对新创建的约会做出反应。

要获取新创建/未读消息,我使用 java ews api 中的 SearchFilter。不幸的是 AppointmentSchema 没有为过滤器提供任何合适的枚举。

new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

我得到这样的约会:

    CalendarFolder calendarFolder = CalendarFolder.bind(service, WellKnownFolderName.Calendar, new PropertySet());
    var result = calendarFolder.findAppointments(cView);

回到我的问题。如果有人邀请我参加新约会或包含新约会邀请的电子邮件,我如何才能注意到?

幸运的是,我已经找到了解决方案。 MeetingRequest就是我要找的Item

FindItemsResults<Item> result = service.findItems(new FolderId(WellKnownFolderName.Inbox, new Mailbox(getCredentials())), getUnreadEmailFilter(), new ItemView(10));
result.forEach(n -> {
    if (n instanceof MeetingRequest) {
       System.out.println("New Appointment - MeetingRequest found!");
       MeetingRequest req = (MeetingRequest) n;
       req.accept(true);
    }
}