diff --git a/src/events/table.js b/src/events/table.js
index 8e49de91f5dcd9100cc846d3002a5b5a4c410b36..14569afb23595d597c80e403fbacb20e97e06bdd 100644
--- a/src/events/table.js
+++ b/src/events/table.js
@@ -25,6 +25,7 @@ export default class EventTable {
   }
 
   view() {
+    const now = new Date();
     return m(TableView, {
       controller: this.ctrl,
       keys: config.tableKeys,
@@ -34,6 +35,13 @@ export default class EventTable {
         { text: 'Start', width: '9em' },
         { text: 'End', width: '9em' },
       ],
+      filters: [[{
+        name: 'upcoming',
+        query: { time_start: { $gte: `${now.toISOString().slice(0, -5)}Z` } },
+      }, {
+        name: 'past',
+        query: { time_start: { $lt: `${now.toISOString().slice(0, -5)}Z` } },
+      }]],
       onAdd: () => { m.route.set('/newevent'); },
     });
   }
diff --git a/src/users/userTool.js b/src/users/userTool.js
index 903f1da4f40c34f129d5b5aeecbd5a5d54a78182..97ee5c025381b758eec8e5c5f4b2d34932253c96 100644
--- a/src/users/userTool.js
+++ b/src/users/userTool.js
@@ -28,6 +28,15 @@ export class UserTable {
       controller: this.ctrl,
       keys: config.tableKeys,
       titles: config.tableKeys.map(key => config.keyDescriptors[key] || key),
+      filters: [[
+        { name: 'not members', query: { membership: 'none' } },
+        { name: 'regular members', query: { membership: 'regular' } },
+        { name: 'extraordinary members', query: { membership: 'extraordinary' } },
+        { name: 'honorary member', query: { membership: 'honorary' } },
+      ], [
+        { name: 'ITET', query: { department: 'itet' } },
+        { name: 'MAVT', query: { department: 'mavt' } },
+      ]],
       onAdd: () => { m.route.set('/newuser'); },
     });
   }