My recommendations concerning various libraries.
-
Google Guava: “new collection types (such as multimap and multiset), immutable collections, a graph library, functional types, an in-memory cache, and APIs/utilities for concurrency, I/O, hashing, primitives, reflection, string processing, and much more”. You should definitely use their preconditions helpers. Then check whatever else you might have a use for.
-
Parce CSV files: SuperCSV; uniVocity (more recent, looks nice, but I haven’t tried it); more references
-
Parse command line arguments: I have used Apache Commons CLI, but I’d encourage you to check out JOpt Simple.
-
iCalendar (ical, ics) files: according to SO, biweekly is better than iCal4j. I found that iCal4j has very scarce documentation. A minor inconvenience of both is that they use old date-time java objects rather than the new java.time API.