diff --git a/genvalidity-time.cabal b/genvalidity-time.cabal
--- a/genvalidity-time.cabal
+++ b/genvalidity-time.cabal
@@ -1,5 +1,5 @@
 name: genvalidity-time
-version: 0.0.0.1
+version: 0.0.0.2
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
@@ -28,7 +28,8 @@
         base >=4.7 && <5,
         validity-time >=0.0 && <0.1,
         genvalidity >=0.3.0.1 && <0.4,
-        time
+        time,
+        QuickCheck >= 2.7
     default-language: Haskell2010
     hs-source-dirs: src
 
diff --git a/src/Data/GenValidity/Time/Calendar.hs b/src/Data/GenValidity/Time/Calendar.hs
--- a/src/Data/GenValidity/Time/Calendar.hs
+++ b/src/Data/GenValidity/Time/Calendar.hs
@@ -12,4 +12,5 @@
 instance GenUnchecked Day where
     genUnchecked = ModifiedJulianDay <$> genUnchecked
 
-instance GenValid Day
+instance GenValid Day where
+    genValid = ModifiedJulianDay <$> genValid
diff --git a/src/Data/GenValidity/Time/Clock.hs b/src/Data/GenValidity/Time/Clock.hs
--- a/src/Data/GenValidity/Time/Clock.hs
+++ b/src/Data/GenValidity/Time/Clock.hs
@@ -11,20 +11,27 @@
 import Data.Time.Clock
 import Data.Validity.Time.Clock ()
 
+import Test.QuickCheck
+
 instance GenUnchecked UniversalTime where
     genUnchecked = ModJulianDate <$> genUnchecked
 
-instance GenValid UniversalTime
+instance GenValid UniversalTime where
+    genValid = ModJulianDate <$> genValid
 
 instance GenUnchecked DiffTime where
     genUnchecked = picosecondsToDiffTime <$> genUnchecked
 
-instance GenValid DiffTime
+instance GenValid DiffTime where
+    genValid = picosecondsToDiffTime <$> genValid
 
 instance GenUnchecked UTCTime where
     genUnchecked = UTCTime <$> genUnchecked <*> genUnchecked
 
-instance GenValid UTCTime
+instance GenValid UTCTime where
+    genValid =
+        UTCTime <$> genValid <*>
+        (genValid `suchThat` (>= 0) `suchThat` (<= 86400))
 
 instance GenInvalid UTCTime
 
diff --git a/src/Data/GenValidity/Time/Format.hs b/src/Data/GenValidity/Time/Format.hs
--- a/src/Data/GenValidity/Time/Format.hs
+++ b/src/Data/GenValidity/Time/Format.hs
@@ -17,5 +17,12 @@
         genUnchecked <*>
         genUnchecked
 
-instance GenValid TimeLocale
+instance GenValid TimeLocale where
+    genValid =
+        TimeLocale <$> genValid <*> genValid <*> genValid <*>
+        genValid <*>
+        genValid <*>
+        genValid <*>
+        genValid <*>
+        genValid
 #endif
diff --git a/src/Data/GenValidity/Time/LocalTime.hs b/src/Data/GenValidity/Time/LocalTime.hs
--- a/src/Data/GenValidity/Time/LocalTime.hs
+++ b/src/Data/GenValidity/Time/LocalTime.hs
@@ -11,28 +11,37 @@
 import Data.Time.LocalTime
 import Data.Validity.Time.LocalTime ()
 
+import Test.QuickCheck
+
 instance GenUnchecked TimeZone where
     genUnchecked = TimeZone <$> genUnchecked <*> genUnchecked <*> genUnchecked
 
-instance GenValid TimeZone
+instance GenValid TimeZone where
+    genValid = TimeZone <$> genValid <*> genValid <*> genValid
 
 instance GenUnchecked TimeOfDay where
     genUnchecked = TimeOfDay <$> genUnchecked <*> genUnchecked <*> genUnchecked
 
-instance GenValid TimeOfDay
+instance GenValid TimeOfDay where
+    genValid =
+        TimeOfDay <$> (genValid `suchThat` (>= 0) `suchThat` (<= 23)) <*>
+        (genValid `suchThat` (>= 0) `suchThat` (<= 59)) <*>
+        (genValid `suchThat` (>= 0) `suchThat` (<= 60))
 
 instance GenInvalid TimeOfDay
 
 instance GenUnchecked LocalTime where
     genUnchecked = LocalTime <$> genUnchecked <*> genUnchecked
 
-instance GenValid LocalTime
+instance GenValid LocalTime where
+    genValid = LocalTime <$> genValid <*> genValid
 
 instance GenInvalid LocalTime
 
 instance GenUnchecked ZonedTime where
     genUnchecked = ZonedTime <$> genUnchecked <*> genUnchecked
 
-instance GenValid ZonedTime
+instance GenValid ZonedTime where
+    genValid = ZonedTime <$> genValid <*> genValid
 
 instance GenInvalid ZonedTime
