- 1 ics file per event
- can modify existing ics file to modify existing event (hopefully)
- ics will be generated by ical4j (see below)
- ical4j usage
- each event is going to have a ComparableCalendar object (extends ical4j Calendar, not Java Calendar)
- to export to ics, use CalendarOutput: See "Generating a Calendar File"
- Store ComparableCalendar objects in a PriorityQueue sorted by start Date (note: Date is a class in ical4j, and it is Comparable) of the event
- EventStorage class for frontend and TensorFlow processing to hook into
- handles all i/o for events
- creating new events
- modifying existing events
- public addEvent()
- adds a new event to the list
- parameters: String for title, String for date, anything else??
- if event already exists, call modifyEvent() instead
- private modifyEvent()
- modifies an existing event
- parameters: same as addEvent()
- private eventExists()
- returns true or false depending on whether the event exists or not
- public deleteEvent()
- deletes an existing event
- handles all i/o for events
- ComparableCalendar extends Calendar implements Comparable
- compareTo based on Dates of the VEvent
- Sorting the list of already added events by different criteria (Name, Start Date, etc.)
- would need a KD tree (which is why we're not doing this in the first iteration)
- Handling fliers for recurring events
- modifying existing events in the user's calendar
- right now, new events can be added to the user's calendar by exporting the .ics file and importing it into the user's calendar app.
- we are unable to modify existing events that have added to the user's calendar in the past via the above method.