Net::Google::Calendar で Google Calendar の予定作成

Term::ReadKey 便利。

#!/usr/bin/env perl
use Term::ReadKey;
use Net::Google::Calendar;
use DateTime;
# init
my $url = "https://www.google.com/calendar/feeds/#calendarname#/public/basic";
my $username = "#mail#";
my $title = "#title#";
# passwordget
print "enter your password :";
ReadMode "noecho";
chomp ( my $password = ReadLine 0 );
ReadMode "restore";
# init cal object
my $cal = Net::Google::Calendar->new ( url => $url );
$cal->login($username,$password);
print "\n";
# init event object
for ( my $i=1; $i <= 4; $i++){
    my $start = DateTime->new(
        time_zone => 'Asia/Tokyo',
        year      => 2012,
        month     => 11,
        day       => 23,
        hour      => 10,
        minute    => 30,
        second    => 0,
    );
    my $end = DateTime->new(
        time_zone => 'Asia/Tokyo',
        year      => 2012,
        month     => 11,
        day       => 23,
        hour      => 18,
        minute    => 0,
        second    => 0,
    );
    my $start = $start->add( days => (($i-1) * 7));
    my $end   = $end->add( days => (($i-1) * 7));
    print $start->strftime('%Y/%m/%d %H:%M:%S')."\n";

    my $entry = Net::Google::Calendar::Entry->new();
    $entry->title($title);
    $entry->status('confirmed');
    $entry->when($start,$end);
    $cal->add_entry($entry);
}