diff --git a/gracedb/events/buildVOEvent.py b/gracedb/events/buildVOEvent.py
index 95901b847dcd4ac2b6d399ac43249deae4b51741..171aad12ca3afa19c313602d62645e1d0d409285 100644
--- a/gracedb/events/buildVOEvent.py
+++ b/gracedb/events/buildVOEvent.py
@@ -33,6 +33,14 @@ import os
 class VOEventBuilderException(Exception):
     pass
 
+# Used to create the Packet_Type parameter block
+PACKET_TYPES = {
+    GraceDBVOEvent.VOEVENT_TYPE_PRELIMINARY: (150, 'LVC_PRELIMINARY'),
+    GraceDBVOEvent.VOEVENT_TYPE_INITIAL: (151, 'LVC_INITIAL'),
+    GraceDBVOEvent.VOEVENT_TYPE_UPDATE: (152, 'LVC_UPDATE'),
+    GraceDBVOEvent.VOEVENT_TYPE_RETRACTION: (153, 'LVC_RETRACTION'),
+}
+
 VOEVENT_TYPE_DICT = dict(GraceDBVOEvent.VOEVENT_TYPE_CHOICES)
 
 def get_voevent_type(short_name):
@@ -57,6 +65,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena
         raise VOEventBuilderException("voevent_type must be preliminary, initial, update, or retraction")
 
     # Let's convert that voevent_type to something nicer looking
+    default_voevent_type = voevent_type
     voevent_type = VOEVENT_TYPE_DICT[voevent_type]
 
     objid = event.graceid
@@ -143,10 +152,18 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena
     #
     # basically, a string that makes sense to humans about what units a value is. eg. "m/s"
 
+    # Add Packet_Type for GCNs
+    w.add_Param(Param(name="Packet_Type",
+        value=PACKET_TYPES[default_voevent_type][0], dataType="int",
+        Description=[("The Notice Type number is assigned/used within GCN, eg "
+        "type={typenum} is an {typedesc} notice").format(
+        typenum=PACKET_TYPES[default_voevent_type][0],
+        typedesc=PACKET_TYPES[default_voevent_type][1])]))
+
     # Whether the alert is internal or not
     w.add_Param(Param(name="internal", value=int(internal), dataType="int",
         Description=['Indicates whether this event should be distributed to LSC/Virgo members only']))
-    
+
     # The serial number
     w.add_Param(Param(name="Pkt_Ser_Num", value=serial_number))
 
diff --git a/gracedb/superevents/buildVOEvent.py b/gracedb/superevents/buildVOEvent.py
index 6d593030cc3b1ee74c1190f2c1310dcad78a4268..d416de9b40ee22099e008f2da6897bec225eea2e 100644
--- a/gracedb/superevents/buildVOEvent.py
+++ b/gracedb/superevents/buildVOEvent.py
@@ -36,6 +36,13 @@ VOEVENT_TYPE_DICT = dict(GraceDBVOEvent.VOEVENT_TYPE_CHOICES)
 class VOEventBuilderException(Exception):
     pass
 
+# Used to create the Packet_Type parameter block
+PACKET_TYPES = {
+    GraceDBVOEvent.VOEVENT_TYPE_PRELIMINARY: (150, 'LVC_PRELIMINARY'),
+    GraceDBVOEvent.VOEVENT_TYPE_INITIAL: (151, 'LVC_INITIAL'),
+    GraceDBVOEvent.VOEVENT_TYPE_UPDATE: (152, 'LVC_UPDATE'),
+    GraceDBVOEvent.VOEVENT_TYPE_RETRACTION: (153, 'LVC_RETRACTION'),
+}
 
 def get_voevent_type(short_name):
     for t in GraceDBVOEvent.VOEVENT_TYPE_CHOICES:
@@ -139,6 +146,14 @@ def construct_voevent_file(superevent, voevent, request=None,
     #
     # basically, a string that makes sense to humans about what units a value is. eg. "m/s"
 
+    # Add Packet_Type for GCNs
+    w.add_Param(Param(name="Packet_Type",
+        value=PACKET_TYPES[voevent.voevent_type][0], dataType="int",
+        Description=[("The Notice Type number is assigned/used within GCN, eg "
+        "type={typenum} is an {typedesc} notice").format(
+        typenum=PACKET_TYPES[voevent.voevent_type][0],
+        typedesc=PACKET_TYPES[voevent.voevent_type][1])]))
+
     # Whether the alert is internal or not
     w.add_Param(Param(name="internal", value=int(internal), dataType="int",
         Description=['Indicates whether this event should be distributed to LSC/Virgo members only']))