It looks like "zero" duration handling is wrong. Consider this PHP code
```
$e = new Event;
$va = new vectoralarm;
$a1 = new Alarm("Display alarm");
$a1->setRelativeStart(new Duration(0, 0, 0, 0, true), kolabformat::Start);
$va->push($a1);
$e->setAlarms($va);
$xml = kolabformat::writeEvent($e);
```
The generated XML will contain <duration>-P</duration> or <duration>P</duration>, while it should be PT0S or PT0M.