Cal::DAV - a CalDAV client
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;
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
Cal::DAV
HTTP::DAV
Data::ICal
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.
CAL_DAV_USER
CAL_DAV_PASS
CAL_DAV_URL_BASE
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.
Must have at least user, pass and url args where url is the url of a remote, DAV accessible .ics file.
user
pass
url
.ics
Can optionally take an auto_commit option. See auto_commit() method below.
auto_commit
auto_commit()
Make a new calendar object using same arguments as Data::ICal's new() or parse() methods.
new()
parse()
Does not auto save for you.
Returns 1 on success and 0 on failure.
Save the calendar back to the server (or optionally to another path).
Delete the file on the server or optionally another url.
Refetch the file from the sever to sync it -
Alternatively fetch an alternative url.
These will lose any local changes.
Same options as HTTP::DAV's unlock.
unlock
Same options as HTTP::DAV's steal_lock.
steal_lock
Same options as HTTP::DAV::Response's lockdiscovery.
HTTP::DAV::Response
lockdiscovery
Same options as HTTP::DAV::Response's forcefully_unlock_all.
forcefully_unlock_all
Get the underlying HTTP::DAV object or, alterntively, replace it with a a new one.
Get the underlying cal object
Whether to auto save on desctruction or not.
Defaults to 0.
Same as HTTP::DAV's message function.
message
Same as HTTP::DAV's errors function.
errors
Simon Wistow <simon@thegestalt.org>
Copyright 2007, Simon Wistow
Released under the same terms as Perl itself.
http://tools.ietf.org/html/rfc4791
To install Cal::DAV, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Cal::DAV
CPAN shell
perl -MCPAN -e shell install Cal::DAV
For more information on module installation, please visit the detailed CPAN module installation guide.