diff --git a/scripts/to_week.pl b/scripts/to_week.pl
new file mode 100755
index 0000000..69b9935
--- /dev/null
+++ b/scripts/to_week.pl
@@ -0,0 +1,9 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Time::Piece;
+
+my $indata = $ARGV[0];
+my $date = Time::Piece->strptime($indata, '%Y-%m-%d');
+print $date->week;
+print "\n";
diff --git a/scripts/week b/scripts/week
new file mode 100755
index 0000000..8e09133
--- /dev/null
+++ b/scripts/week
@@ -0,0 +1,114 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright (c) 2024 - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+#
+# cve_update - Update all existing CVE entries based on the latest information
+#	       pulled from the git tree(s).
+#
+# Will look through the list of all published cve ids and run 'bippy' on them
+# to update the mbox and json files.  It is recommended that after this
+# happens, submit the json files to CVE again, if version numbers have changed.
+#
+# This is good to do after older stable kernels have been released as often
+# CVEs are included in older stable kernels AFTER they show up in newer ones,
+# and this keeps the database at CVE more up to date and friendly for others to
+# rely on.  The mbox files generally shouldn't be resent, as that's just noise
+# that no one wants to see.
+#
+# Usage:
+#	cve_update
+#
+# Requires:
+#  bippy
+
+# Colors are good!
+if [[ -t 1 ]]; then
+	txtred=$(tput setaf 1)		# Red
+	txtgrn=$(tput setaf 2)		# Green
+	txtblu=$(tput setaf 4)		# Blue
+	txtcyn=$(tput setaf 6)		# Cyan
+	txtrst=$(tput sgr0)		# Text reset
+else
+	txtred=""
+	txtgrn=""
+	txtblu=""
+	txtcyn=""
+	txtrst=""
+fi
+
+# Colors are good!
+txtred=$(tput setaf 1)		# Red
+txtgrn=$(tput setaf 2)		# Green
+txtblu=$(tput setaf 4)		# Blue
+txtcyn=$(tput setaf 6)		# Cyan
+txtrst=$(tput sgr0)		# Text reset
+
+# set where the tool was run from,
+# the name of our script,
+# and the git version of it
+DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
+SCRIPT=${0##*/}
+
+help() {
+	echo "${SCRIPT}"
+	echo "	Note, CVE_USER must be set to your CVE_USER email address"
+	exit 1
+}
+
+if [[ "${TMPDIR}" == "" ]]; then
+	echo "TMPDIR environment variable must be set, exiting ${SCRIPT}"
+	exit 1
+fi
+
+YEAR=$1
+
+# don't use unset variables
+set -o nounset
+
+cd "${DIR}"/../ || exit 1
+
+cve_to_week() {
+	local c=$1
+
+	cve=${c%.sha1}
+	sha=$(git log --oneline ${cve} | tail -n 1 | cut -f 1 -d ' ')
+	date=$(git show --pretty=format:%ai -s "${sha}" | cut -f 1 -d ' ')
+	week=$(scripts/to_week.pl "${date}")
+	#echo "sha=${sha} date=${date} week=${week}"
+	echo "${week}"
+
+
+}
+
+cve_year() {
+	local year=$1
+	local threads=$(nproc)
+
+	# get a count of ids for this year
+	count=$(ls cve/published/${year}/*.sha1 | wc -l)
+
+	echo "Counting ${txtcyn}${count}${txtrst} CVE ids for ${txtgrn}${year}${txtrst} with ${txtcyn}${threads}${txtrst} processes..."
+	for cve in cve/published/${year}/*.sha1 ; do
+		while :
+		do
+			if [[ $(jobs -p | wc -l) -lt ${threads} ]]; then
+				#echo "cve=${cve}"
+				cve_to_week "${cve}" &
+				# cve_to_week "${cve}" &
+				break
+			else
+				sleep 1
+			fi
+		done
+	done
+	wait
+}
+
+if [[ "${YEAR}" == "" ]]; then
+	echo "Must provide a year"
+	exit 1
+fi
+
+cve_year ${YEAR}
+exit 0
