skillfed

django-recurrence

Django utility wrapping dateutil.rrule

django-recurrence v1.14 246.3K downloads/30d#8,713 on PyPI543
Permissive license BSD Active released

What it is and what it does

django-recurrence is a Django model field and utility library for storing recurring date and time patterns in your database. It wraps dateutil.rrule to handle RFC 2445-based recurrence rules, letting you define patterns like "every Friday" or "first Monday of each month" without storing individual event instances. The library provides a RecurrenceField that serializes recurrence information for database storage, a Recurrence/Rule object interface, and a JavaScript widget for UI interaction.

Typically used in scheduling applications, course management systems, or any Django project where events repeat on a pattern. Instead of creating separate database records for each occurrence, you store the recurrence rule once and generate occurrences on demand. The package is actively maintained, supports modern Python and Django versions, and has no known security vulnerabilities.

Use it for:

  • Store university course schedules with repeating class times without creating individual event records.
  • Build appointment booking systems where recurring slots (e.g., every Tuesday 2-4pm) are defined once.
  • Create calendar applications that display repeating events based on stored recurrence patterns.
  • Implement subscription or billing cycles with recurring date patterns.
  • Model repeating maintenance tasks or system jobs with flexible scheduling rules.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a Django model field and utilities for storing and working with recurring dates and times in your database, wrapping dateutil.rrule for RFC 2445-based recurrence rules.

Yes. django-recurrence is a stable, actively maintained library with low install friction and no security issues. It solves a specific, well-defined problem (recurring dates in Django) with a clean API and broad Django/Python version support. Install it if your project needs to store or work with repeating date patterns.

Install

django-recurrence on PyPI

pip

pip install django-recurrence

uv

uv add django-recurrence

poetry

poetry add django-recurrence

Installing django-recurrence

Before you install

Low friction install with only two runtime dependencies (django and python-dateutil). Actively maintained with a recent release and ongoing commits; supports modern Python versions (3.9+) and current Django versions (4.2, 5.2, 6.0).

License in practice

BSD license is permissive, allowing use in commercial and private projects with minimal restrictions.

Quickstart

pip install django-recurrence

import recurrence.fields

class Course(models.Model):
    title = models.CharField(max_length=200)
    recurrences = recurrence.fields.RecurrenceField()

Requires Django to be installed and configured in your project.

Verify before relying

  • Whether the JavaScript widget is automatically included or requires separate setup.
  • Performance characteristics when querying large numbers of recurring events.
  • Compatibility with Django ORM querysets for filtering by recurrence patterns.

Package facts

License BSD (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 2 — django, python-dateutil
Maintenance actively maintained — 238 days since the last release
Last repo commit
First released
Downloads 246,284/month — #8,713 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_recurrence-1.14-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: PluginsEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: ImplementationProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

django recurring datesdjango recurrence fielddjango repeating eventsdjango rrule integrationdjango calendar recurrencedjango scheduling patternsdjango recurring datetime storage
django-extensionschedulingdatetime-patterns

More Application Frameworks packages