Le Tue, 21 Jun 2011 10:35:54 +0200,
Alessio Fattorini <alessio.fattor...@nethesis.it> a écrit :

Hi,

> How can i modify more events at the same times
> Specifically i should make private some events (50/60)
> adding this field on vcalendar:
> CLASS=PRIVATE
> Can anyone suggest a way to do it?
> 

I'm working on something like this. It's just a try for now, but if it
can help, modify and use 

-+-+-+-+ CUT +-+-+-+-
#!  /usr/bin/perl

#use strict;
use warnings;

use Data::ICal;
use Data::ICal::DateTime;
use DateTime;
use HTTP::DAV

my ($url, $d, $cal, $calcontent);

$url = "http://xxxxxx/SOGo/dav";;

$d = new HTTP::DAV();

# log with admin user.
$d->credentials( -user=>'admin', -pass =>'xxx', -url => $url);
$d->open( -url=> $url ) or die("Couldn't open $url: " .$d->message . "\n");

$d->get(-url => "<usercode>/Calendar/personal.ics", -to => \$calcontent);

$cal = Data::ICal->new(data => $calcontent);

my @events = $cal->events();

foreach my $event (@events) {

   if ($event->property('uid') eq "1845-4DF78B00-62E1-31B97100") {
   #if ($event->start > $event->end) {
      #print "uid:", $event->property('uid')->[0]->value, "\n";
      #print "summary:", $event->property('summary')->[0]->value, "\n";
      #print "dtstart:", $event->start, "\n";
      #print "dtend:", $event->end, "\n";
      #print "correction : ";
      $o = $event->end;
      $o->add(days=>1);
      $event->end($o);
      #print "dtend:", $event->end, "\n";
      #print "\n";
      print $event->as_string;
      print "\n";

      #$d->delete($event->property('uid')->[0]->value);
      #$d->put(-local => \$event->as_string, -url => $event->property('uid'));
   }

   #exit;
}

-+-+-+-+ CUT +-+-+-+-

-- 
P.Bourdais
Infagri
Rue Albert Einstein
Parc Technopole de changé
Bp 26116
53061 Laval Cedex 9
Tél: 02.43.49.84.40
-- 
users@sogo.nu
https://inverse.ca/sogo/lists

Reply via email to