diff --git a/gridded_glm/libexec/_minute_gridder.py b/gridded_glm/libexec/_minute_gridder.py
index 517afbeddeb425eef7d353f08080434af1363b44..ff36565572c4280fe108e2b65b383056abe56bee 100644
--- a/gridded_glm/libexec/_minute_gridder.py
+++ b/gridded_glm/libexec/_minute_gridder.py
@@ -118,6 +118,11 @@ def get_goes_position(filenames):
     # we require that all files are from the same sensor and raise an exception if not
     raise ValueError("could not determine GOES position - did you provide a mix of satellites?")
 
+def glm_filename_to_minute(glm_filename):
+    glminfo = parse_glm_filename(os.path.basename(glm_filename))
+    ftime = glminfo[3]
+    ftime = ftime.replace(second = 0, microsecond=0)
+    return ftime
 
 def get_start_end(filenames, start_time=None, end_time=None):
     """Compute start and end time of data based on filenames."""
@@ -342,14 +347,28 @@ if __name__ == '__main__':
     # clean our temporary dir on exit
     atexit.register(shutil.rmtree, tempdir_path)
 
-    # do the gridding
-    gridder, glm_filenames, start_time, end_time, grid_kwargs = grid_setup(args.filenames, args, work_dir=tempdir_path)
-    gridder_return = gridder(glm_filenames, start_time, end_time, **grid_kwargs)
+    minutes = []
+    for f in args.filenames:
+        m = glm_filename_to_minute(f)
+        if m not in minutes:
+            minutes.append(m)
 
     gridded_files = []
-    for subgrid in gridder_return:
-        for gridded_file in subgrid[1]:
-            gridded_files.append(gridded_file)
+    for m in minutes:
+        # grab all input files for this minute
+        minute_files = []
+        for f in args.filenames:
+            if glm_filename_to_minute(f) == m:
+                minute_files.append(f)
+        minute_files = sorted(minute_files)
+
+        # do the gridding
+        gridder, glm_filenames, start_time, end_time, grid_kwargs = grid_setup(minute_files, args, work_dir=tempdir_path)
+        gridder_return = gridder(glm_filenames, start_time, end_time, **grid_kwargs)
+
+        for subgrid in gridder_return:
+            for gridded_file in subgrid[1]:
+                gridded_files.append(gridded_file)
 
     # we need to add attributes here due to an issue where satpy (or its dependencies) are
     # holding the input gridded file open until the process exits