calendar: recurring events auswerten/darstellen
Auswertung recurring events: https://github.com/niccokunzmann/python-recurring-ical-events
https://github.com/niccokunzmann/x-wr-timezone.git https://github.com/collective/icalendar.git
jeweils trunk funktioniert per pip -e
trytond-console:
Cal = pool.get('calendar.calendar')
cal1 = Cal(3)
ical=cal1.calendar2ical()
# ical ist vobject !
>>> type(ical)
<class 'vobject.base.Component'>
# recurring_ical_events benötigt icalendar
ical.behavior
# convert to string
icalstr=ical.serialize()
calendar=icalendar.Calendar.from_ical(icalstr)
start_date = (2021, 3, 5)
end_date = (2023, 3, 5)
events = recurring_ical_events.of(calendar).between(start_date, end_date)
for event in events:
start = event["DTSTART"].dt
duration = event["DTEND"].dt - event["DTSTART"].dt
print("start {} duration {}".format(start, duration))
start 2023-01-24 04:00:00+00:00 duration 3:30:00
start 2023-01-24 05:00:00+00:00 duration 0:00:00
start 2023-01-25 05:00:00+00:00 duration 0:00:00
start 2023-01-26 05:00:00+00:00 duration 0:00:00
start 2023-01-27 05:00:00+00:00 duration 0:00:00
start 2023-01-28 05:00:00+00:00 duration 0:00:00
start 2023-01-29 05:00:00+00:00 duration 0:00:00
start 2023-01-30 05:00:00+00:00 duration 0:00:00
start 2023-01-31 05:00:00+00:00 duration 0:00:00
start 2023-02-01 05:00:00+00:00 duration 0:00:00
start 2023-02-02 05:00:00+00:00 duration 0:00:00
start 2023-02-03 05:00:00+00:00 duration 0:00:00
start 2023-02-04 05:00:00+00:00 duration 0:00:00
start 2023-02-05 05:00:00+00:00 duration 0:00:00
start 2023-02-06 05:00:00+00:00 duration 0:00:00
start 2023-02-07 05:00:00+00:00 duration 0:00:00
start 2023-02-08 05:00:00+00:00 duration 0:00:00
start 2023-02-09 05:00:00+00:00 duration 0:00:00
start 2023-02-10 05:00:00+00:00 duration 0:00:00
start 2023-02-11 05:00:00+00:00 duration 0:00:00
start 2023-02-12 05:00:00+00:00 duration 0:00:00
start 2023-02-13 05:00:00+00:00 duration 0:00:00
start 2023-02-14 05:00:00+00:00 duration 0:00:00
start 2023-02-15 05:00:00+00:00 duration 0:00:00
start 2023-02-16 05:00:00+00:00 duration 0:00:00
start 2023-02-17 05:00:00+00:00 duration 0:00:00
start 2023-02-18 05:00:00+00:00 duration 0:00:00
start 2023-02-19 05:00:00+00:00 duration 0:00:00
start 2023-02-20 05:00:00+00:00 duration 0:00:00
start 2023-02-21 05:00:00+00:00 duration 0:00:00
start 2023-02-22 05:00:00+00:00 duration 0:00:00
start 2023-02-23 05:00:00+00:00 duration 0:00:00
start 2023-02-24 05:00:00+00:00 duration 0:00:00
start 2023-02-25 05:00:00+00:00 duration 0:00:00
start 2023-02-26 05:00:00+00:00 duration 0:00:00
start 2023-02-27 05:00:00+00:00 duration 0:00:00
start 2023-02-28 05:00:00+00:00 duration 0:00:00
start 2023-03-01 05:00:00+00:00 duration 0:00:00
start 2023-03-02 05:00:00+00:00 duration 0:00:00
start 2023-03-03 05:00:00+00:00 duration 0:00:00
start 2023-03-04 05:00:00+00:00 duration 0:00:00
cool!