diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,10 @@
 The format is based on [Keep a Changelog][chg] and this project adheres to
 [Haskell's Package Versioning Policy][pvp]
 
+## 1.0.1 - 2023-12-15
+
+  - Add support for aeson 2.2.  Users can opt in by setting the `use-aeson-2-2` flag to `true`, which for many users will be set automatically.  In a future breaking change release, this flag will default to `true`.
+
 ## `1.0.0.1` - 2022-09-10
 
   - Support GHC 9.4 by eliminating compiler errors
diff --git a/hal.cabal b/hal.cabal
--- a/hal.cabal
+++ b/hal.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.5.
+-- This file has been generated from package.yaml by hpack version 0.34.7.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: ad8fc8a238617cbdd4eddfdc78fdd3504dbe32daee2ac49e5e853ae3f3860fa8
+-- hash: 135f92bc103710363cac34b23a95869b5a3cdf72e04a2e41652864d0d7559ff7
 
 name:           hal
-version:        1.0.0.1
+version:        1.0.1
 synopsis:       A runtime environment for Haskell applications running on AWS Lambda.
 description:    This library uniquely supports different types of AWS Lambda Handlers for your
                 needs/comfort with advanced Haskell. Instead of exposing a single function
@@ -29,6 +29,11 @@
   type: git
   location: https://github.com/Nike-inc/hal
 
+flag use-aeson-2-2
+  description: Required parsers are split out into a different package
+  manual: False
+  default: False
+
 library
   exposed-modules:
       AWS.Lambda.Combinators
@@ -71,8 +76,7 @@
       ScopedTypeVariables
   ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-partial-type-signatures -fno-warn-name-shadowing -fwarn-tabs -fwarn-unused-imports -fwarn-missing-signatures -fwarn-incomplete-patterns
   build-depends:
-      aeson
-    , base >=4.7 && <5
+      base >=4.7 && <5
     , base64-bytestring
     , bytestring
     , case-insensitive
@@ -89,6 +93,13 @@
     , time
     , unordered-containers
   default-language: Haskell2010
+  if flag(use-aeson-2-2)
+    build-depends:
+        aeson >=2.2.0.0 && <2.3.0.0
+      , attoparsec-aeson
+  else
+    build-depends:
+        aeson >=1.2.0.0 && <1.6 || >=2.0.0.0 && <2.2.0.0
 
 test-suite hal-test
   type: exitcode-stdio-1.0
@@ -131,14 +142,14 @@
       ScopedTypeVariables
   ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-partial-type-signatures -fno-warn-name-shadowing -fwarn-tabs -fwarn-unused-imports -fwarn-missing-signatures -fwarn-incomplete-patterns -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      aeson >=1.2.0.0 && <1.6 || >=2.0.0.0 && <2.2.0.0
+      aeson
     , base >=4.7 && <5
     , base64-bytestring
     , bytestring
     , case-insensitive
     , containers
     , hal
-    , hedgehog >=1.0.3 && <1.2
+    , hedgehog >=1.0.3 && <1.5
     , hspec
     , hspec-hedgehog
     , http-client
@@ -149,5 +160,5 @@
     , time
     , transformers
     , unordered-containers
-    , vector >=0.12.0.0 && <0.13
+    , vector >=0.12.0.0 && <0.14.0.0
   default-language: Haskell2010
diff --git a/src/AWS/Lambda/Events/Kafka.hs b/src/AWS/Lambda/Events/Kafka.hs
--- a/src/AWS/Lambda/Events/Kafka.hs
+++ b/src/AWS/Lambda/Events/Kafka.hs
@@ -253,7 +253,11 @@
       int64ToUTCTime <$> (toBoundedInteger stamp &
         maybe (fail "timestamp out of range") pure :: Parser Int64)
 
+#if MIN_VERSION_aeson(2,2,0)
+unparseTimestamp :: KeyValue e kv => Timestamp -> [kv]
+#else
 unparseTimestamp :: KeyValue kv => Timestamp -> [kv]
+#endif
 unparseTimestamp = \case
   NoTimestampType -> ["timestampType" .= String "NO_TIMESTAMP_TYPE"]
   CreateTime ts ->
