Skip to main content

Your project description goes here

Project description

PyPI CI Codecov Documentation Supported Python versions License


edx-when is designed to be the central source of dates for the LMS. This repository is deployed to PyPI and designed to be installed and imported by an installation of edx-platform. As part of being integrated into edx-platform, edx-when shares the same database as the rest of the platform. It is written to by Studio when a Course is published (via and then the LMS reads from it in several locations. This repo contains start, end, and due dates for Courses and offers the functionality to have both absolute and relative dates.


The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

PR description template should be automatically applied if you are sending PR from github interface; otherwise you can find it it at

Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you can find it at

Reporting Security Issues

Please do not report security issues in public. Please email

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log


  • Switch from edx-sphinx-theme to sphinx-book-theme since the former is deprecated

[2.4.0] - 2023-06-21

  • Support added for Django 4.2

[2.3.0] - 2022-02-15

  • Added Django40 support

  • Dropped Django22, 30 and 31 support

[2.2.2] - 2021-10-21

  • Bug fix to bust cache when Personalized Learner Schedules are updated.

[2.2.1] - 2021-09-15

  • Bug fix for optimization in 2.2.0, to account for missing block_type data.

[2.2.0] - 2021-08-27

  • Added optimization when requesting course block dates for an outline, where block dates below subsections are unneeded.

  • Use current version of the course to improve the cache key, along with using the TieredCache to cache date data.

[2.1.0] - 2021-07-23

Added Django 3.2 Support

[2.0.0] - 2021-01-19

Dropped python3.5 support.

[1.3.2] - 2021-01-15

Don’t warn about missing schedules for relative dates. It happens for legitimate reasons, and the layer above can check instead.

[1.3.1] - 2020-11-19

Updated travis badge in README.rst to point to instead of

[1.3.0] - 2020-07-16

Django 3.x deprecation warnings are fixed

[1.2.9] - 2020-06-30

Don’t return due dates for enrollments originally created too close to the course end to allow for finishing the course in time.

[1.2.8] - 2020-06-17

Don’t return due dates for enrollments created after course end

[1.2.4] - 2020-06-01

Updates function in API for finding learners with a specific Schedule that has an assignment on a given day, to also be inclusive of absolute date schedules (everyone active in the course without an override).

[1.2.3] - 2020-04-30

  • Dropped support for Django versions below 2.2

  • Added support for python 3.8

[1.1.4] - 2019-03-30

  • Drop the active index from ContentDate. It has low cardinality and Aurora was doing a lot of extra work to try to do an intersect query with that and the course_id index, when using the latter by itself would be far more efficient.

[1.1.3] - 2019-03-25

  • Use memcache to cache ContentDate information in get_dates_for_course

[0.1.0] - 2019-03-04


  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edx-when-2.4.0.tar.gz (39.9 kB view hashes)

Uploaded source

Built Distribution

edx_when-2.4.0-py2.py3-none-any.whl (33.3 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page