diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Changelog for pixela
 
+## 0.3.0.0
+
+### Breaking Change
+
+- `Date` type is now `Data.Time.Day`.
+
 ## 0.2.1.0
 
 - Supports GHC 8.0 and 8.2 additionally
diff --git a/pixela.cabal b/pixela.cabal
--- a/pixela.cabal
+++ b/pixela.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.31.0.
+-- This file has been generated from package.yaml by hpack version 0.31.1.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: d13e54bbb1195a39e9338f1dc835cd482b3c0560702d43bd38c4e529eb966ab5
+-- hash: 0f11ca651ff1256006127df1c14193e910362ee1ce86a15c5802243a91b335ae
 
 name:           pixela
-version:        0.2.1.0
+version:        0.3.0.0
 synopsis:       Pixela client.
 description:    Pixela (<https://pixe.la/>) client library.
 category:       Web
@@ -35,17 +35,18 @@
   hs-source-dirs:
       src
   default-extensions: OverloadedStrings
-  ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-record-updates -fwarn-unused-do-bind
+  ghc-options: -Wall -Wcompat -fwarn-tabs -fwarn-incomplete-record-updates -fwarn-unused-do-bind
   build-depends:
       aeson
     , base >=4.7 && <5
     , bytestring
-    , data-default
+    , data-default-class
     , http-client
     , http-client-tls
     , http-types
     , split
     , text
+    , time
     , unordered-containers
     , uri-encode
     , vector
@@ -63,13 +64,14 @@
       aeson
     , base >=4.7 && <5
     , bytestring
-    , data-default
+    , data-default-class
     , http-client
     , http-client-tls
     , http-types
     , pixela
     , split
     , text
+    , time
     , unordered-containers
     , uri-encode
     , vector
diff --git a/src/Web/Pixela.hs b/src/Web/Pixela.hs
--- a/src/Web/Pixela.hs
+++ b/src/Web/Pixela.hs
@@ -59,7 +59,7 @@
 import qualified Data.Aeson                 as Aeson
 import qualified Data.ByteString.Char8      as BS
 import qualified Data.ByteString.Lazy.Char8 as BSL
-import           Data.Default
+import           Data.Default.Class
 import qualified Data.HashMap.Strict        as HashMap
 import           Data.Maybe                 (fromMaybe)
 #if __GLASGOW_HASKELL__ < 804
@@ -68,6 +68,7 @@
 import           Data.String
 import           Data.Text                  (Text)
 import qualified Data.Text                  as Text
+import           Data.Time
 import           Data.Typeable
 import qualified Data.Vector                as Vector
 import           Data.Version               (showVersion)
@@ -200,7 +201,7 @@
   toParameter DefaultMode = ""
 
 type Url = String
-type Date = String
+type Date = Day
 type Quantity = String
 
 data WebhookType = Increment | Decrement deriving (Show, Read, Eq)
@@ -390,7 +391,7 @@
 getQuantityBSL graphId date (Client (Config ep _ userName' token') manager) =
   requestBSL
     GET
-    (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode date)
+    (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode (formatDay date))
     (Just token')
     Nothing
     manager
@@ -402,7 +403,7 @@
   void $
     request
       PUT
-      (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode date)
+      (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode (formatDay date))
       (Just token')
       (Just $ Aeson.object ["quantity" .= quantity])
       manager
@@ -438,7 +439,7 @@
   void $
     request
       DELETE
-      (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode date)
+      (ep </> "users" </> URI.encode userName' </> "graphs" </> URI.encode graphId </> URI.encode (formatDay date))
       (Just token')
       Nothing
       manager
@@ -542,3 +543,6 @@
 (</>) :: (Semigroup p, IsString p) => p -> p -> p
 p </> q = p <> "/" <> q
 infixr 6 </>
+
+formatDay :: Day -> String
+formatDay = formatTime defaultTimeLocale "%y%d%m"
