#!perl -w
##
#
# Please note that, for the time being,
# this is really just an example app
#
##
use strict;
use Data::Dumper;
use Net::Google::Calendar;
use Data::ICal::Entry::Event;
use Date::ICal;
my $url = shift || die "You must pass a feed url\n";
my $cal = Net::Google::Calendar->new( url => $url );
my $u = shift;
my $p = shift;
$cal->login($u, $p) || die "Couldn't log in: $@\n";
if (0 && !@ARGV) {
for ($cal->get_calendars) {
print $_->title."\n";
print $_->id."\n\n";
}
exit;
}
my ($c) = grep { $_->title =~ m!default!i } $cal->get_calendars;
die "Couldn't get cal\n" unless defined $c;
$cal->set_calendar($c);
if (!@ARGV) {
print "Getting events\n";
for ($cal->get_events()) {
#print Dumper $_->as_xml;
#next;
print $_->title."\n";
print $_->id."\n";
my ($start, $finish) = $_->when();
print "${start}-${finish}\n";
#print $_->content->body;
print "\n*****\n\n";
}
exit;
}
my $title = shift;
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 ) );
#my $author = Net::Google::Calendar::Person->new();
#$author->name('Foo Bar');
#$author->email('foo@bar.com');
#$entry->author($author);
my $recurrence = Data::ICal::Entry::Event->new();
use DateTime::Event::Recurrence;
use Date::ICal;
use DateTime::Format::ICal;
my $last_day_of_the_month = DateTime::Event::Recurrence->monthly( days => -1 );
$recurrence->add_properties(
dtstart => DateTime::Format::ICal->format_datetime(DateTime->now),
rrule => DateTime::Format::ICal->format_recurrence($last_day_of_the_month),
);
#$entry->recurrence($recurrence);
print STDERR $entry->as_xml."\n\n\n*********************\n\n";
#exit;
print "Before=".scalar($cal->get_events())."\n";
my $tmp = $cal->add_entry($entry);
die "Couldn't add event: $@\n" unless defined $tmp;
print "After=".scalar($cal->get_events())."\n";
#die $tmp->as_xml;
$tmp->content('Updated');
#print "Update\n";
$cal->update_entry($tmp) || die "Couldn't update ".$tmp->id.": $@\n";
print "Updated=".scalar($cal->get_events())."\n";
#print $tmp->as_xml;
for ($cal->get_events()) {
print $_->title."\n";
print $_->id."\n";
my ($start, $finish) = $_->when();
print "${start}-${finish}\n";
#print $_->content->body;
print "\n*****\n\n";
$cal->delete_entry($_);
# print $_->as_xml;
}
print "Delete\n";
#$cal->delete_entry($tmp) || die "Couldn't delete ".$tmp->id.": $@\n";
#print "Delete=".scalar($cal->get_events())."\n";
syntax highlighted by Code2HTML, v. 0.9.1