<?xml version="1.0" encoding="iso-8859-1"?>

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title type="text">Joseph Reagle</title>
<subtitle type="html"><![CDATA[
Open Communities, Media, Source, and Standards
]]></subtitle>
<id>http://reagle.org/joseph/blog/technology/python/creating-semester-calendars</id>
<link rel="alternate" type="text/html" href="http://reagle.org/joseph/blog" />
<link rel="self" type="application/atom+xml" href="http://reagle.org/joseph/blog/technology/python/creating-semester-calendars?flav=atom" />


<author>
<name>Joseph Reagle</name>
<uri>http://reagle.org/joseph/blog/technology/python/creating-semester-calendars</uri>
<email></email>
</author>
<rights>Copyright 2003-2010 Joseph Reagle</rights>
<generator uri="http://pyblosxom.sourceforge.net/" version="1.4.3 01/10/2008">
PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008
</generator>

<updated>2007-06-20T16:11:54Z</updated>
<!-- icon?  logo?  -->

<entry>
<title type="html">Creating a Semester&apos;s Class Schedule</title>
<category term="" />
<id>http://reagle.org/joseph/blog/2007/06/20/creating-semester-calendars</id>
<updated>2007-06-20T16:11:54Z</updated>
<published>2007-06-20T16:11:54Z</published>
<link rel="alternate" type="text/html" href="http://reagle.org/joseph/blog/technology/python/creating-semester-calendars.html" />
<content type="html">

&lt;p&gt;I just discovered Python&apos;s awesome &lt;a href=&quot;http://labix.org/python-dateutil&quot;&gt;dateutil&lt;/a&gt; package which
implements much of the &lt;a href=&quot;ftp://ftp.rfc-editor.org/in-notes/rfc2445.txt&quot;&gt;iCalendar standard&lt;/a&gt;, including recurrences!
Consequently, it&apos;s trivial to generate a calendar for the days classes
meet. I assume with a little work one could even handle the holidays.
In any case, here&apos;s an example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/python2.5

from dateutil.rrule import *
from dateutil.parser import *

sem_start = &apos;20070903T140000&apos;
sem_end = &apos;20071212T140000&apos;
days = MO,WE

meetings = list(rrule(WEEKLY, wkst=SU, byweekday=(days),
    dtstart=parse(sem_start), until=parse(sem_end)))
for meeting in meetings:
    print meeting.strftime(&quot;%b %d %a&quot;)
&lt;/code&gt;&lt;/pre&gt;</content>
</entry>
</feed>
