
Net::Google::Calendar::Server - pretend to be like Google's Calendar

# in reality this will be something like the Apache handler
my $handler = Net::Google::Calendar::Server::Handler::Foo->new;
# $be_class might be ICalendar and $au_class might be Dummy
my $cal = eval {
Net::Google::Calendar::Server->new( backend_class => $be_class, backend_opts => \%backend_opts,
auth_class => $au_class, auth_opts => \%auth_opts )
};
return $self->error($@) if $@;
return $cal->handle_request($handle);

This is an implementation of the Calendar portion of Google's GData API.
http://code.google.com/apis/gdata/protocol.html
It's very incomplete but it's been lurking round in my Subversion repo for too long (nearly a year now) so it deserves to be free. Free! FREE! Emancipia!
A server requires a handler to call it (something like CGI or an Apache handler or a standalone server).
A server also requires a backend class (something that will retrieve and store entries) and an auth class (something that will authentic the user) which can be the same as the backend class.

Create a new server. Requires at least the options
A class that will retrieve and store entries.
Must be a subclass of a Net::Google::Calendar::Server::Backend so for example to use Net::Google::Calendar::Server::Backend::ICalendar pass in 'ICalendar'.
Options for the backend class.
A class that will authenticate a user. Can be the same as the backend class i.e if you passed in 'ICalendar' for backend_class and auth_class then the Net::Google::Calendar::Server::Backend::ICalendar object instantiated for the backend will be used for the auth class.
Options for the authentication class.
The authentication object.
The backend object.
Get an event or events.
Returns an Atom feed.
Takes an Atom entry, creates an entry, returns the updated Atom entry.
Takes an Atom entry, updates the entry, returns the updated Atom entry.
Takes an Atom entry, deletes an event, returns undef on failure.
Requires a subclass of Net::Google::Calendar::Server::Handler.

Net::Google::Calendar::Server::Backend
The Lucene implementation of the GData server. http://wiki.apache.org/lucene-java/GdataServer

https://svn.unixbeard.net/simon/Net-Google-Calendar-Server/

Simon Wistow <simon@thegestalt.org>

Copyright 2006, 2007 - Simon Wistow