Skip to content
NOT MAINTAINED - see other forks
Python JavaScript
#16 Compare This branch is 121 commits ahead, 3 commits behind thauber:master.
Latest commit 53167d7 Jun 17, 2011 bartek Updated contributors
Failed to load latest commit information.
docs Updated installation doc Nov 27, 2010
project_sample Updated contributors Jun 17, 2011
schedule Merge remote-tracking branch 'tgecho/master' Jun 17, 2011
.gitignore jquery.tooltip is now present Aug 25, 2009
AUTHORS Updated contributors Jun 17, 2011
LICENCSE.txt adjusted the manifest to catch all the media files Oct 21, 2009
README.textile Some updated README Nov 28, 2010



A calendaring/scheduling application, featuring:

  • one-time and recurring events
  • calendar exceptions (occurrences changed or cancelled)
  • occurrences accessible through Event API and Period API
  • relations of events to generic objects
  • ready to use, nice user interface
  • view day, week, month, three months and year
  • project sample which can be launched immediately and reused in your project

See wiki page for more


Download the code; put in into your project’s directory or run

python install
to install system-wide.


  • python-vobject
  • python-dateutil from Labix

(both come with most distributions)






This setting determines which day of the week your calendar begins on if your locale doesn’t already set it. Default is 0, which is Sunday.


This setting controls the behavior of :func:`Views.get_next_url`. If set, all calendar modifications will redirect here (unless there is a `next` set in the request.)


This setting controls the behavior of :func:`Period.classify_occurence`. If True, then occurences that have been cancelled will be displayed with a css class of canceled, otherwise they won’t appear at all.

Defaults to False


This setting controls the callable used to determine if a user has permission to edit an event or occurance. The callable must take the object and the user and return a boolean.


check_edit_permission(ob, user):
return user.is_authenticated()

If ob is None, then the function is checking for permission to add new events


This setting controls the callable that gets all events for calendar display. The callable must take the request and the calendar and return a `QuerySet` of events. Modifying this setting allows you to pull events from multiple calendars or to filter events based on permissions


get_events(request, calendar):
return calendar.event_set.all()

Add :

(r’^schedule/‘, include(’schedule.urls’)),

Something went wrong with that request. Please try again.