Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
thanks , I'm doing test your way.
Can you show me what you use the library?
ex .. Http client version ?
i'm using Android studio should haven't
I'm using Ews version 2.0 but exeption thrown :
Caused by: java.lang.NoSuchFieldError: org.apache.http.conn.ssl.AllowAllHostnameVerifier.INSTANCE
Plz , I needed a solution .
Ews version 2.0 have support on Android ?
Hi, does anyone know how i can get the appointmnets of a shared calendar with ews-java-api? I have tried to use this code and rewrite it to java but it throws an exception
java.lang.ClassCastException: microsoft.exchange.webservices.data.ExtendedPropertyDefinition cannot be cast to microsoft.exchange.webservices.data.PropertyDefinition in itItem.tryGetProperty(PidTagWlinkAddressBookEID, WlinkAddressBookEID)
Hello Everyone
When I try to do appointment.load in a multi-threaded environment I get microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. Connection is still allocated
Jose Carlos
@DanielPio89 perhaps this function helps you to find it out:
    private static void searchCalendars (ExchangeService service, ArrayList<OutlookCalendar> output, ArrayList<Folder> folders, String sangria) {
        try {
            System.out.println(sangria+"The count of Subfolders: "+folders.size());
            int counter = 1;
            for (Folder folder : folders) {
                if (folder instanceof CalendarFolder) {
                    System.out.println(sangria+"#" + counter + " \"" + folder.getDisplayName() + "\" is a calendar folder!");
                    System.out.println(sangria+"-----> Found calendar named \"" + folder.getDisplayName() + "\" which has "+folder.getTotalCount()+" appointment(s) and id: " + folder.getId() + "\n");
                    output.add(new OutlookCalendar(folder.getId().getUniqueId(), folder.getDisplayName()));
                    FindFoldersResults next = service.findFolders(folder.getId(), new FolderView(Integer.MAX_VALUE));
                    searchCalendars (service, output, next.getFolders(), sangria+"\t");
                else {
                    if (folder.getChildFolderCount() > 0) {
                        System.out.println(sangria+"#" + counter + " \"" +folder.getDisplayName() + "\" is not a calendar folder but it has "+folder.getChildFolderCount()+" subfolders. We resume the search inside this folder... ");
                        try {
                            FindFoldersResults result = service.findFolders(folder.getId(), new FolderView(Integer.MAX_VALUE));
                            searchCalendars (service, output, result.getFolders(), sangria+"\t");
                        catch (ServiceResponseException e) {
                            System.err.println(sangria+"Exception occurred: "+e.getMessage() + "\n");
                    else {
                        System.out.println(sangria+"#" + counter + " \"" +folder.getDisplayName() + "\" has 0 subfolders. Search in this folder finished!\n");
        catch (Exception e) {
            System.out.println("Error searching appointments");
Jose Carlos

@DanielPio89 and this is how you can call it:

searchCalendars(exchangeService, output, exchangeService.findFolders(WellKnownFolderName.Root, new FolderView(Integer.MAX_VALUE)).getFolders(), "");

Pathikrit Bhowmick
hi, i posted on stackoverflow a question regarding why i am getting ErrorMeetingRequestIsOutOfDate when I try to accept a meeting request via the java api...
Please take a look: http://stackoverflow.com/questions/34663896/ews-java-api-the-meeting-request-is-out-of-date-the-calendar-couldnt-be-updat
Cody Moore
Is there a way to get appointments that are deleted? Or lookup an appointment to see if it has been deleted?
Hi, is there any info the next release date? (2.1)
@pratibhapandey01 ExchangeService is not thread safe. See the links below
Kevin Fawcett
Anyone online?
Kevin Fawcett
Is anyone here?
Ali Fahim
Anyone here?
Zoltán Adamek
Hi everyone. I've just opened OfficeDev/ews-java-api#542 and I would really appreciate if someone who knows a bit more about the possible authentication methods in EWS could check this. I'm pretty sure that it could be helpful for others as well, as I've already found some similar issues in the queue.
Hi guys. Can we use this library with exchange 2016 ?
Luis Montiel
Hello everyone, is it possible to fetch all emails after a given email id? Or received after certain date?
Hi All
I wrote a code for getting OOO setting of user
code throws below error

import java.net.URI;

import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.property.complex.availability.OofSettings;

public class GetOOO {

public static void main(String[] args)
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.setUrl(new URI("https://email.xxx.com/EWS/Exchange.asmx"));

      ExchangeCredentials credentials = new WebCredentials("<<superUserId>>", "<<SuperUserPassword>>","XXX");

      OofSettings myOOFSettings = service.getUserOofSettings("<<emailId>>");


catch (Exception e)



Error in [GetOOOSettings.process/Java Code]While executing [invoke] encountered [microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException] : [The request failed. null at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:74)
please help
does this library work with android?
Francisco Montiel
Hi ! is there a way to get all the emails in the conversation from a specific emailId? or is there a way to get the Convarsation Object by a ConversationId object? Thanks !
Hi! I'm searching a way to get shared calendars. AFAIK, I need to get PR_WLINK_ENTRYID (pidtagwlinkEntryId) that I should decode from binary and then get the corresponding ewsid. If that's correct, would you mind providing a snippet? (I posted on SOF https://stackoverflow.com/questions/39920641/ews-access-shared-calendars-items-appointments, got PidtagwlinkEntryId from MFCMapi, but need to make the process automatic, preferably in Java).
Hi , I want add Calendar Events into Outlook 2010 through Programatically (JAVA) how i can do that??
Hi iis there any possibility to notify event modification in outlook exchange?
how client application get notification about event modify under exchange calendar
Magdy Abdel
Hi there, I wanted to ask if I can find a javadoc anywhere ?

Hi guys. Can anyone help me with a question, please? I am playing around with EWS Java Api and currently I'm trying to understand one thing.
If I loop through some items in Sent Items folder, I won't see any Emails that have: getIsFromMe() == true or getIsSubmitted() == true.
As per docs:

  • Gets a value indicating whether the item has been sent by the current
  • authenticated user.


  • Gets a value indicating whether the message has been submitted to be sent.
    Aren't those values suppose to be True in Sent Items folder? If no, how can I check that Email was sent?
@serious6 Can we use this to send email using Non-Microsoft Server?
Hi, can anyone help me please...
I have implemented a Liferay calendar portlet. I have started with ews-java-api 2.0. For testing, I gave always username/password as Hard-Code in my Code.
and Now I want to test it with signed in Liferay user. The problem is that Liferay gives me only the username and the encrypted password.
How can I do ews-authentication without forcing user to login again?
Amit Joshi
We have built a basic javax-mail provider for EWS using the EWS API and were looking to opensource it
Seemed like putting it with the ews-java api would be the best spot. Wanted to check if the OfficeDev team would be willing to host it?
Hello to all. Who can explane how to subscribe to pull notifications to Calendar folder?
Jose Carlos

@retor I did that a while ago, but maybe it helps you.

Subscribe to pull events:

        List  folder = new ArrayList();
        folder.add(new FolderId().getFolderIdFromWellKnownFolderName(WellKnownFolderName.Calendar));

        PullSubscription subscription = ExchangeClient.getExchangeService().subscribeToPullNotifications(folder,5, /* timeOut: the subscription will end if the server is not polled within 5 minutes. */
                null, /* watermark: null to start a new subscription. */

        LOG.info("Subscription successful Id: ! "+subscription.getId() + " - Watermark: ! "+subscription.getWaterMark());
        LOG.info("Starting thread...");
        new Thread(new RetrieveEvents(subscription)).start();

RetrieveEvents thread:

    public void run() {
        LOG.info("Thread started!");
        try {
            sleep (60000);
            LOG.info("Awake! Let's check the events!");
            // Wait a couple minutes, then poll the server for new events.
            GetEventsResults events = subscription.getEvents();

            if (events != null && events.getItemEvents() != null && events.getAllEvents().size() > 0) {
                // Loop through all item-related events.
                for (ItemEvent itemEvent : events.getItemEvents()) {
                    LOG.info("itemEvent id: " + itemEvent.getItemId());
            else {
                LOG.info("No result! :(");
        catch (Exception e) {
            LOG.error("Exception", e);
@josecyn thanks. Tomorrow I understand how to do it. And I do it on RxJava.
Here subscription is an object on server, what store updates and I can retrieve any updates from them.
Sorry for my English. Yesterday not tomorrow)))))
Gervais Blaise
Hello there. Sorry to disrupt but I'm wondering if there is some way to search for all Tasks in one mailbox.
I can get some tasks form the WellKnownFolerName.Tasks but I have some task created form mails but cannot find them.
Gervais Blaise
At this time I'm able to get tasks from WellKnownFolderName.Tasks and I was able to get all EmailMessage from WellKnownFolderName.Inbox that have the follow-up flag via one extended property: new ExtendedPropertyDefinition(0x1090, MapiPropertyType.Integer)