diff --git a/google-server-api.cabal b/google-server-api.cabal
--- a/google-server-api.cabal
+++ b/google-server-api.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 5ac159e750a2b71f84690632c27ad9f6a2e84d8f1cb4a5889fb343356817ca12
+-- hash: 852a652d4f3bb87da7dfb8fa221c883c79eb107343b11697153df9a85febd341
 
 name:           google-server-api
-version:        0.3.1.0
+version:        0.3.1.1
 synopsis:       Google APIs for server to server applications
 description:    This library provides a way to use Google API for server to server applications.
 category:       Web
diff --git a/src/Google/Client.hs b/src/Google/Client.hs
--- a/src/Google/Client.hs
+++ b/src/Google/Client.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeOperators #-}
 
@@ -44,7 +45,11 @@
   ( BaseUrl(BaseUrl)
   , ClientM
   , Scheme(..)
+#if MIN_VERSION_servant(0, 16, 0)
+  , ClientError
+#else
   , ServantError
+#endif
   , client
   , mkClientEnv
   , runClientM
@@ -55,6 +60,10 @@
 import qualified Google.JWT as JWT
 import qualified Google.Response as Response
 
+#if !MIN_VERSION_servant(0, 16, 0)
+type ClientError = ServantError
+#endif
+
 newtype Bearer = Bearer
   { _unBearer :: Text
   } deriving ( Data
@@ -117,7 +126,7 @@
      Maybe JWT.Email
   -> JWT
   -> [JWT.Scope]
-  -> IO (Either ServantError Response.Token)
+  -> IO (Either ClientError Response.Token)
 getToken maccount jwt scopes = do
   manager <- newManager tlsManagerSettings
   Right a <- JWT.getSignedJWT jwt maccount scopes Nothing
@@ -136,7 +145,7 @@
   -> Maybe Form.DateTime
   -> Maybe Form.DateTime
   -> Maybe Text
-  -> IO (Either ServantError Response.CalendarEventList)
+  -> IO (Either ClientError Response.CalendarEventList)
 getCalendarEventList token calendarId singleEvents timeMin timeMax orderBy = do
   manager <- newManager tlsManagerSettings
   runClientM
@@ -152,7 +161,7 @@
 postCalendarEvent ::
      Response.Token
   -> Form.CalendarEvent
-  -> IO (Either ServantError Response.CalendarEvent)
+  -> IO (Either ClientError Response.CalendarEvent)
 postCalendarEvent token event = do
   manager <- newManager tlsManagerSettings
   runClientM
@@ -163,7 +172,7 @@
     (mkClientEnv manager googleBaseUrl)
 
 postGmailSend ::
-     Response.Token -> Form.Email -> IO (Either ServantError Response.GmailSend)
+     Response.Token -> Form.Email -> IO (Either ClientError Response.GmailSend)
 postGmailSend token email = do
   manager <- newManager tlsManagerSettings
   mail <- (renderMail' =<< Form.toMail email)
