Index: stamper/stamper.py
===================================================================
--- stamper/stamper.py	(revision 43)
+++ stamper/stamper.py	(revision 52)
@@ -9,4 +9,6 @@
 import pygal
 
+from http import HTTPClient
+
 
 STAMPS_FILE = os.path.expanduser('~/.workstamps.json')
@@ -17,4 +19,8 @@
 HOURS_DAY = 8
 SECS_DAY = HOURS_DAY * 60 * 60
+REMOTE_BASE_URL = 'https://localhost'
+REMOTE_PUSH_URL = '/stamper/listen/'  # IMPORTANT: keep the trailing /
+REMOTE_USER = None
+REMOTE_PASSWORD = None
 
 
@@ -427,2 +433,24 @@
         print('[warning] ' + str(len(stamps)) + ' stamps merged')
         print('[warning] remember to review the resulting stamps file')
+
+    def push_stamps(self, customer=None, filter_from=None, filter_to=None):
+        stamps = []
+        for stamp in self.stamps:
+            if stamp['customer']:
+                if customer and customer != stamp['customer']:
+                    continue
+                start = datetime.strptime(stamp['start'], DATETIME_FORMAT)
+                start_day = start.strftime('%Y-%m-%d')
+                end = datetime.strptime(stamp['end'], DATETIME_FORMAT)
+                if filter_from and start < filter_from:
+                    # if there is a filter setting a starting date for the
+                    # report and the current stamp is from an earlier date, do
+                    # not add it to the totals
+                    continue
+                if filter_to and start > filter_to:
+                    # similar for the end date
+                    continue
+                stamps.append(stamp)
+        stamps = json.dumps(stamps, indent=4)
+        http_client = HTTPClient(REMOTE_BASE_URL, REMOTE_USER, REMOTE_PASSWORD)
+        http_client.post(REMOTE_PUSH_URL, {'stamps': stamps})
