diff --git a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
index a5d97c3b4d0bf0979160d021a33605fe7a928bf8..6051251d0ea878658ccea5daf5efd0e7d421c364 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
@@ -26,8 +26,10 @@ import android.bluetooth.*
 import android.content.Context
 import android.util.Log
 import de.ccc.events.badge.card10.CARD10_BLUETOOTH_MAC_PREFIX
+import de.ccc.events.badge.card10.CARD10_SERVICE_UUID
 import de.ccc.events.badge.card10.R
 import de.ccc.events.badge.card10.filetransfer.LowEffortService
+import de.ccc.events.badge.card10.time.Card10Service
 import java.lang.IllegalStateException
 import java.lang.NullPointerException
 import java.util.*
@@ -37,6 +39,7 @@ private const val TAG = "ConnectionService"
 object ConnectionService {
     var device: BluetoothDevice? = null
     var leService: LowEffortService? = null
+    var card10Service: Card10Service? = null
     var mtu = 100
 
     private var connection: BluetoothGatt? = null
@@ -98,6 +101,8 @@ object ConnectionService {
 
                 if (service.uuid == fileServiceUuid) {
                     leService = LowEffortService(service)
+                } else if (service.uuid == CARD10_SERVICE_UUID) {
+                    card10Service = Card10Service(service)
                 }
             }
 
diff --git a/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt b/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt
new file mode 100644
index 0000000000000000000000000000000000000000..ea5aec8d45b6adc5358660285f355be5f8428a93
--- /dev/null
+++ b/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright by the original author or authors.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package de.ccc.events.badge.card10.time
+
+import android.bluetooth.BluetoothGattCharacteristic
+import android.bluetooth.BluetoothGattService
+import de.ccc.events.badge.card10.TIME_CHARACTERISTIC_UUID
+import de.ccc.events.badge.card10.common.ConnectionService
+import java.nio.ByteBuffer
+
+class Card10Service(
+    service: BluetoothGattService
+) {
+    private val timeCharacteristic: BluetoothGattCharacteristic
+
+    init {
+        timeCharacteristic = service.getCharacteristic(TIME_CHARACTERISTIC_UUID)
+        timeCharacteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
+    }
+
+    fun setTime() {
+        val buffer = ByteBuffer.allocate(8)
+        buffer.putLong(System.currentTimeMillis())
+        timeCharacteristic.value = buffer.array()
+        ConnectionService.writeCharacteristic(timeCharacteristic)
+    }
+}
\ No newline at end of file