iCalcreator:更改ics文件中每个事件的类别


iCalcreator: change category for each event in ics-file

我正在尝试更改现有ics文件中每个事件的类别。我有一个包含新类别的数组,希望循环遍历每个事件,并根据索引分配新类别。因此,我使用iCalcreator。

$event_categories = array();
// ... 
// populating $event_categories with data
// ...
$config = array( "unique_id" => "cat_mod", "filename" => "myical.ics" );
$v = new vcalendar($config);
$i = 0;
$v->parse();
while( $vevent = $v->getComponent( "vevent" )) {
    $vevent->setProperty("categories", $event_categories[$i]);
    $i++;
    continue;
}
$v->returnCalendar();

但这并不奏效。类别仍然相同。

有人能帮我吗?

摘要文件中有一个示例(查找"EDIT"部分)。它显示您需要记住uid并使用它重新插入修改后的事件

$v = new vcalendar( $config );          
$v->parse();
while( $vevent = $v->getComponent( "vevent" )) {
  $uid = $vevent->getProperty( "uid" );
  // ... change event ..
  $v->setComponent ( $vevent, $uid );
}