1. Who we are and how to reach us
The controller for the Shiftplaner app and this website is:
GKM Interactive GmbH
Wasserstraße 5, 37186 Moringen, Germany
Email: [email protected]
We have not appointed a data protection officer because we are not required to. Please send every privacy question to the address above.
2. At a glance
- Without an account, your plan stays on your phone. Shifts, jobs, rotations, appointments, alarms and your profile are stored on the device only. We never receive them.
- An account is optional. You need one only for cloud sync, shared calendars and the roster scan.
- Photos you scan are not stored. They are read by an AI model and discarded right away.
- No advertising, no tracking, no analytics SDKs. We do not sell or share your data for advertising.
- This website sets no cookies and loads nothing from third parties.
3. Using the app without an account
Everything you enter (jobs, shift types, shifts, rotations, appointments, alarms, and the profile details you choose to give such as your name, industry, pay and working hours) is stored in the app’s private storage on your device. It does not leave the device unless you sign in and use sync (section 5).
Your phone’s operating system may include the app’s data in its own device backup (iCloud Backup on iOS, Google’s Android backup on Android) if you have turned that on. Apple or Google provide that backup to you under their terms; we have no access to it.
Deleting the app deletes this data. Signing out of an account also deletes the local copy after pending changes have been uploaded.
3.1 Device permissions
The app asks for a permission only when you use the feature that needs it. You can refuse or withdraw any of them in your phone’s settings; the rest of the app keeps working.
| Permission | Why |
|---|---|
| Alarms (AlarmKit on iOS, exact alarms on Android) and notifications | To ring your shift alarms on time and to remind you before a free trial ends. |
| Calendar | To write your shifts into a separate “Shiftplaner” calendar on your device, if you turn on calendar export. The app does not read your other calendars. |
| Camera | To photograph a paper roster for the scan (section 6). You can also pick an existing photo instead. |
Alarms and reminders are scheduled locally on your device. The legal basis for accessing your device is § 25 Abs. 2 Nr. 2 TDDDG (strictly necessary for the function you requested).
4. Your account
To create an account you give us your email address and a password, or sign in with a provider offered on the sign-in screen. Our sign-in provider Clerk (section 9) stores your email address, a hash of your password, your session and technical data needed to keep the sign-in secure (such as IP address and device type). Our server stores your account ID and whether you have an active Pro subscription.
Legal basis: Art. 6(1)(b) GDPR (performance of the contract you entered into by creating the account).
5. Sync and shared calendars
When you are signed in and sync is active, the app uploads the data described in section 3 to our server, so that you can use it on several devices. It is stored in a database operated for us by Google Cloud in Frankfurt, Germany.
If you create a shared calendar and invite people with an invitation link, the members of that calendar can see and edit the entries in it. If you join someone else’s calendar, its owner and members can see what you add to it. Invitation links expire after seven days.
Legal basis: Art. 6(1)(b) GDPR.
6. Roster scan
When you scan a roster, the app sends the photo (re-encoded and stripped of metadata such as location), the month you are scanning, your app language and the name in your profile to our server. The name is used to find your row in a roster that lists several people. Our server forwards this to Cloudflare Workers AI (section 9), which reads the shifts and returns them as text. You check the result before anything is saved.
The photo is processed in memory and not stored, either by us or for us. We keep only technical data about each scan (time, status, model used, number of entries found, processing time) to run and limit the service.
A roster may show your colleagues’ names and shifts. We process those only as far as is unavoidable to extract your own shifts, and discard them with the photo. Please only photograph rosters you are allowed to use.
Legal basis: Art. 6(1)(b) GDPR for your data; Art. 6(1)(f) GDPR for incidental data of third parties shown on the roster, our legitimate interest being to provide the scan you requested.
7. Purchases and Shiftplaner Pro
Pro is sold through the App Store or Google Play. Apple or Google process the payment; we receive no payment details. To unlock Pro on all your devices we use RevenueCat (section 9), which receives your account ID, the purchase receipt from the store and technical data about your device and app version, and tells our server whether your subscription is active.
Legal basis: Art. 6(1)(b) GDPR.
8. This website and our servers
This website is hosted by Cloudflare. When you open it, Cloudflare processes your IP address and the usual request data (time, page, browser) to deliver the page and protect it against attacks. The site sets no cookies, uses no analytics and loads no external fonts or scripts.
Our API server records errors with Sentry (section 9). Error reports contain technical data only; we have configured it so that request bodies, access tokens and personal data are not sent.
Legal basis: Art. 6(1)(f) GDPR, our legitimate interest in operating a secure and working service.
9. Who receives data
We use the following service providers. They process data on our behalf under a data processing agreement (Art. 28 GDPR), except Apple and Google as app stores, which act as independent controllers.
| Provider | Purpose | Location |
|---|---|---|
| Google Cloud (Google Cloud EMEA Ltd., Ireland) | Server and database for accounts, sync and shared calendars | Frankfurt, Germany |
| Clerk, Inc. (USA) | Sign-in and account management | USA |
| Cloudflare, Inc. (USA) | AI roster scan (Workers AI), website hosting, protection of our servers | Global network |
| RevenueCat, Inc. (USA) | Managing Pro subscriptions | USA |
| Functional Software, Inc. (Sentry, USA) | Server error monitoring | USA / EU |
| Apple Inc. / Google LLC | App distribution and in-app purchases | Under their own privacy policies |
Where data is transferred to a country outside the EU/EEA, we rely on the EU-U.S. Data Privacy Framework where the recipient is certified under it, and otherwise on the EU Standard Contractual Clauses (Art. 46(2)(c) GDPR).
10. How long we keep data
- On your device: until you delete it, sign out or delete the app.
- Account, synced data and shared calendars: until you delete your account. Calendars you own are deleted for all members; entries you added to other people’s calendars stay there without your name attached.
- Scan photos: not stored. Scan metadata: until you delete your account.
- Subscription status: until you delete your account. Apple, Google and RevenueCat keep purchase records under their own retention rules and statutory duties.
- Website request logs and error reports: for a short period only, unless needed to investigate a specific attack.
You can delete your account at any time in the app’s account settings. This deletes your data on our server and your account with our sign-in provider.
11. Your rights
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). Write to [email protected].
You also have the right to lodge a complaint with a supervisory authority. The authority responsible for us is:
Die Landesbeauftragte für den Datenschutz Niedersachsen
Prinzenstraße 5, 30159 Hannover, Germany
https://www.lfd.niedersachsen.de
12. Children
Shiftplaner is made for working people and is not directed at children. You must be at least 16 to create an account.
13. Changes
We update this policy when the app or the law changes. The date at the top shows the current version. If a change significantly affects how we use data you have already given us, we will tell you in the app.