NAME
    EWS::Client - Microsoft Exchange Web Services Client

VERSION
    version 1.103610

SYNOPSIS
    Set up your Exchange Web Services client. *You will need HTTP Basic
    Access Auth enabled on the Exchange server to use this module*:

     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";
     }
     
 my $contacts = $ews->contacts->retrieve;

DESCRIPTION
    This module acts as a client to the Microsoft Exchange Web Services API.
    From here you can access calendar and 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.
    You will need HTTP Basic Access Auth enabled on the Exchange server to
    use this module.

    "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.

  $ews->contacts()
    Retrieves the EWS::Client::Contacts object which allows retrieval of
    contact entries and their telephone numbers. 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.

REQUIREMENTS
    *   Moose

    *   MooseX::Iterator

    *   XML::Compile::SOAP

    *   DateTime

    *   DateTime::Format::ISO8601

    *   HTML::Strip

    *   URI::Escape

    *   File::ShareDir

AUTHOR
    Oliver Gorwits <oliver@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2010 by University of Oxford.

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

