Calgebra — это алгебра множеств для календарей в Python: позволяет комбинировать временные интервалы (|, &, -, ~) и эффективно запрашивать свободные/занятые слоты во временных диапазонах .
from calgebra import day_of_week, time_of_day, at_tz, pprint, hours, HOUR
from itertools import islice
tz = "US/Pacific"
at = at_tz(tz)
# Календари команды (Google / .ics / свои источники)
alice, bob, charlie = ...
# Будни и рабочие часы
weekend = day_of_week(["saturday", "sunday"], tz=tz)
weekdays = ~weekend
workhours = time_of_day(start=9*HOUR, duration=8*HOUR, tz=tz)
business_hours = weekdays & workhours
# Кто когда занят
team_busy = alice | bob | charlie
# Свободные слоты в рабочее время, минимум на 2 часа
free_slots = (business_hours - team_busy) & (hours >= 2)
pprint(islice(free_slots[at("2025-01-01"):at("2025-02-01")], 5), tz=tz)
# 2025-01-06 14:00:00 -> 17:00:00
# 2025-01-08 09:00:00 -> 12:00:00
# ...
day_of_week(), time_of_day(), recurring() в стиле RFC 5545 (как в iCalendar).hours >= 2, summary == "standup", кастомные свойства событий.timeline[start:end]).calgebra.gcsa.pip install calgebra
# с поддержкой Google Calendar
pip install calgebra[google-calendar]
# с поддержкой iCalendar (.ics)
pip install calgebra[ical]
#Calgebra #Python #Calendar #Scheduling #GoogleCalendar #ICS #SetAlgebra #Automation #OpenSource
https://github.com/ashenfad/calgebra
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ashenfad/calgebra: Set operations for calendar intervals
Set operations for calendar intervals. Contribute to ashenfad/calgebra development by creating an account on GitHub.
1👍3🔥3