EWS Java获得会议

时间:2014-04-19 19:28:17

标签: java calendar exchange-server exchangewebservices

我正在尝试将交换日历与我的自定义日历集成。直到现在我能够将我的日历中的新会议集成到Exchange。

但我面临的问题是从Exchange到我的日历。如果我在Outlook中创建一个新会议,并且如果我通过下面的代码搜索它,我将获得结果。

<code>

CalendarFolder calendarFolder = CalendarFolder.bind(eService,     WellKnownFolderName.Calendar);
CalendarView calendarView = new CalendarView(startOfMonth.toDate(), endOfMonth.toDate());
FindItemsResults<Appointment> aprilMeetings = alendarFolder.findAppointments(calendarView);
</code>

在上面的列表中我得到了开始和结束日期之间的所有会议。我的问题是如何确定是新会议还是更新会议还是取消会议。

我试过这些方法,

<code>
appointment.getIsNew().
appointment.getIsCancelled()
appointment.getIsUnmodified()
</code>

但以上所有方法都返回false。我需要找到一种方法来弄清楚这一点,以便我可以将我的Exchange Server中的项目同步到我的自定义应用程序(注意:我也在我的应用程序中创建iCal文件,所以我可以在没有连接交换时使用我的应用程序)。

问候。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码来获取更新/新会议。

Date startDate1 = formatter.parse("2014-04-25 07:00:00");
SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.LastModifiedTime,startDate1);

FindItemsResults<Item> findResults = exchange.findItems(WellKnownFolderName.Calendar, filter, new ItemView(10));
for (Item item : findResults.getItems())
{
    Appointment appt = (Appointment)item;
    System.out.println("SUBJECT====="+appt.getSubject());
    System.out.println("Location========"+appt.getLocation());
    System.out.println("Start Time========"+appt.getStart());
    System.out.println("End Time========"+appt.getEnd());
    System.out.println("Email Address========"+ appt.getOrganizer().getAddress());
    System.out.println("Last Modified Time========"+appt.getLastModifiedTime());

}