code: public ICalendar first() throws IOException {
  		StreamReader reader = constructReader();
  		if (index != null) {
  			reader.setScribeIndex(index);
  		}
  
  		try {
  			ICalendar ical = reader.readNext();
  			if (warnings != null) {
  				warnings.add(reader.getWarnings());
  			}
  			return ical;
  		} finally {
  			if (closeWhenDone()) {
  				reader.close();
  			}
  		}
  	}
docs: Reads the first iCalendar object from the stream.
  @return the iCalendar object or null if there are none
  @throws IOException if there's an I/O problem