diff --git a/Data/Dates.hs b/Data/Dates.hs
--- a/Data/Dates.hs
+++ b/Data/Dates.hs
@@ -4,7 +4,7 @@
   (DateTime (..),
    Time (..),
    WeekDay (..),
-   parseDate,
+   parseDate, parseDateTime,
    pDate, pDateTime, pTime,
    pDateInterval,
    getCurrentDateTime,
@@ -27,8 +27,12 @@
 import Data.Char (toUpper)
 import Data.List
 import Data.Time.Calendar
-import Data.Time.Calendar.WeekDate
+  ( Day, toGregorian, fromGregorian, addDays, addGregorianMonthsClip
+  , addGregorianYearsClip, toModifiedJulianDay )
+import Data.Time.Calendar.WeekDate (toWeekDate)
 import Data.Time.LocalTime
+  ( getZonedTime, zonedTimeToLocalTime, localDay, localTimeOfDay
+  , todHour, todMin, todSec )
 import Text.Parsec
 import Data.Generics
 import Data.Char (toLower)
@@ -432,9 +436,15 @@
   <|> (try $ pByWeek date)
   <|> (try $ pAbsDate $ year date)
 
--- | Parse date/time
+-- | Parse date
 parseDate ∷ DateTime  -- ^ Current date / time, to use as base for relative dates
           → String    -- ^ String to parse
           → Either ParseError DateTime
 parseDate date s = runParser (pDate date) () "" s
+
+-- | Parse date and time
+parseDateTime ∷ DateTime  -- ^ Current date / time, to use as base for relative dates
+          → String    -- ^ String to parse
+          → Either ParseError DateTime
+parseDateTime date s = runParser (pDateTime date) () "" s
 
diff --git a/dates.cabal b/dates.cabal
--- a/dates.cabal
+++ b/dates.cabal
@@ -1,5 +1,5 @@
 name:                dates
-version:             0.2.2.2
+version:             0.2.3.0
 synopsis:            Small library for parsing different dates formats.
 description:         This package allows to parse many different formats
                      of dates. Both absolute and relative dates are supported.
@@ -25,7 +25,7 @@
                      User-specified date formats are supported by
                      Data.Dates.Formats module.
 
-homepage:            http://redmine.iportnov.ru/projects/dates/
+homepage:            https://github.com/portnov/dates
 license:             BSD3
 license-file:        LICENSE
 author:              IlyaPortnov
@@ -41,14 +41,22 @@
                        Data.Dates.Formats,
                        Data.Dates.Internal
 
-  build-depends:       base >=4 && < 4.12,
+  build-depends:       base >=4.9 && < 4.13,
                        base-unicode-symbols ==0.2.*,
-                       time >= 1.4,
-                       parsec >=3.1,
-                       syb >=0.3.7
+                       time >= 1.4 && < 1.10,
+                       parsec ==3.1.*,
+                       syb >=0.3.7 && < 0.8
 
   GHC-Options:         -O2
 
+Test-suite main
+  type: exitcode-stdio-1.0
+  build-depends: base >= 4.9 && < 4.13,
+                 hspec,
+                 dates
+  hs-source-dirs: tests
+  main-is: Spec.hs
+
 Source-repository head
   type:     git
-  location: git://redmine.iportnov.ru/dates.git
+  location: https://github.com/portnov/dates.git
diff --git a/tests/Spec.hs b/tests/Spec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Spec.hs
@@ -0,0 +1,51 @@
+
+import Test.Hspec
+import Data.Dates
+
+todayString :: String
+todayString = "27 June 2019, 19:55:11"
+
+main :: IO ()
+main = hspec $ describe "test suite" $ do
+  it "parses full absolute date specification" $ do
+    let Right today = parseDateTime undefined todayString
+    today `shouldBe` DateTime 2019 6 27 19 55 11
+
+  it "parses simple absolute format #1" $ do
+    let Right day = parseDate undefined "2019/06/27"
+    day `shouldBe` DateTime 2019 6 27 0 0 0
+
+  it "parses simple absolute format #2" $ do
+    let Right day = parseDate undefined "27.06.2019"
+    day `shouldBe` DateTime 2019 6 27 0 0 0
+
+  it "parses absolute format #3" $ do
+    let Right day = parseDate undefined "27 June 2019"
+    day `shouldBe` DateTime 2019 6 27 0 0 0
+
+  it "parses simple relative formats" $ do
+    let Right today = parseDateTime undefined todayString
+        Right today1 = parseDate today "today"
+        Right yesterday = parseDate today "yesterday"
+        Right tomorrow = parseDate today "tomorrow"
+
+    today1 `shouldBe` DateTime 2019 6 27 19 55 11
+    yesterday `shouldBe` DateTime 2019 6 26 19 55 11
+    tomorrow `shouldBe` DateTime 2019 6 28 19 55 11
+
+  it "parses more complex relative formats" $ do
+    let Right today = parseDateTime undefined todayString
+        Right inTwoDays = parseDate today "in 2 days"
+        Right threeWeeksAgo = parseDate today "3 weeks ago"
+        Right lastMonday = parseDate today "last monday"
+        Right nextFriday = parseDate today "next friday"
+        Right lastMonth = parseDate today "last month"
+        Right nextYear = parseDate today "next year"
+
+    inTwoDays `shouldBe` DateTime 2019 6 29 19 55 11
+    threeWeeksAgo `shouldBe` DateTime 2019 6 6 19 55 11
+    lastMonday `shouldBe` DateTime 2019 6 24 19 55 11
+    nextFriday `shouldBe` DateTime 2019 6 28 19 55 11
+    lastMonth `shouldBe` DateTime 2019 6 1 19 55 11
+    nextYear `shouldBe` DateTime 2020 1 1 19 55 11
+
