* add generic calendar icon for caldav
* module for symmetric encrypt/decrypt
* caldav integration
* use Radix dialog
* Move caldav components to /caldav
* remove duplicate cancel button, unused function
* ensure app can connect to caldav server before adding
* fix calendar clients can possibly return null
* fix: add caldav dialog does not close when submitted
* safely attempt all caldav operations
* clarify variable name, fix typo
* use common helper for stripping html
* remove usage of request lib until "completed"
* add types and usage comments to crypto lib
* add encryption key to example env file
* add edit links to events on dashboard
* fit elements on screen for mobile
* initialize components for consistent text styles
* add more fine grained width/height settings
* add higher level setting for when an event is available
- db: add supporting values to period allow setting an amount of days,
a range, or unlimited number days an event is available
* fix issue where periodDates are null
* return minimal required data, handle date parsing
* [ui] limit booking days based on user period settings
* api: validate user period settings
* [db] migration for event type period settings
* More tests to be added to verify slots logic
* Adds Jest
* Implements logic to the booking code to take into account grayed days
* Slots take workhours into account
TODO: Improve the tests, evaluate the structure, small re-orgs here and
there for improved readability / better code
- Introduced useTelemetry() hook
- Telemetry events are sent for page_view, booking_confirmed, time_selected, date_selected events
- Telemetry is configured (and can be disabled) with NEXT_PUBLIC_TELEMETRY_KEY env variable