Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
D

django-scheduler

> 编程语言
Open source

A calendaring app for Django.

1.3K stars0 likes1 views
WebsiteGitHub

About

A calendaring app for Django.

Django Scheduler

A calendar app for Django

Information

  • Documentation
  • Wiki
  • Sample Project

Installation

bash
pip install django-scheduler

Edit your settings.py

Add to INSTALLED_APPS:

python
'schedule',

Add to TEMPLATE_CONTEXT_PROCESSORS:

python
"django.template.context_processors.request"

Static assets

Django Scheduler's bundled templates use Bootstrap 5 and Bootstrap Icons loaded via CDN. The FullCalendar view also loads FullCalendar 6 via CDN.

No additional installation is needed — the default templates include all required CSS and JavaScript from CDN links.

If you prefer to manage frontend assets yourself (e.g., via npm, or self-hosted files), you can override the templates in your project.

Remember to execute "python manage.py collectstatic"

Features

  • 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

Configuration

Full Calendar examples

Metrics

Optional Settings

FIRST_DAY_OF_WEEK

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.

OCCURRENCE_CANCEL_REDIRECT

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

SHOW_CANCELLED_OCCURRENCES

This setting controls the behavior of Period.classify_occurrence. If True, then occurrences that have been cancelled will be displayed with a css class of canceled, otherwise they won't appear at all.

Defaults to False

CHECK_EVENT_PERM_FUNC

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

Default:

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

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

CHECK_CALENDAR_PERM_FUNC

This setting controls the callable used to determine if a user has permission to add, update or delete an events in specific calendar. The callable must take the object (calendar) and the user and return a boolean.

Default:

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

GET_EVENTS_FUNC

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

Default:

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

SCHEDULER_PREVNEXT_LIMIT_SECONDS

This settings allows to set the upper and lower limit in calendars navigation. Value is in seconds.

Default (two years): 62208000

Contributing

Tests

To run tests on all supported versions of Django and Python, use tox:

$ tox

Publishing to PyPI

  1. Update the version in pyproject.toml and add a changelog entry.

  2. Commit, tag, and push:

bash
git commit -am "Release X.Y.Z"
git tag vX.Y.Z
git push && git push --tags
  1. Build and publish:
bash
uv build
uv publish --token pypi-YOUR_TOKEN

You can generate an API token at https://pypi.org/manage/account/token/.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Pythoncalendaringevent-calendar

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言