#!/usr/bin/perl
use strict;
use warnings;
use YAML;
use utf8;
use Net::Google::Calendar;
use DateTime;
use Getopt::Std;
binmode STDOUT, ":utf8";
our ($opt_v, $opt_n, $opt_c, $opt_d);
getopts('vnc:d:') || &help;
if (! $opt_c) {
    $opt_c = $0;
    $opt_c =~ s@/[^/]+$@/config.yaml@;
}
my ($cfg) = YAML::LoadFile($opt_c);
if (defined $opt_d) {
    &help unless $opt_d =~ /^\d+$/;
} else {
    $opt_d = 7;
}

my $cal = Net::Google::Calendar->new;
$cal->login($cfg->{google_user}, $cfg->{google_passwd}) || die;
for my $event ($cal->get_events('start-max' => DateTime->now
				- DateTime::Duration->new( days => $opt_d))) {
    print "SUMMARY:", Encode::decode('utf8', $event->title), "\n",
    $event->content->body, "\n\n" if $opt_v;
    $cal->delete_entry($event) unless $opt_n;
}
exit 0;

sub help {
    print STDERR <<EOF;
Usage: gcal_remove <opt> <csv..>
opt:   -v            ; verbose
       -n            ; dry run
       -c <conf>     ; config.yaml
       -d <days>     ; remove older events 
EOF
    exit 1;
}
