code: public List<ICalendar> all() throws IOException {
  		StreamReader reader = constructReader();
  		if (index != null) {
  			reader.setScribeIndex(index);
  		}
  
  		try {
  			List<ICalendar> icals = new ArrayList<ICalendar>();
  			ICalendar ical;
  			while ((ical = reader.readNext()) != null) {
  				if (warnings != null) {
  					warnings.add(reader.getWarnings());
  				}
  				icals.add(ical);
  			}
  			return icals;
  		} finally {
  			if (closeWhenDone()) {
  				reader.close();
  			}
  		}
  	}
docs: Reads all iCalendar objects from the stream.
  @return the parsed iCalendar objects
  @throws IOException if there's an I/O problem