function createTimelineWidget(id, orientation, initialDate, timeZone, url, feedType) {

  var eventSource = new Timeline.DefaultEventSource();
  var theme = Timeline.ClassicTheme.create();
  theme.event.label.width = 250; // px
  theme.event.bubble.width = 250;
  theme.event.bubble.height = 200;

  var bandInfos = [
    Timeline.createBandInfo({
      width:          '75%',
      intervalUnit:   Timeline.DateTime.DAY,
      intervalPixels: 200,
      eventSource:    eventSource,
      date:           initialDate,
      timeZone:       timeZone,
      theme:          theme
    }),
    Timeline.createBandInfo({
      width:          '25%',
      intervalUnit:   Timeline.DateTime.MONTH,
      intervalPixels: 200,
      eventSource:    eventSource,
      date:           initialDate,
      timeZone:       timeZone,
      theme:          theme,
      showEventText:  false,
      trackHeight:    0.5,
      trackGap:       0.2
    })
  ];

  bandInfos[1].syncWith = 0;
  bandInfos[1].highlight = true;
  bandInfos[1].eventPainter.setLayout(bandInfos[0].eventPainter.getLayout());
  var widget = Timeline.create($(id), bandInfos, orientation);

  if (feedType == 'json') {
    widget.loadJSON(url, function(json, url) { eventSource.loadJSON(json, url); });
  }
  else {
    widget.loadXML(url, function(xml, url) { eventSource.loadXML(xml, url); });
  }

  return widget;
}
