Read a `.ics` file (`path`), pasted contents (`text`) or a public feed (`url`, Pro) and keep it locally under a name. Importing the same name again replaces it.
Every imported calendar: name, source, event count, size, when it was imported.
Every event between two dates with recurring series expanded to real occurrences, sorted, in your own time zone. Each row carries an id.
Events whose title, description, location, organizer or attendees contain a phrase.
Merged busy blocks and the free gaps inside your working hours, day by day. Events marked free/transparent do not count as busy.
Every pair of events that overlap, with the overlap in minutes -- across all calendars, so a client call clashing with a school run is caught. A longer window is shortened to the free 31 days and answered, never refused.
The next thing that has not started, and how long until it does.
Write chosen events (by id, or a whole window) to a new `.ics` you can send. Times in UTC, so it lands correctly in any client.
Turn one meeting into the exact arguments for the time-tracker's `entry_add`, so a call becomes billable time without retyping it.
Remove one calendar and its local copy.
Show the tier; activate a Pro key offline.