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
Icalendar - это библиотека для Python, предназначенная для парсинга, генерации и редактирования файлов формата iCalendar (.ics), полностью совместимая со стандартом RFC 5545.
С ее помощью можно создавать, анализировать и модифицировать события, встречи и задачи в коде, а затем экспортировать их для работы с любыми календарными сервисами (Google Calendar, Apple Calendar, Outlook и др.).
zoneinfo (из стандартной библиотеки Python), dateutil.tz и pytz.icalendar построены десятки других инструментов, таких как caldav (клиент CalDAV по RFC 4791), iCalEvents (расчет повторяющихся событий) и x-wr-timezone.Установка из PyPI:
pip install icalendar
Пример создания календаря с событием:
from icalendar import Calendar, Event
from datetime import datetime
cal = Calendar()
event = Event()
event.add('summary', 'Созвон по проекту')
event.add('dtstart', datetime(2026, 8, 10, 10, 0, 0))
event.add('dtend', datetime(2026, 8, 10, 11, 0, 0))
cal.add_component(event)
# Экспорт в файл .ics
with open('meeting.ics', 'wb') as f:
f.write(cal.to_ical())
Проект распространяется под лицензией BSD (2-Clause) и доступен на GitHub.
#Python #iCalendar #RFC5545 #CalDAV #Calendar #DevTools #OpenSource #Backend
https://github.com/collective/icalendar
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - collective/icalendar: icalendar parser library for Python
icalendar parser library for Python. Contribute to collective/icalendar development by creating an account on GitHub.
2👍3 3🔥2