Seems to me that a JTable might work well. The first column would be the description of the event and the second column would be the date of the event. You would need a mechanism for adding a new row to the JTable, but apart from that I think that JTable already does most of what you want.
And notice that it doesn't restrict the number of events that a person can define. As a general principle
you should avoid arbitrary restrictions on the number of things in a group -- it's called the "Zero, One, Infinity" rule. In other words the only valid restrictions you can place on the size of a set are (1) must be empty (2) must contain exactly one element (3) can contain any number of elements. That's also related to the database normalization process which removes repeating groups from a table.