beh ovviamente e` fattibile.

per tenere i file nascosti all'utente li cripterei e gli cambierei l'estensione...per quanto possa essere utile, oltre che mantenerli nascosti.

per le classi, oltre a quelle da te elencate, ti serviranno degli stream, la libreria iText per generare i pdf, la libreria jcalendar per la gestione del calendario, jfilechoser per scegliere i file con una semplice schermata...mi sembra tutto (a meno di banalita`)