diff --git a/test/fuzz/CMakeLists.txt b/test/fuzz/CMakeLists.txt
index f32bbe91eeab0eede3039d4e52aaa64a5882f650..1900d669ce9569f7d1003e1b76170779c64d18ce 100644
--- a/test/fuzz/CMakeLists.txt
+++ b/test/fuzz/CMakeLists.txt
@@ -44,7 +44,15 @@ target_link_libraries(swim_proto_member_fuzzer PUBLIC swim fuzzer_config)
 add_executable(swim_proto_meta_fuzzer swim_proto_meta_fuzzer.c)
 target_link_libraries(swim_proto_meta_fuzzer PUBLIC swim fuzzer_config)
 
+add_executable(datetime_parse_full_fuzzer datetime_parse_full_fuzzer.c)
+target_link_libraries(datetime_parse_full_fuzzer PUBLIC core fuzzer_config)
+
+add_executable(datetime_strptime_fuzzer datetime_strptime_fuzzer.c)
+target_link_libraries(datetime_strptime_fuzzer PUBLIC core fuzzer_config)
+
 set(fuzzing_binaries csv_fuzzer
+                     datetime_parse_full_fuzzer
+                     datetime_strptime_fuzzer
                      http_parser_fuzzer
                      swim_proto_member_fuzzer
                      swim_proto_meta_fuzzer
diff --git a/test/fuzz/datetime_parse_full_fuzzer.c b/test/fuzz/datetime_parse_full_fuzzer.c
new file mode 100644
index 0000000000000000000000000000000000000000..1cd0a3b173852ed264792b947acd517b09acd374
--- /dev/null
+++ b/test/fuzz/datetime_parse_full_fuzzer.c
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+#include <string.h>
+#include "datetime.h"
+#include "trivia/util.h"
+
+int
+LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+	char *buf = xcalloc(size + 1, sizeof(char));
+	if (buf == NULL)
+		return 0;
+	memcpy(buf, data, size);
+	buf[size] = '\0';
+	struct datetime date_expected;
+	datetime_parse_full(&date_expected, buf, size, 0);
+	free(buf);
+
+	return 0;
+}
diff --git a/test/fuzz/datetime_strptime_fuzzer.c b/test/fuzz/datetime_strptime_fuzzer.c
new file mode 100644
index 0000000000000000000000000000000000000000..bccdf0fdc3f3b9ba9d7d4b1e8a221211ed9196e2
--- /dev/null
+++ b/test/fuzz/datetime_strptime_fuzzer.c
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+#include <string.h>
+#include "datetime.h"
+#include "trivia/util.h"
+
+int
+LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+	char *buf = xcalloc(size + 1, sizeof(char));
+	if (buf == NULL)
+		return 0;
+	memcpy(buf, data, size);
+	buf[size] = '\0';
+	struct datetime date_expected;
+	datetime_strptime(&date_expected, buf, "iso8601");
+	free(buf);
+
+	return 0;
+}