Commit Graph

15 Commits

Author SHA1 Message Date
Marc Koch ef1cdb0441
👔 filter calendars when searching for alternatives
Filter out calendars which are:
- not administrated by the current user
- not set as an alternative to the calendar of the declined event
2025-08-20 13:47:50 +02:00
Marc Koch 34f48c7482
🐛 fix: other bookings displayed as declined 2025-08-20 10:31:51 +02:00
Marc Koch 46e62a94ed
introduce max search horizon config
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.
2025-08-19 17:04:24 +02:00
Marc Koch 13dc40302c
🥅 catch errors when searching for calendars 2025-08-19 15:30:07 +02:00
Marc Koch 2aed79e796
🐛 do not identify cacelled events as overlapping 2025-08-19 15:18:11 +02:00
Marc Koch 16984bdbb4
🔊 improve logging 2025-08-19 14:43:01 +02:00
Marc Koch bab3ef6ec0
🐛 fix bug in regex expression for priority tokens 2025-08-19 14:42:53 +02:00
Marc Koch 4752e9d555
♻️ move recurring event canellation into method 2025-08-19 13:00:01 +02:00
Marc Koch 037cfa0d5e
Adds HTML email template support
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.
2025-08-18 12:35:13 +02:00
Marc Koch f7755cd61d
🐛 fix: cannot decline invitation for shared calendar
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.
2025-07-15 13:03:42 +02:00
Marc Koch ee4ff38f13
🐛 fix: remove hardcoded mailserver
Oops 🤦‍♂️
2025-07-15 11:03:11 +02:00
Marc Koch 76c2bf1631
♻️ reorders imports 2025-07-14 20:15:56 +02:00
Marc Koch 14dd63ad72
🐛 fix: declined events not cancelled
Events were declined but not cancelled what lead to a loop of allready declined events getting declined again in every run.
2025-07-14 19:54:20 +02:00
Marc Koch 3fa2763ebf
🐛 fix: corrects placement of cancellation type assignment 2025-07-14 16:40:32 +02:00
Marc Koch 4bd038bf10
adds prioritized event support
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.
2025-07-14 15:41:04 +02:00
Renamed from src/clear_overlaps.py (Browse further)