def add_all_saints_day(self, year): """Add recurring event for all saint's day.""" event = Holiday(date(year, 1, 1), 'Alla helgons dag') rrule = vRecur() rrule['FREQ'] = vFrequency('YEARLY') rrule['BYDAY'] = vWeekday('SA') rrule['BYMONTHDAY'] = 31 rrule['BYMONTH'] = 10 event.add('rrule', rrule) self.add_component(event) event2 = Holiday(date(year, 1, 1), 'Alla helgons dag') rrule2 = vRecur() rrule2['FREQ'] = vFrequency('YEARLY') rrule2['BYDAY'] = vWeekday('SA') rrule2['BYMONTHDAY'] = (1, 2, 3, 4, 5, 6) rrule2['BYMONTH'] = 11 event2.add('rrule', rrule2) self.add_component(event2)
def add_all_saints_eve(self, year): """Add recurring event for all saint's eve.""" event = Holiday(date(year, 1, 1), 'Allhelgonaafton', Work.DEPENDS) rrule = vRecur() rrule['FREQ'] = vFrequency('YEARLY') rrule['BYDAY'] = vWeekday('FR') rrule['BYMONTHDAY'] = (30, 31) rrule['BYMONTH'] = 10 event.add('rrule', rrule) self.add_component(event) event2 = Holiday(date(year, 1, 1), 'Allhelgonaafton', Work.DEPENDS) rrule2 = vRecur() rrule2['FREQ'] = vFrequency('YEARLY') rrule2['BYDAY'] = vWeekday('FR') rrule2['BYMONTHDAY'] = (1, 2, 3, 4, 5) rrule2['BYMONTH'] = 11 event2.add('rrule', rrule2) self.add_component(event2)
def add_midsummer_day(self, year): """Add recurring event for the midsummer day.""" event = Holiday(date(year, 1, 1), 'Midsommardagen') rrule = vRecur() rrule['FREQ'] = vFrequency('YEARLY') rrule['BYDAY'] = vWeekday('SA') rrule['BYMONTHDAY'] = (20, 21, 22, 23, 24, 25, 26) rrule['BYMONTH'] = 6 event.add('rrule', rrule) self.add_component(event)
def add_midsummers_eve(self, year): """Add recurring event for midsummer's eve.""" event = Holiday(date(year, 1, 1), 'Midsommarafton', Work.DEFACTO) rrule = vRecur() rrule['FREQ'] = vFrequency('YEARLY') rrule['BYDAY'] = vWeekday('FR') rrule['BYMONTHDAY'] = (19, 20, 21, 22, 23, 24, 25) rrule['BYMONTH'] = 6 event.add('rrule', rrule) self.add_component(event)
def icalevent(e): if not all(prop in e for prop in ['date', 'title']): return iev = Event() iev.add('dtstamp', datetime.now()) iev.add('dtstart', e['date']) iev.add('dtend', e['date'] + timedelta(1)) rrule = vRecur() rrule['freq'] = vFrequency('yearly') iev.add('rrule', rrule) iev.add('summary', vText("{:04d}: {}".format(e['date'].year, e['title']))) iev.add('uid', "{}@icalaniversary.invalid".format(slugify(iev['summary']))) desc = [e.get('link'), e.get('desc')] if any(desc): desc = "\n".join([x for x in desc if x]) iev.add('description', vText(desc)) return iev
def __init__(self, dtstart, summary, work=Work.FREE): super().__init__(dtstart, summary, work) rrule = vRecur() rrule['FREQ'] = vFrequency('YEARLY') self.add('rrule', rrule)