.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Net::Google::Calendar 3" .TH Net::Google::Calendar 3 "2008-01-13" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Net::Google::Calendar \- programmatic access to Google's Calendar API .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& my $cal = Net::Google::Calendar->new( url => $url ); \& $cal->login($u, $p); .Ve .PP .Vb 4 \& for ($cal->get_events()) { \& print $_->title."\en"; \& print $_->content->body."\en*****\en\en"; \& } .Ve .PP .Vb 7 \& my $entry = Net::Google::Calendar::Entry->new(); \& $entry->title($title); \& $entry->content("My content"); \& $entry->location('London, England'); \& $entry->transparency('transparent'); \& $entry->status('confirmed'); \& $entry->when(DateTime->now, DateTime->now() + DateTime::Duration->new( hours => 6 ) ); .Ve .PP .Vb 4 \& my $author = Net::Google::Calendar::Person->new(); \& $author->name('Foo Bar'); \& $author->email('foo@bar.com'); \& $entry->author($author); .Ve .PP .Vb 2 \& my $tmp = $cal->add_entry($entry); \& die "Couldn't add event: $@\en" unless defined $tmp; .Ve .PP .Vb 1 \& print "Events=".scalar($cal->get_events())."\en"; .Ve .PP .Vb 1 \& $tmp->content('Updated'); .Ve .PP .Vb 1 \& $cal->update_entry($tmp) || die "Couldn't update ".$tmp->id.": $@\en"; .Ve .PP .Vb 1 \& $cal->delete_entry($tmp) || die "Couldn't delete ".$tmp->id.": $@\en"; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Interact with Google's new calendar. .SH "METHODS" .IX Header "METHODS" .Sh "new " .IX Subsection "new " Create a new instance. opts is a hash which must contain your private Google url. .PP See .PP .Vb 1 \& http://code.google.com/apis/gdata/calendar.html#find_feed_url .Ve .PP for how to get that. .Sh "login " .IX Subsection "login " Login to google. .ie n .Sh "get_events [ %opts ]" .el .Sh "get_events [ \f(CW%opts\fP ]" .IX Subsection "get_events [ %opts ]" Return a list of Net::Google::Calendar::Entry objects; .PP You can pass in a hash of options which map to the Google Data \s-1API\s0's generic searching mechanisms plus the specific calendar ones. .PP See .PP .Vb 1 \& http://code.google.com/apis/gdata/protocol.html#query-requests .Ve .PP for more details. .IP "q" 4 .IX Item "q" Full-text query string .Sp When creating a query, list search terms separated by spaces, in the form q=term1 term2 term3. (As with all of the query parameter values, the spaces must be \s-1URL\s0 encoded.) The GData service returns all entries that match all of the search terms (like using \s-1AND\s0 between terms). Like Google's web search, a GData service searches on complete words (and related words with the same stem), not substrings. .Sp To search for an exact phrase, enclose the phrase in quotation marks: .Sp .Vb 1 \& q => '"exact phrase' .Ve .Sp To exclude entries that match a given term, use the form .Sp .Vb 1 \& q => '-term' .Ve .Sp The search is case\-insensitive. .Sp Example: to search for all entries that contain the exact phrase \&'Elizabeth Bennet' and the word 'Darcy' but don't contain the word \&'Austen', use the following query: .Sp .Vb 1 \& q => '"Elizabeth Bennet" Darcy -Austen' .Ve .IP "category" 4 .IX Item "category" Category filter .Sp To search in just one category do .Sp .Vb 1 \& category => 'Fritz' .Ve .Sp You can query on multiple categories by listing multiple category parameters. For example .Sp .Vb 1 \& category => [ 'Fritz', 'Laurie' ] .Ve .Sp returns entries that match both categories. .Sp To do an \s-1OR\s0 between terms, use a pipe character (|). For example .Sp .Vb 1 \& category => 'Fritz|Laurie' .Ve .Sp returns entries that match either category. .Sp To exclude entries that match a given category, use the form .Sp .Vb 1 \& category => '-categoryname' .Ve .Sp You can, of course, mix and match .Sp .Vb 1 \& [ 'Jo', 'Fritz|Laurie', '-Simon' ] .Ve .Sp means in category .Sp .Vb 1 \& (Jo AND ( Fritz OR Laurie ) AND (NOT Simon)) .Ve .IP "author" 4 .IX Item "author" Entry author .Sp The service returns entries where the author name and/or email address match your query string. .IP "updated-min" 4 .IX Item "updated-min" .PD 0 .IP "updated-max" 4 .IX Item "updated-max" .PD Bounds on the entry publication date. .Sp Use DateTime objects or the \s-1RFC\s0 3339 timestamp format. For example: 2005\-08\-09T10:57:00\-08:00. .Sp The lower bound is inclusive, whereas the upper bound is exclusive. .IP "start-min" 4 .IX Item "start-min" .PD 0 .IP "start-max" 4 .IX Item "start-max" .PD Respectively, the earliest event start time to match (If not specified, default is 1970\-01\-01) and the latest event start time to match (If not specified, default is 2031\-01\-01). .Sp Use DateTime objects or the \s-1RFC\s0 3339 timestamp format. For example: 2005\-08\-09T10:57:00\-08:00. .Sp The lower bound is inclusive, whereas the upper bound is exclusive. .IP "start-index" 4 .IX Item "start-index" 1\-based index of the first result to be retrieved .Sp Note that this isn't a general cursoring mechanism. If you first send a query with .Sp .Vb 2 \& start-index => 1, \& max-results => 10 .Ve .Sp and then send another query with .Sp .Vb 2 \& start-index => 11, \& max-results => 10 .Ve .Sp the service cannot guarantee that the results are equivalent to .Sp .Vb 2 \& start-index => 1 \& max-results => 20 .Ve .Sp because insertions and deletions could have taken place in between the two queries. .IP "max-results" 4 .IX Item "max-results" Maximum number of results to be retrieved. .Sp For any service that has a default max-results value (to limit default feed size), you can specify a very large number if you want to receive the entire feed. .IP "entryID" 4 .IX Item "entryID" \&\s-1ID\s0 of a specific entry to be retrieved. .Sp If you specify an entry \s-1ID\s0, you can't specify any other parameters. .Sh "get_calendars" .IX Subsection "get_calendars" Get a list of user's Calendars as Net::Google::Calendar::Entry objects. .Sh "set_calendar " .IX Subsection "set_calendar " Set the current calendar to use. .Sh "add_entry " .IX Subsection "add_entry " Create a new entry. .Sh "delete_entry " .IX Subsection "delete_entry " Delete a given entry. .Sh "update_entry " .IX Subsection "update_entry " Update a given entry. .SH "WARNING" .IX Header "WARNING" This is \s-1ALPHA\s0 level software. .PP Don't use it. Ever. Or something. .SH "TODO" .IX Header "TODO" Abstract this out to Net::Google::Data .SH "LATEST VERSION" .IX Header "LATEST VERSION" The latest version can always be obtained from my Subversion repository. .PP .Vb 1 \& http://unixbeard.net/svn/simon/Net-Google-Calendar .Ve .SH "AUTHOR" .IX Header "AUTHOR" Simon Wistow .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright Simon Wistow, 2006 .PP Distributed under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" http://code.google.com/apis/gdata/calendar.html