diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,5 @@
 # Changelog for pagerduty
 
-## Unreleased changes
+## 0.2.0.0
+
+Moved EventV1 optics into a separate module.
diff --git a/pagerduty-hs.cabal b/pagerduty-hs.cabal
--- a/pagerduty-hs.cabal
+++ b/pagerduty-hs.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           pagerduty-hs
-version:        0.1.0.1
+version:        0.2.0.0
 synopsis:       An interface to the PagerDuty API.
 description:    Please see the README on GitHub at <https://github.com/dustin/pagerduty-hs#readme>
 category:       API
@@ -28,6 +28,7 @@
 library
   exposed-modules:
       Network.API.PagerDuty.EventV1
+      Network.API.PagerDuty.EventV1Lenses
   other-modules:
       Paths_pagerduty_hs
   hs-source-dirs:
diff --git a/src/Network/API/PagerDuty/EventV1.hs b/src/Network/API/PagerDuty/EventV1.hs
--- a/src/Network/API/PagerDuty/EventV1.hs
+++ b/src/Network/API/PagerDuty/EventV1.hs
@@ -8,7 +8,6 @@
 
 PagerDuty Event V1 interface.
 -}
-{-# LANGUAGE TemplateHaskell #-}
 
 module Network.API.PagerDuty.EventV1 (
   -- * Triggering an Event
@@ -17,15 +16,10 @@
   -- * Updating an Event
   UpdateEvent(..), UpdateEvent', UpdateType(..),
   -- * Delivering Events to PagerDuty
-  deliver, Response(..),
-  -- * Lenses and Prisms
-  _Link, _Image,
-  teServiceKey, teIncidentKey, teDescription, teDetails, teClient, teClientURL, teContexts,
-  _Acknowledge, _Resolve,
-  updateType, updateServiceKey, updateIncidentKey, updateDescription, updateDetails
+  deliver, Response(..)
   ) where
 
-import           Control.Lens           (makeLenses, makePrisms, view)
+import           Control.Lens           (view)
 import           Control.Monad.Catch    (MonadCatch (..), SomeException (..), catch)
 import           Control.Monad.IO.Class (MonadIO (..))
 import           Data.Aeson             (FromJSON (..), ToJSON (..), Value (..), encode, object, (.:), (.=))
@@ -43,8 +37,6 @@
              | Image Text (Maybe Text) (Maybe Text) -- ^ Image URL, optional link ref, and optional alt text.
   deriving (Show, Eq)
 
-makePrisms ''Context
-
 optj :: ToJSON v => [(Text, Maybe v)] -> [Pair]
 optj = mapMaybe (fmap (uncurry (.=)) . sequenceA)
 
@@ -67,8 +59,6 @@
   }
   deriving (Show, Eq)
 
-makeLenses ''TriggerEvent
-
 instance ToJSON a => EventRequest (TriggerEvent a)
 
 -- | A 'TriggerEvent' type that doesn't have details.
@@ -91,8 +81,6 @@
 -- | An event update will either acknowledge or resolve an incident.
 data UpdateType = Acknowledge | Resolve deriving (Show, Eq, Bounded, Enum)
 
-makePrisms ''UpdateType
-
 -- | UpdateEvent is the message for both acknowledging and resolving
 -- incidents.  This may be delivered using the 'deliver' function.
 data UpdateEvent a = UpdateEvent {
@@ -103,8 +91,6 @@
   , _updateDetails     :: Maybe a
   }
   deriving (Show, Eq)
-
-makeLenses ''UpdateEvent
 
 instance ToJSON a => EventRequest (UpdateEvent a)
 
diff --git a/src/Network/API/PagerDuty/EventV1Lenses.hs b/src/Network/API/PagerDuty/EventV1Lenses.hs
new file mode 100644
--- /dev/null
+++ b/src/Network/API/PagerDuty/EventV1Lenses.hs
@@ -0,0 +1,29 @@
+{-|
+Module      : Network.API.PagerDuty.EventV1Lenses
+Description : Lenses and prisms for the PagerDuty Event V1 interface.
+Copyright   : (c) Dustin Sallings, 2021
+License     : BSD3
+Maintainer  : dustin@spy.net
+Stability   : experimental
+
+Lenses and prisms for the PagerDuty Event V1 interface.
+-}
+{-# LANGUAGE TemplateHaskell #-}
+
+module Network.API.PagerDuty.EventV1Lenses (
+  _Link, _Image,
+  teServiceKey, teIncidentKey, teDescription, teDetails, teClient, teClientURL, teContexts,
+  _Acknowledge, _Resolve,
+  updateType, updateServiceKey, updateIncidentKey, updateDescription, updateDetails
+  ) where
+
+import           Control.Lens                  (makeLenses, makePrisms)
+import           Network.API.PagerDuty.EventV1
+
+makePrisms ''Context
+
+makeLenses ''TriggerEvent
+
+makePrisms ''UpdateType
+
+makeLenses ''UpdateEvent
