code: function ComponentParser(options) {
      if (typeof(options) === 'undefined') {
        options = {};
      }
  
      var key;
      for (key in options) {
        /* istanbul ignore else */
        if (options.hasOwnProperty(key)) {
          this[key] = options[key];
        }
      }
    }
docs: @classdesc
  The ComponentParser is used to process a String or jCal Object,
  firing callbacks for various found components, as well as completion.
  
  @example
  var options = {
  // when false no events will be emitted for type
  parseEvent: true,
  parseTimezone: true
  };
  
  var parser = new ICAL.ComponentParser(options);
  
  parser.onevent(eventComponent) {
  //...
  }
  
  // ontimezone, etc...
  
  parser.oncomplete = function() {
  
  };
  
  parser.process(stringOrComponent);
  
  @class
  @alias ICAL.ComponentParser
  @param {Object=} options        Component parser options
  @param {Boolean} options.parseEvent        Whether events should be parsed
  @param {Boolean} options.parseTimezeone    Whether timezones should be parsed