function planner_process_event($event)
 {
     $intervals_per_day = $this->bo->prefs['calendar']['planner_intervals_per_day'];
     $interval = $this->planner_intervals[$intervals_per_day];
     $last_cell = $intervals_per_day * $this->planner_days - 1;
     $rows =& $this->planner_rows;
     // caluculate start and end of event
     //
     $event_start = intval(date('Ymd', mktime(0, 0, 0, $event['start']['month'], $event['start']['mday'], $event['start']['year'])));
     $event_end = intval(date('Ymd', mktime(0, 0, 0, $event['end']['month'], $event['end']['mday'], $event['end']['year'])));
     // calculate first cell of event within observed interval
     //
     if ($event_start >= $this->planner_firstday) {
         $days_between = phpgwapi_datetime::days_between($this->bo->month, 1, $this->bo->year, $event['start']['month'], $event['start']['mday'], $event['start']['year']);
         $start_cell = $intervals_per_day * $days_between + $interval[$event['start']['hour']];
     } else {
         $start_cell = 0;
     }
     // calculate last cell of event within observed interval
     //
     if ($event_end <= $this->planner_lastday) {
         $days_between = phpgwapi_datetime::days_between($this->bo->month, 1, $this->bo->year, $event['end']['month'], $event['end']['mday'], $event['end']['year']);
         $end_cell = $intervals_per_day * $days_between + $interval[$event['end']['hour']];
         if ($end_cell == $start_cell && $end_cell < $last_cell) {
             $end_cell++;
             // min. width 1 interval
         }
     } else {
         $end_cell = $last_cell;
     }
     // get the categories associated with event
     //
     if ($c = $event['category']) {
         list($cat) = $this->planner_category($event['category']);
         if ($cat['parent']) {
             list($pcat) = $this->planner_category($c = $cat['parent']);
         } else {
             $pcat = $cat;
         }
     } else {
         $cat = $pcat = array('name' => lang('none'));
     }
     // add the event to it`s associated row(s)
     //
     if ($this->bo->sortby == 'category') {
         // event needs to show up in it`s category`s row
         //
         $this->planner_update_row($c, $pcat['name'], $event, $cat, $start_cell, $end_cell);
     } elseif ($this->bo->sortby == 'user') {
         // event needs to show up in rows of all participants that are also owners
         //
         reset($this->planner_group_members);
         while (list($user_name, $id) = each($this->planner_group_members)) {
             $status = isset($event['participants'][$id]) ? $event['participants'][$id] : '';
             if ($status && $status != 'R') {
                 $this->planner_update_row($user_name, $user_name, $event, $cat, $start_cell, $end_cell);
             }
         }
     }
 }