The following example code reads the Appointments and Task from Exchange. I have used the ews java api with some required dependencies you can download the libraries from the link https://drive.google.com/open?id=1Ujn8GDbX_0EjWx0pcZqAzeMGWykobfOY and execute the program.
import java.net.URI;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.PropertySet;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
import microsoft.exchange.webservices.data.core.enumeration.service.DeleteMode;
import microsoft.exchange.webservices.data.core.service.folder.CalendarFolder;
import microsoft.exchange.webservices.data.core.service.folder.Folder;
import microsoft.exchange.webservices.data.core.service.item.Appointment;
import microsoft.exchange.webservices.data.core.service.item.Item;
import microsoft.exchange.webservices.data.core.service.schema.AppointmentSchema;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.search.CalendarView;
import microsoft.exchange.webservices.data.search.FindItemsResults;
import microsoft.exchange.webservices.data.search.ItemView;
public class EWS {
//Method to get connection to EWS/Exchange Server
public static ExchangeService getEWSConnection(String ewsUrl, String user, String pwd) throws URISyntaxException {
ExchangeService service;
service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.setUrl(new URI(ewsUrl));
ExchangeCredentials credentials = new WebCredentials(user, pwd);
service.setCredentials(credentials);
return service;
}
//Method to return set of appointments from EWS
public static HashSet<String> userEventEws(ExchangeService service) {
HashSet<String> listSubject = new HashSet<String>();
Calendar yesterday = Calendar.getInstance();
Calendar now = Calendar.getInstance();
yesterday.add(Calendar.DATE, -1);
now.add(Calendar.DATE, 1);
Date startDate = yesterday.getTime();
Date endDate = now.getTime();
try {
CalendarFolder calendarFolder = CalendarFolder.bind(service, WellKnownFolderName.Calendar, new PropertySet());
CalendarView cView = new CalendarView(startDate,endDate);
cView.setPropertySet(new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End));// we can set other properties
// as well depending upon our need.
FindItemsResults appointments = calendarFolder.findAppointments(cView);
List <Appointment>appList = appointments.getItems();
for (Appointment appointment : appList) {
//appointment.delete(DeleteMode.HardDelete);
listSubject.add(appointment.getSubject().trim());
}
} catch (Exception e) {
e.printStackTrace();
}
return listSubject;
}
//Method to return set of tasks from EWS
public static HashSet<String> userTaskEws(ExchangeService service){
HashSet<String> listSubject = new HashSet<String>();
try {
Folder tasksFolder = Folder.bind( service, WellKnownFolderName.Tasks );
FindItemsResults < Item > items = tasksFolder.findItems( new ItemView( 1000 ) );
for ( Item item : items )
{
listSubject.add(item.getSubject());
// item.delete(DeleteMode.HardDelete);
}
} catch (Exception e) {
e.printStackTrace();
}
return listSubject;
}
public static void main(String[] args){
try {
ExchangeService service = getEWSConnection("Ews_URL", "username", "pwd");
HashSet <String> userEvents = userEventEws(service);
System.out.println("Size of events returned "+userEvents.size());
for(String m : userEvents){
System.out.println(m);
}
HashSet <String> userTasks = userTaskEws(service);
System.out.println("Size of tasks returned "+userTasks.size());
for(String m : userTasks){
System.out.println(m);
}
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Comments
Post a Comment