NAME
    EWS::Client - Microsoft Exchange Web Services Client

VERSION
    This document refers to version 0.02 of EWS::Client

SYNOPSIS
    Set up your Exchange Web Services client:

     use EWS::Client;
     use DateTime;
     
 my $ews = EWS::Client->new({
         server      => 'exchangeserver.example.com',
         username    => 'oliver',
         password    => 's3krit', # or set in $ENV{EWS_PASS}
     });

    Then perform operations on the Exchange server:

     my $entries = $ews->calendar->retrieve({
         start => DateTime->now(),
         end   => DateTime->now->add( month => 1 ),
     });
     
 print "I retrieved ". $entries->count ." items\n";
     
 while ($entries->has_next) {
         print $entries->next->Subject, "\n";
     }

DESCRIPTION
    This module acts as a client to the Microsoft Exchange Web Services API.
    From here you can access calendar (and soon, contact) entries in a
    nicely abstracted fashion. Query results are generally available in an
    iterator and convenience methods exist to access the properties of each
    entry.

METHODS
  EWS::Client->new( \%arguments )
    Instantiates a new EWS client. There won't be any connection to the
    server until you call one of the calendar or contacts retrieval methods.

    "server" => Fully Qualified Domain Name (required)
        The host name of the Exchange server to which the module should
        connect.

    "username" => String (required)
        The account username under which the module will connect to
        Exchange. This value will be URI encoded by the module.

    "password" => String OR via $ENV{EWS_PASS} (required)
        The password of the account under which the module will connect to
        Exchange. This value will be URI encoded by the module. You can also
        provide the password via the "EWS_PASS" environment variable.

    "schema_path" => String (optional)
        A folder on your file system which contains the WSDL and two further
        Schema files (messages, and types) which describe the Exchange 2007
        Web Services SOAP API. They are shipped with this module so your
        providing this is optional.

  $ews->calendar()
    Retrieves the EWS::Client::Calendar object which allows search and
    retrieval of calendar entries and their various properties. See that
    linked manual page for more details.

TODO
    There is currently no handling of time zone information whatsoever. I'm
    waiting for my timezone to shift to UTC+1 in March before working on
    this, as I don't really want to read the Exchange API docs. Patches are
    welcome if you want to help out.

    I might look at alternatives to XML::Compile::SOAP, which is truely the
    most awesome of modules, but overkill for ths very small set of static
    calls.

REQUIREMENTS
    *   Moose

    *   XML::Compile::SOAP

    *   DateTime

    *   DateTime::Format::ISO8601

    *   HTML::Strip

    *   URI::Escape

    *   File::ShareDir

AUTHOR
    Oliver Gorwits "<oliver.gorwits@oucs.ox.ac.uk>"

COPYRIGHT & LICENSE
    Copyright (c) Oliver Gorwits 2010.

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

