Adds `MAX_SEARCH_HORIZON` environment variable to control the
maximum range of days for search operations.
Splits longer search periods into multiple requests, preventing
potential performance issues or timeouts with large datasets.
Enables the use of HTML email templates, providing richer formatting and
improved user experience.
This includes:
- Modifying the EmailTemplate model to include both plaintext and HTML fields.
- Updating the clear_bookings script to use the HTML template when available,
for sending notifications.
- Adds the possibility to add alternative calendars to the calendar model.
- Adds the possibility to consider calendar alternatives when clearing bookings.
- Provides a list of alternative rooms to the email template.
The available template variables were also updated in the README.
If the principal of the calendar does not own it, because it is a shared calendar, invitations cannot be declined because the principal is not invited. This fix causes the appointment to be canceled in the calendar instead.
This commit introduces support for prioritized events, allowing certain events to take precedence over others during overlap resolution.
This is achieved by:
- Introducing a `PriorityEventToken` model to manage tokens for priority events.
- Modifying the overlap resolution logic to skip overlaps if a prioritized event is involved.
- Updating email templates to include information about prioritization and overlap events.
- Adding a check for priority tokens in event descriptions.