diff --git a/bytestring-conversion.cabal b/bytestring-conversion.cabal
--- a/bytestring-conversion.cabal
+++ b/bytestring-conversion.cabal
@@ -1,5 +1,5 @@
 name:                bytestring-conversion
-version:             0.1.1
+version:             0.2
 synopsis:            Type-classes to convert values to and from ByteString.
 license:             OtherLicense
 license-file:        LICENSE
@@ -40,6 +40,7 @@
         base              >= 4.5    && < 5.0
       , attoparsec        >= 0.10   && < 0.13
       , bytestring        >= 0.10.4 && < 0.11
+      , case-insensitive  == 1.2.*
       , double-conversion == 2.0.*
       , text              >= 0.11   && < 1.2
 
diff --git a/src/Data/ByteString/Conversion/From.hs b/src/Data/ByteString/Conversion/From.hs
--- a/src/Data/ByteString/Conversion/From.hs
+++ b/src/Data/ByteString/Conversion/From.hs
@@ -20,6 +20,7 @@
 import Data.Bits (Bits)
 import Data.ByteString (ByteString, elem)
 import Data.ByteString.Conversion.Internal
+import Data.CaseInsensitive (CI, FoldCase, mk)
 import Data.Int
 import Data.Maybe (isJust)
 import Data.Text (Text)
@@ -68,6 +69,9 @@
 -- | A (flat) comma-separated list of values without spaces.
 instance FromByteString a => FromByteString (List a) where
     parser = parseList
+
+instance (FoldCase a, FromByteString a) => FromByteString (CI a) where
+    parser = mk <$> parser
 
 -- | UTF-8 is assumed as encoding format.
 instance FromByteString Char where
diff --git a/src/Data/ByteString/Conversion/To.hs b/src/Data/ByteString/Conversion/To.hs
--- a/src/Data/ByteString/Conversion/To.hs
+++ b/src/Data/ByteString/Conversion/To.hs
@@ -8,7 +8,6 @@
 
 module Data.ByteString.Conversion.To
     ( ToByteString (..)
-    , Builder
     , toByteString
     , toByteString'
     , runBuilder
@@ -18,6 +17,7 @@
 import Data.ByteString.Conversion.Internal
 import Data.ByteString.Lazy.Builder
 import Data.ByteString.Lazy.Builder.Extras hiding (runBuilder)
+import Data.CaseInsensitive (CI, original)
 import Data.Double.Conversion.Text
 import Data.Int
 import Data.List (intersperse)
@@ -74,6 +74,9 @@
 instance ToByteString Bool where
     builder True  = byteString "true"
     builder False = byteString "false"
+
+instance ToByteString a => ToByteString (CI a) where
+    builder = builder . original
 
 toByteString :: ToByteString a => a -> L.ByteString
 toByteString = runBuilder . builder
