#!/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 < opt: -v ; verbose -n ; dry run -c ; config.yaml -d ; remove older events EOF exit 1; }