id . " and vtiger_activity.activitytype NOT IN ('Emails')"; $calendar_results = $adb->query($ical_query); // Send the right content type and filename header ("Content-type: text/calendar"); header('Content-Disposition: attachment; '."filename={$filename}.ics"); $todo_fields = getColumnFields('Calendar'); $event_fields = getColumnFields('Events'); $event = $todo = array(); $keys_to_replace = array( 'events'=>array('taskpriority'), 'todo'=>array('taskpriority','taskstatus') ); $keyvals_to_replace = array( 'events'=>array('taskpriority'=>'priority'), 'todo'=>array('taskpriority'=>'priority','taskstatus'=>'status') ); foreach($todo_fields as $key=>$val){ if(getFieldVisibilityPermission('Calendar',$current_user->id,$key)==0){ if(!in_array($key,$keys_to_replace['todo'])){ $todo[$key] = 'yes'; } else { $todo[$keyvals_to_replace['todo'][$key]] = 'yes'; } } } foreach($event_fields as $key=>$val){ if(getFieldVisibilityPermission('Events',$current_user->id,$key)==0){ if(!in_array($key,$keys_to_replace['events'])){ $event[$key] = 'yes'; } else { $event[$keyvals_to_replace['events'][$key]] = 'yes'; } } } $tz = new iCalendar_timezone; if(!empty($default_timezone)){ $tzid = split('/',$default_timezone); } else { $default_timezone = date_default_timezone_get(); $tzid = split('/',$default_timezone); } if(!empty($tzid[1])){ $tz->add_property('TZID', $tzid[1]); } else { $tz->add_property('TZID', $tzid[0]); } $tz->add_property('TZOFFSETTO', date('O')); if(date('I')==1){ $tz->add_property('DAYLIGHTC', date('I')); } else { $tz->add_property('STANDARDC', date('I')); } $myical = new iCalendar; $myical->add_component($tz); while (!$calendar_results->EOF) { $this_event = $calendar_results->fields; $id = $this_event['activityid']; $type = $this_event['activitytype']; if($type!='Task'){ $temp = $event; foreach($temp as $key=>$val){ $temp[$key] = $this_event[$key]; } $temp['id'] = $id; $ev = new iCalendar_event; $ev->assign_values($temp); $al = new iCalendar_alarm; $al->assign_values($temp); $ev->add_component($al); } else { $temp = $todo; foreach($temp as $key=>$val){ $temp[$key] = $this_event[$key]; } $ev = new iCalendar_todo; $ev->assign_values($temp); } $myical->add_component($ev); $calendar_results->MoveNext(); } // Print the actual calendar echo $myical->serialize(); ?>