I hope someone can help me out with this. I'm sure it has something to do with DST as many of the issues with Event have.

When I view my events within the Drupal site, the times display correctly. When I subscribe to the calendar in iCal, the times are behind by one hour. I had to disable timezone support in iCal because it was displaying all of the events in GMT.

I really need to get this iCal issue fixed!

URL: http://www.saintpeterorthodox.org/event

Comments

bwynants’s picture

Here is what I did to resolve this (event.module)

replace _event_node_ical function with this code

function _event_node_ical($node) {
  $event = array();
  // Allow modules to affect item fields
  node_invoke_nodeapi($node, 'ical item');
	switch (variable_get('event_timezone_display', 'event')) {
		case 'event' :
			include_once(EVENT_PATH .'/event_timezones.inc');
			$start_offset = event_get_offset($node->timezone, $node->event_start);
			$end_offset = event_get_offset($node->timezone, $node->event_end);
			break;
		case 'user' :
			global $user;
			$start_offset = $end_offset = $user->timezone;
			break;
		case 'site' :
			$start_offset = $end_offset = variable_get('date_default_timezone', 0);
			break;
	}
	
	$start_offset -= variable_get('date_default_timezone', 0);
	$end_offset -= variable_get('date_default_timezone', 0);
	
	$event['start'] = $node->event_start + $start_offset;
	$event['end'] = $node->event_end + $end_offset;
  $event['location'] = $node->event_location;
  $event['summary'] = $node->title;
  $event['description'] = check_markup($node->teaser ? $node->teaser : $node->body);
  $event['uid'] = url("node/$node->nid", NULL, NULL, 1);
  $event['url'] = url("node/$node->nid", NULL, NULL, 1);

  return $event;
}