diff --git a/pkgs/development/python-modules/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix
new file mode 100644
index 000000000000..5a8608c5037f
--- /dev/null
+++ b/pkgs/development/python-modules/convertdate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pymeeus, pytz }:
+
+buildPythonPackage rec {
+  pname = "convertdate";
+  version = "2.2.0";
+
+  # Tests are not available in the PyPI tarball so use GitHub instead.
+  src = fetchFromGitHub {
+    owner = "fitnr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04j8k7a9qndmawy3m345py74y18hw7lb6gc0qp0mr8d68x99xjq0";
+  };
+
+  propagatedBuildInputs = [ pymeeus pytz ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/fitnr/convertdate";
+    description = "Utils for converting between date formats and calculating holidays";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jluttine ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index acb28f8bfe24..3af1a0eb27b1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -571,6 +571,8 @@ in {
 
   codespell = callPackage ../development/python-modules/codespell { };
 
+  convertdate = callPackage ../development/python-modules/convertdate { };
+
   crc32c = callPackage ../development/python-modules/crc32c { };
 
   curio = callPackage ../development/python-modules/curio { };