diff --git a/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
index aba0b6fc0dc2c2db6bade86c4e53d10db79ec0c5..e5b7da5d664494412ee3428c46842f8ecfd4d0c0 100644
--- a/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -348,17 +348,30 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr ""
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -389,7 +402,7 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr ""
 
@@ -561,7 +574,7 @@ msgstr ""
 msgid "Checked in at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr ""
 
@@ -577,7 +590,7 @@ msgstr ""
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr ""
 
@@ -585,6 +598,30 @@ msgstr ""
 msgid "Event registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/models.py:412
+msgid "Related event"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:413
+msgid "Checked person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:414
+msgid "Checked by person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr ""
@@ -688,52 +725,58 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+msgid "Checkpoint"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -949,7 +992,7 @@ msgid "Billing information"
 msgstr ""
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr ""
 
@@ -1188,140 +1231,148 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+msgid "{} successfully checked for {}."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr ""
diff --git a/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
index 9ce38c69eb0d33b46c5022cc98a84753dad77758..939c8f0ec283e99bbda8aea58ed743ba90cdbad6 100644
--- a/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: 2022-06-24 15:05+0000\n"
 "Last-Translator: Tom Teichler <tom.teichler@teckids.org>\n"
-"Language-Team: German <https://translate.edugit.org/projects/hacknfun/"
-"aleksis-app-paweljong/de/>\n"
+"Language-Team: German <https://translate.edugit.org/projects/hacknfun/aleksis-app-paweljong/de/>\n"
 "Language: de_DE\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -25,9 +24,7 @@ msgstr "Teilnehmer syncronisieren"
 
 #: aleksis/apps/paweljong/data_checks.py:19
 msgid "Ensure that all registered persons are member of the linked group"
-msgstr ""
-"Stelle sicher, dass alle registrierten Personen auch Mitglied der verlinkten "
-"Gruppe sind"
+msgstr "Stelle sicher, dass alle registrierten Personen auch Mitglied der verlinkten Gruppe sind"
 
 #: aleksis/apps/paweljong/data_checks.py:20
 msgid "Event members are out of sync with registrations!"
@@ -71,9 +68,7 @@ msgstr "Creative Commons mit Namensnennung 4.0 International (CC BY 4.0) oder ne
 
 #: aleksis/apps/paweljong/forms.py:34
 msgid "Creative Commons with attribution and distribution only under the same conditions, 4.0 or later"
-msgstr ""
-"Creative Commons mit Namensnennung und Weitergabe unter gleichen "
-"Bedingungen, 4.0 oder später"
+msgstr "Creative Commons mit Namensnennung und Weitergabe unter gleichen Bedingungen, 4.0 oder später"
 
 #: aleksis/apps/paweljong/forms.py:46 aleksis/apps/paweljong/forms.py:436
 msgid "Base data"
@@ -353,17 +348,30 @@ msgstr "Kontodaten"
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr "Der Benutzername darf nur Kleinbuchstaben und Zahlen beinhalten, und muss mit einem Buchstaben beginnen."
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr "Person"
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr "Bitte wähle einen Benutzernamen."
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -394,7 +402,7 @@ msgstr "Teilnehmerlisten generieren"
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr "Anstehende Veranstaltungen"
 
@@ -566,7 +574,7 @@ msgstr "Eingechecked"
 msgid "Checked in at"
 msgstr "Eingechecked am"
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr "Person ist bereits eingechecked!"
 
@@ -582,7 +590,7 @@ msgstr "Social-Sponsoring / Spende"
 msgid "Voucher / Granted discount"
 msgstr "Rabatt"
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr "Veranstaltungsanmeldung"
 
@@ -590,6 +598,36 @@ msgstr "Veranstaltungsanmeldung"
 msgid "Event registrations"
 msgstr "Veranstaltungsanmeldungen"
 
+#: aleksis/apps/paweljong/models.py:412
+#, fuzzy
+#| msgid "Create event"
+msgid "Related event"
+msgstr "Veranstaltung erstellen"
+
+#: aleksis/apps/paweljong/models.py:413
+#, fuzzy
+#| msgid "Checked in"
+msgid "Checked person"
+msgstr "Eingechecked"
+
+#: aleksis/apps/paweljong/models.py:414
+#, fuzzy
+#| msgid "Checked in"
+msgid "Checked by person"
+msgstr "Eingechecked"
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr "Paweljong"
@@ -693,52 +731,60 @@ msgstr "Vorheriger Schritt"
 msgid "Next"
 msgstr "Weiter"
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+#, fuzzy
+#| msgid "Check in"
+msgid "Checkpoint"
+msgstr "Einchecken"
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr "Veranstaltung erstellen"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr "Anmeldung möglich bis"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr "Teilnahmegebühr (alles inklusive)"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr "von"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr "Besitzer"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr "Zusätzliche Felder"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr "Kind-Gruppen"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr "Anmeldungen"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr "Suche"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -997,7 +1043,7 @@ msgid "Billing information"
 msgstr "Zahlungsinformationen"
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr "Bezahlung"
 
@@ -1254,141 +1300,151 @@ msgstr "Zusätzliches"
 msgid "New registration: %(registration)s"
 msgstr "Neue Anmeldung: %(registration)s"
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr "Die Veranstaltung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr "Die Veranstaltungsanmeldung wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr "Die Veranstaltungsanmeldung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr "Die Anmeldung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr "Die Veranstaltung wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr "Der Gutschein wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr "Der Gutschein wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr "Der Gutschein wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr "E-Mail-Adresse erstellen"
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr "Alle Teilnehmenden brauchen eine persönliche Adresse, die sie selbst abrufen und lesen. Wir bieten die Möglichkeit an, E-Mail-Adressen auf unseren sicheren Servern zu registrieren. Informationen, wie Du deine Mails abrufen kannst, findest Du unter <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr "Zuerst, gib bitte einige Informationen über dich an und prüfe, dass alle Informationen korrekt sind."
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr "Kontaktinformationen"
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr "Teile uns mit, wie wir dich erreichen können. Du wirst Informationen zu der Veranstaltung per E-Mail erhalten. Bitte nutze deine persönliche E-Mail-Adresse, die selbst liest, nicht die E-Mail-Adresse deiner Eltern. Wir senden wichtige Informationen immer zusätzlich an deine Eltern. Ihre E-Mail-Adresse wirst du im nächsten Schritt eingeben."
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr "Erziehungsberechtigte / Eltern"
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr "Teile uns mit, wie wir deine Eltern oder Erziehungsberechtigten während der Veranstaltung erreichen können. Das sollte eine Person sein, die während der Anmeldung (also jetzt gerade), bei Dir ist. Wenn du einen weiteren Erziehungsberechtigten angeben möchtest, kannst du uns das später als Kommentar mitteilen."
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr "Zusätzliche Anmeldungsinformationen"
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr "Bitte beantworte die folgenden Fragen so genau wie möglich, sodass wir sicher gehen können, dass deine Teilnahme bei der Veranstaltung so gut wie möglich organisiert ist."
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr "Bitte wählen mit Deinen Eltern, wie Du bezahlen möchtest. In diesem Schritt wird nur die Zahlungsmethode ausgewählt. Die eigentliche Zahlung wird in einem separaten Schritt nach der Anmeldung durchgeführt."
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr "Einverständnis"
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr "Zuletzt lies bitte alle Bedingungen sorgfältig zusammen mit deinen Eltern durch. Danach musst du bestätigen, dass du und deine Eltern alles gelesen habt und akzeptiert."
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr "Du hast einen ungütigen Gutscheincode eingegeben!"
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr "Du hast dich erfolgreich zu der Veranstaltung angemeldet. Bitte gib uns ein paar Tage, um deine Anmeldung zu bearbeiten. Du wirst dann eine E-Mail von uns bekommen."
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr "Du hast dich zu einer Veranstaltung angemeldet"
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr "Du hast dich zur Veranstaltung %s angemeldet"
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr "Die Bedingung wurde erfolgreich erstellt."
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr "Die Bedingung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr "Ankündigungs-Feed aller bevorstehenden Veranstaltungen"
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr "Das Info-Mailing wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr "Das Info-Mailing wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr "Das Info-Mailing wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr "Anmeldung erfolgreich storniert."
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr "Person {person} erfolgreich hinzugefügt!"
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr "Person existiert nicht!"
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+#, fuzzy
+#| msgid "Successfully checked in."
+msgid "{} successfully checked for {}."
+msgstr "Erfolgreich eingechecked."
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr "Erfolgreich eingechecked."
 
diff --git a/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
index c1b24f14efa2da08da543ff6e3955b687c39b62c..d7dabf1303da15787fa5f35e5227f798633111de 100644
--- a/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -348,17 +348,30 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr ""
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -389,7 +402,7 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr ""
 
@@ -561,7 +574,7 @@ msgstr ""
 msgid "Checked in at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr ""
 
@@ -577,7 +590,7 @@ msgstr ""
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr ""
 
@@ -585,6 +598,30 @@ msgstr ""
 msgid "Event registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/models.py:412
+msgid "Related event"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:413
+msgid "Checked person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:414
+msgid "Checked by person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr ""
@@ -688,52 +725,58 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+msgid "Checkpoint"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -949,7 +992,7 @@ msgid "Billing information"
 msgstr ""
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr ""
 
@@ -1188,140 +1231,148 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+msgid "{} successfully checked for {}."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr ""
diff --git a/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
index 2261c449f53078db28080b0e0e49ea7caba8a436..c3a432902e41a4e6acb6639b74724149dc569645 100644
--- a/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -347,17 +347,30 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr ""
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -388,7 +401,7 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr ""
 
@@ -560,7 +573,7 @@ msgstr ""
 msgid "Checked in at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr ""
 
@@ -576,7 +589,7 @@ msgstr ""
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr ""
 
@@ -584,6 +597,30 @@ msgstr ""
 msgid "Event registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/models.py:412
+msgid "Related event"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:413
+msgid "Checked person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:414
+msgid "Checked by person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr ""
@@ -687,52 +724,58 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+msgid "Checkpoint"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -948,7 +991,7 @@ msgid "Billing information"
 msgstr ""
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr ""
 
@@ -1187,140 +1230,148 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+msgid "{} successfully checked for {}."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr ""
diff --git a/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
index 2261c449f53078db28080b0e0e49ea7caba8a436..c3a432902e41a4e6acb6639b74724149dc569645 100644
--- a/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -347,17 +347,30 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr ""
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -388,7 +401,7 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr ""
 
@@ -560,7 +573,7 @@ msgstr ""
 msgid "Checked in at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr ""
 
@@ -576,7 +589,7 @@ msgstr ""
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr ""
 
@@ -584,6 +597,30 @@ msgstr ""
 msgid "Event registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/models.py:412
+msgid "Related event"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:413
+msgid "Checked person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:414
+msgid "Checked by person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr ""
@@ -687,52 +724,58 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+msgid "Checkpoint"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -948,7 +991,7 @@ msgid "Billing information"
 msgstr ""
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr ""
 
@@ -1187,140 +1230,148 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+msgid "{} successfully checked for {}."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr ""
diff --git a/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
index 2261c449f53078db28080b0e0e49ea7caba8a436..c3a432902e41a4e6acb6639b74724149dc569645 100644
--- a/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-24 14:54+0000\n"
+"POT-Creation-Date: 2022-06-28 15:44+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -347,17 +347,30 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
-#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:502 aleksis/apps/paweljong/forms.py:524
+#: aleksis/apps/paweljong/models.py:228 aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:502
+#: aleksis/apps/paweljong/forms.py:504 aleksis/apps/paweljong/forms.py:525
 msgid "Please enter a username."
 msgstr ""
 
+#: aleksis/apps/paweljong/forms.py:518 aleksis/apps/paweljong/models.py:417
+msgid "Comment"
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:519
+msgid "Please enter a comment describing the checkpoint (e.g. Dinner)."
+msgstr ""
+
+#: aleksis/apps/paweljong/forms.py:531
+msgid "Submit geolocation"
+msgstr ""
+
 #: aleksis/apps/paweljong/menus.py:6
 #: aleksis/apps/paweljong/templates/paweljong/register_start.html:4
 msgid "Register"
@@ -388,7 +401,7 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:748
 msgid "Upcoming events"
 msgstr ""
 
@@ -560,7 +573,7 @@ msgstr ""
 msgid "Checked in at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:1034
 msgid "Person is already checked in!"
 msgstr ""
 
@@ -576,7 +589,7 @@ msgstr ""
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:392
 msgid "Event registration"
 msgstr ""
 
@@ -584,6 +597,30 @@ msgstr ""
 msgid "Event registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/models.py:412
+msgid "Related event"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:413
+msgid "Checked person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:414
+msgid "Checked by person"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:419
+msgid "Date and time of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:420
+msgid "Latitude of check"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:421
+msgid "Longitude of check"
+msgstr ""
+
 #: aleksis/apps/paweljong/preferences.py:10
 msgid "Paweljong"
 msgstr ""
@@ -687,52 +724,58 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:4
+#: aleksis/apps/paweljong/templates/paweljong/event/checkpoint.html:5
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:30
+msgid "Checkpoint"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/create.html:5
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:20
 msgid "Create event"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:43
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:47
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:31
 msgid "Registration open until"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:48
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:52
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:36
 msgid "Participation fee (all inclusive)"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:54
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:42
 msgid "of"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:58
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:62
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:17
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:45
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:84
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:89
 msgid "Registrations"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
 msgid "Search"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:96
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
 msgid "Clear"
@@ -948,7 +991,7 @@ msgid "Billing information"
 msgstr ""
 
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:421
 msgid "Payment"
 msgstr ""
 
@@ -1187,140 +1230,148 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
+#: aleksis/apps/paweljong/views.py:68 aleksis/apps/paweljong/views.py:80
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:150
+#: aleksis/apps/paweljong/views.py:152
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:162
+#: aleksis/apps/paweljong/views.py:164
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:183
+#: aleksis/apps/paweljong/views.py:185
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:228
+#: aleksis/apps/paweljong/views.py:230
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:240
+#: aleksis/apps/paweljong/views.py:242
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:252
+#: aleksis/apps/paweljong/views.py:254
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:262
+#: aleksis/apps/paweljong/views.py:264
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/views.py:383
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:385
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:392
+#: aleksis/apps/paweljong/views.py:394
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:398
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:400
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:405
+#: aleksis/apps/paweljong/views.py:407
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:407
+#: aleksis/apps/paweljong/views.py:409
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:413
+#: aleksis/apps/paweljong/views.py:415
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:415
+#: aleksis/apps/paweljong/views.py:417
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:421
+#: aleksis/apps/paweljong/views.py:423
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:426
+#: aleksis/apps/paweljong/views.py:428
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:428
+#: aleksis/apps/paweljong/views.py:430
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
+#: aleksis/apps/paweljong/views.py:528 aleksis/apps/paweljong/views.py:638
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:662
+#: aleksis/apps/paweljong/views.py:664
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:669
+#: aleksis/apps/paweljong/views.py:671
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:670
+#: aleksis/apps/paweljong/views.py:672
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
+#: aleksis/apps/paweljong/views.py:729 aleksis/apps/paweljong/views.py:880
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
+#: aleksis/apps/paweljong/views.py:741 aleksis/apps/paweljong/views.py:892
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:755
+#: aleksis/apps/paweljong/views.py:757
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:796
+#: aleksis/apps/paweljong/views.py:798
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:808
+#: aleksis/apps/paweljong/views.py:810
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:818
+#: aleksis/apps/paweljong/views.py:820
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:901
+#: aleksis/apps/paweljong/views.py:906
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:959
+#: aleksis/apps/paweljong/views.py:964
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:961
+#: aleksis/apps/paweljong/views.py:966
 msgid "Person does not exist!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:987
+#: aleksis/apps/paweljong/views.py:993
+msgid "The provided username is not linked to a person."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1003
+msgid "{} successfully checked for {}."
+msgstr ""
+
+#: aleksis/apps/paweljong/views.py:1032
 msgid "Successfully checked in."
 msgstr ""
diff --git a/pyproject.toml b/pyproject.toml
index d135e5bc70036f8ccad271d9df385c398bc5e01f..88a923bbb0fa35e1f0644c3ca428eb5f624836cb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-App-Paweljong"
-version = "1.8"
+version = "1.9"
 packages = [
     { include = "aleksis" }
 ]