Index: bin/stamp2json
===================================================================
--- bin/stamp2json	(revision 11)
+++ bin/stamp2json	(revision 11)
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+
+import json
+from argparse import ArgumentParser
+from os.path import expanduser
+
+
+def args_cmd():
+    """Parse the command line arguments via argparse"""
+    parser = ArgumentParser(description='Convert tool from txt to json format')
+    parser.add_argument(
+        '--input', '-i', default=expanduser('~/.workstamps.txt'),
+        help='Input filename (default ~/.workstamps.txt')
+    parser.add_argument(
+        '--output', '-o', default=expanduser('~/.workstamps.json'),
+        help='Input filename (default: ~/.workstamps.json)')
+    return parser.parse_args()
+
+
+def itemify(line):
+    """Split a line, returning date and the rest of data"""
+    line = line.strip()
+    end_time = line[:16]
+    info = line[17:]
+    return(line[:16], line[17:])
+
+
+if __name__ == '__main__':
+    args = args_cmd()
+
+    stamps = []
+
+    with open(args.input, 'r') as infile:
+
+        for line in infile:
+            time, info = itemify(line)
+
+            if info == 'start':
+                customer = None
+                action = None
+                start_time = time
+                end_time = None
+
+            elif time == 'restarttotals':
+                continue
+
+            else:
+                customer = info.split(' ', 1)[0]
+                action = info.split(' ', 1)[1].lstrip('- ')
+                end_time = time
+
+            stamps.append({
+                'start': start_time,
+                'end': end_time,
+                'customer': customer,
+                'action': action,
+            })
+    with open(args.output, 'w') as stamps_file:
+        json.dump(stamps, stamps_file, indent=4)
