Provided by: libcal-dav-perl_0.6-3_all bug

NAME

       Cal::DAV - a CalDAV client

SYNOPSIS

           my $cal = Cal::DAV->new( user => $user, pass => $pass, url => $url);
           # the ics data will be fetched automatically if it's there

           # ... or you can parse some ics
           $cal->parse(filename => $data);

           # cal now has all the methods of Data::ICal
           # you can now monkey around with the object

           # saves the updated calendar
           $cal->save;

           # deletes the calendar
           $cal->delete;

           # lock the file on the server
           $cal->lock;

           # unlock the file on the server
           $cal->unlock

           # steal the lock
           $cal->steal_lock;

           # also
           $cal->forcefully_unlock_all

           # and
           $cal->lockdiscovery

           # resyncs it with the server
           $cal->get;

           # Get the underlying HTTP::DAV object
           my $dav = $cal->dav;

DESCRIPTION

       "Cal::DAV" is actually a very thin wrapper round "HTTP::DAV" and "Data::ICal" but it may
       gain more functionality later and, in the mean time, serves as something that

TESTING

       In order to test you need to define three environment variables: "CAL_DAV_USER",
       "CAL_DAV_PASS" and "CAL_DAV_URL_BASE" which points to a DAV collection that the user
       supplied has write permissions for.

       It should be noted that, at the moment, I'm having problems finding a CalDAV server that
       allows me to create files and so I can't run all the tests.

METHODS

   new <arg[s]>
       Must have at least "user", "pass" and "url" args where "url" is the url of a remote, DAV
       accessible ".ics" file.

       Can optionally take an "auto_commit" option. See "auto_commit()" method below.

   parse <arg[s]>
       Make a new calendar object using same arguments as "Data::ICal"'s "new()" or "parse()"
       methods.

       Does not auto save for you.

       Returns 1 on success and 0 on failure.

   save [url]
       Save the calendar back to the server (or optionally to another path).

       Returns 1 on success and 0 on failure.

   delete [url]
       Delete the file on the server or optionally another url.

       Returns 1 on success and 0 on failure.

   get [url]
       Refetch the file from the sever to sync it -

       Alternatively fetch an alternative url.

       These will lose any local changes.

   lock
       Same options as "HTTP::DAV"'s "unlock".

   unlock
       Same options as "HTTP::DAV"'s "unlock".

   steal_lock
       Same options as "HTTP::DAV"'s "steal_lock".

   lockdiscovery
       Same options as "HTTP::DAV::Response"'s "lockdiscovery".

   forcefully_unlock_all
       Same options as "HTTP::DAV::Response"'s "forcefully_unlock_all".

   dav [HTTP::DAV]
       Get the underlying "HTTP::DAV" object or, alterntively, replace it with a a new one.

   cal
       Get the underlying cal object

   auto_commit [boolean]
       Whether to auto save on desctruction or not.

       Defaults to 0.

   message
       Same as "HTTP::DAV"'s "message" function.

   errors
       Same as "HTTP::DAV"'s "errors" function.

AUTHOR

       Simon Wistow <simon@thegestalt.org>

COPYRIGHT

       Copyright 2007, Simon Wistow

       Released under the same terms as Perl itself.

SEE ALSO

       HTTP::DAV

       Data::ICal

       http://tools.ietf.org/html/rfc4791