--- id: django-recurrence version: "1.14" license: BSD license_treatment: permissive maintenance: active --- # django-recurrence — Django utility wrapping dateutil.rrule License: permissive · Maintenance: active · Downloads: 246.3K/mo ## 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 above — 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 pip install django-recurrence uv add django-recurrence 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_current - Install friction: low - Maintenance: active - Downloads: 246.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags django recurring dates, django recurrence field, django repeating events, django rrule integration, django calendar recurrence, django scheduling patterns, django recurring datetime storage, django-extension, scheduling, datetime-patterns [View on SkillFed](https://skillfed.io/packages/django-recurrence) · [View on PyPI](https://pypi.org/project/django-recurrence/)