Skip to content

Instantly share code, notes, and snippets.

@avenet
Created August 26, 2014 22:24
Show Gist options
  • Save avenet/e3afc44beba1a0d44b57 to your computer and use it in GitHub Desktop.
Save avenet/e3afc44beba1a0d44b57 to your computer and use it in GitHub Desktop.
Generating Outlook periodic items via Python Dateutil
from datetime import datetime
from itertools import islice
from dateutil.rrule import rrule, DAILY, WEEKLY, MONTHLY, YEARLY, SU, MO, TU, WE, TH, FR, SA
#Every two days from now on
rule_day = rrule(DAILY, dtstart=datetime.today(), interval=2)
#Every two weeks (Monday, Tuesday and Wednesday) starting from now
rule_week = rrule(WEEKLY, dtstart=datetime.today(), interval=2, byweekday=(MO, TU, WE))
#Every 26th of each month
every_twenty_six = rrule(MONTHLY, dtstart=datetime.today(), bymonthday=(26, ))
#The last Friday of each two months
last_friday_of_each_two_months = rrule(MONTHLY, dtstart=datetime.today(), byweekday=FR,
interval=2, bysetpos=-1)
#The first Monday of each three months
first_monday_of_each_three_months = rrule(MONTHLY, dtstart=datetime.now(), byweekday=MO,
interval=3, bysetpos=1)
#Every September 2nd each year every five years
every_september_second_each_five_years = rrule(YEARLY, dtstart=datetime.now(), bymonthday=2, bymonth=9, interval=5)
#The fourth monday of September every two years
fourth_monday_of_september_every_two_years = rrule(YEARLY, interval=2, bymonth=9, byweekday=MO, bysetpos=4,
dtstart=datetime.now())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment