diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 0.3.0.2
+
+### Removed
+- Dependency on `datetime`. That package is absent from Stackage, seems
+    unmaintained, is licensed under GPL (limiting hakyll-convert's licensing),
+    and is easy to replace.
+
+
 ## 0.3.0.1
 
 ### Added
diff --git a/hakyll-convert.cabal b/hakyll-convert.cabal
--- a/hakyll-convert.cabal
+++ b/hakyll-convert.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: a2a3bbd11da27cdd46f1ff08f298fc6887e42179f46bb8b725bffaf8a61e189e
+-- hash: 68d8c7e627e5b3e8c0e6b3407cffa4014e533d28c99ce9f0799abc17066be195
 
 name:           hakyll-convert
-version:        0.3.0.1
+version:        0.3.0.2
 synopsis:       Convert from other blog engines to Hakyll.
 description:    WordPress and Blogger only let one export posts in a limited number of formats, none of which are supported by Hakyll. @hakyll-convert@ is created to bridge this gap, providing a way to turn other platform's datadumps into a set of files Hakyll understands.
 category:       Tools
@@ -83,13 +83,13 @@
       base >=4.13 && <5
     , bytestring >=0.10 && <0.11
     , data-default >=0.7 && <0.8
-    , datetime >=0.3 && <0.4
     , filepath >=1.4 && <1.5
     , hakyll-convert
     , tasty >=1.2 && <1.3
     , tasty-golden >=2.3 && <2.4
     , temporary >=1.3 && <1.4
     , text >=1.2 && <1.3
+    , time >=1.9 && <1.10
     , xml-types >=0.3 && <0.4
   default-language: Haskell2010
 
@@ -100,6 +100,7 @@
       Spec.Blogger
       Spec.IO
       Spec.OutputFormat
+      Spec.SpecHelpers
       Spec.Wordpress
       Paths_hakyll_convert
   hs-source-dirs:
@@ -108,7 +109,6 @@
   build-depends:
       base >=4.13 && <5
     , data-default >=0.7 && <0.8
-    , datetime >=0.3 && <0.4
     , directory >=1.3 && <1.4
     , feed >=1.3 && <1.4
     , filepath >=1.4 && <1.5
@@ -119,5 +119,6 @@
     , tasty-quickcheck >=0.10 && <0.11
     , temporary >=1.3 && <1.4
     , text >=1.2 && <1.3
+    , time >=1.9 && <1.10
     , xml-types >=0.3 && <0.4
   default-language: Haskell2010
diff --git a/test/golden/Golden/IO.hs b/test/golden/Golden/IO.hs
--- a/test/golden/Golden/IO.hs
+++ b/test/golden/Golden/IO.hs
@@ -3,8 +3,9 @@
 module Golden.IO where
 
 import qualified Data.ByteString.Lazy.Char8 as LBS
-import Data.DateTime (fromGregorian)
 import Data.Default (def)
+import qualified Data.Time.Calendar as Calendar
+import Data.Time.Clock (UTCTime (..), secondsToDiffTime)
 import Hakyll.Convert.Common (DistilledPost (..))
 import Hakyll.Convert.IO (savePost)
 import System.FilePath ((</>))
@@ -70,3 +71,9 @@
         let filename = tempDir </> "output.aspx"
         LBS.readFile filename
     )
+
+fromGregorian :: Integer -> Int -> Int -> Int -> Int -> Int -> UTCTime
+fromGregorian year month day hours minutes seconds =
+  let utcDay = Calendar.fromGregorian year month day
+      utcSeconds = secondsToDiffTime $ fromIntegral $ seconds + 60 * (minutes + 60 * hours)
+   in UTCTime utcDay utcSeconds
diff --git a/test/spec/Spec/Blogger.hs b/test/spec/Spec/Blogger.hs
--- a/test/spec/Spec/Blogger.hs
+++ b/test/spec/Spec/Blogger.hs
@@ -3,10 +3,10 @@
 
 module Spec.Blogger (tests) where
 
-import Data.DateTime (fromGregorian)
 import qualified Data.Text as T
 import Hakyll.Convert.Blogger
 import Hakyll.Convert.Common (DistilledPost (..))
+import Spec.SpecHelpers
 import Test.Tasty (TestTree, testGroup)
 import Test.Tasty.ExpectedFailure (expectFail)
 import Test.Tasty.HUnit
diff --git a/test/spec/Spec/IO.hs b/test/spec/Spec/IO.hs
--- a/test/spec/Spec/IO.hs
+++ b/test/spec/Spec/IO.hs
@@ -2,10 +2,10 @@
 
 module Spec.IO (tests) where
 
-import Data.DateTime (fromGregorian)
 import Data.Default (def)
 import Hakyll.Convert.Common (DistilledPost (..))
 import Hakyll.Convert.IO (savePost)
+import Spec.SpecHelpers
 import System.Directory (doesFileExist)
 import System.FilePath ((</>))
 import System.IO.Temp (withSystemTempDirectory)
diff --git a/test/spec/Spec/OutputFormat.hs b/test/spec/Spec/OutputFormat.hs
--- a/test/spec/Spec/OutputFormat.hs
+++ b/test/spec/Spec/OutputFormat.hs
@@ -2,12 +2,12 @@
 
 module Spec.OutputFormat (tests) where
 
-import Data.DateTime (fromGregorian)
 import Data.Default
 import Data.Maybe (isJust)
 import qualified Data.Text as T
 import Hakyll.Convert.Common (DistilledPost (..))
 import Hakyll.Convert.OutputFormat
+import Spec.SpecHelpers
 import Test.Tasty (TestTree, testGroup)
 import Test.Tasty.HUnit
 import Test.Tasty.QuickCheck
diff --git a/test/spec/Spec/SpecHelpers.hs b/test/spec/Spec/SpecHelpers.hs
new file mode 100644
--- /dev/null
+++ b/test/spec/Spec/SpecHelpers.hs
@@ -0,0 +1,10 @@
+module Spec.SpecHelpers (fromGregorian) where
+
+import qualified Data.Time.Calendar as Calendar
+import Data.Time.Clock (UTCTime (..), secondsToDiffTime)
+
+fromGregorian :: Integer -> Int -> Int -> Int -> Int -> Int -> UTCTime
+fromGregorian year month day hours minutes seconds =
+  let utcDay = Calendar.fromGregorian year month day
+      utcSeconds = secondsToDiffTime $ fromIntegral $ seconds + 60 * (minutes + 60 * hours)
+   in UTCTime utcDay utcSeconds
diff --git a/test/spec/Spec/Wordpress.hs b/test/spec/Spec/Wordpress.hs
--- a/test/spec/Spec/Wordpress.hs
+++ b/test/spec/Spec/Wordpress.hs
@@ -3,11 +3,11 @@
 
 module Spec.Wordpress (tests) where
 
-import Data.DateTime (fromGregorian)
 import qualified Data.Text as T
 import qualified Data.XML.Types as XML
 import Hakyll.Convert.Common (DistilledPost (..))
 import Hakyll.Convert.Wordpress
+import Spec.SpecHelpers
 import Test.Tasty (TestTree, testGroup)
 import Test.Tasty.HUnit
 import qualified Text.RSS.Syntax as RSS
