Clockula can now turn on a Do Not Disturb mode of its own at bedtime and off at the wake-up time, on the nights the user picks, with an optional reminder before it starts. Digital Wellbeing's Bedtime mode can't be driven by a third-party app, so this is a separate rule: a typed mode with grayscale, dimmed wallpaper, dark theme and hidden always-on display on Android 15+, and a plain DND schedule rule on Android 10-14. The rule's policy always allows alarms (and media). BedtimeEngine owns one AlarmManager slot of its own, on its own receiver and request code, and every bedtime call on the boot, time-change and launch paths runs after the alarm and timer passes, guarded. The rule id is never stored: the platform lists an app's own rules, so restores and reinstalls find or recreate it. Turning bedtime off removes the rule. The screen walks the user through granting DND access and explains the Wellbeing overlap. Settings are part of the JSON backup; older files restore bedtime as off. Refs #1
206 lines
8.8 KiB
Markdown
206 lines
8.8 KiB
Markdown
---
|
||
title: Privacy Policy — Clockula
|
||
description: What Clockula does with your data. It collects nothing, sends nothing, and has no internet permission at all.
|
||
updated: 2026-10-22
|
||
---
|
||
|
||
<!--
|
||
THIS FILE IS THE POLICY. Edit it here, in a PR, reviewed like any other
|
||
change. It is the source of truth.
|
||
|
||
It is published at https://jeanlucmakiola.de/clockula/privacy, which is the
|
||
address for the app's privacy-policy link and the Play Console field. That
|
||
page holds no copy of the prose: the website build checks this repository out
|
||
beside itself and renders this file through an Astro content collection, so
|
||
there is exactly one copy of the policy anywhere and the two cannot drift. An
|
||
edit here reaches the live page on the site's next build.
|
||
|
||
The page supplies its own <h1> from the `title` above, so this body starts at
|
||
the first section. Do not add one. This comment is HTML so that it cannot
|
||
render on the published page.
|
||
-->
|
||
|
||
**Last updated:** 22 October 2026
|
||
Applies to the Android app **Clockula** (package `de.jeanlucmakiola.clockula`),
|
||
all versions and all distribution channels.
|
||
|
||
## In short
|
||
|
||
Clockula collects nothing, sends nothing, and has no user accounts. It has no
|
||
internet permission, so it cannot transmit your data anywhere. Your alarms,
|
||
timers and world clocks are stored on your device and nowhere else.
|
||
|
||
## 1. Controller
|
||
|
||
IT-Dienstleister | Jean-Luc Makiola
|
||
Mahlerstraße 10
|
||
14772 Brandenburg an der Havel
|
||
Email: [support@jeanlucmakiola.de](mailto:support@jeanlucmakiola.de)
|
||
|
||
## 2. No data collection
|
||
|
||
Clockula contains no analytics, tracking, advertising, crash-reporting SDK or
|
||
third-party service of any kind. It creates no user profile and generates no
|
||
identifier, and it shares or sells no data to anyone.
|
||
|
||
The app does not request the `android.permission.INTERNET` permission, and
|
||
without it Android does not let an app open a network connection. You can check
|
||
this yourself in the permission list of any released APK, or in the
|
||
[source code](https://codeberg.org/jlmakiola/clockula).
|
||
|
||
## 3. Data Clockula keeps on your device
|
||
|
||
Everything below is processed locally on your device. None of it is
|
||
transmitted, and the developer never receives or stores any of it.
|
||
|
||
### Alarms, timers, stopwatch and world clocks
|
||
|
||
Clockula keeps its own database in the app's private storage. It holds your
|
||
alarms (time, repeat days, label, sound and similar options), your timers and
|
||
their labels, the stopwatch and its laps, and the list of cities you added as
|
||
world clocks. No other app can read this database. Uninstalling Clockula
|
||
deletes it.
|
||
|
||
World clock times are calculated from the time zone data built into Android.
|
||
Adding a city does not look anything up online.
|
||
|
||
### Other apps setting alarms
|
||
|
||
Clockula supports Android's standard alarm interface, so a voice assistant or
|
||
automation app can set, show or dismiss alarms and timers in Clockula. Android
|
||
only lets apps that declare the `SET_ALARM` permission do this. Clockula
|
||
receives what that app sends (for example a time and a label) and stores it
|
||
like an alarm you created yourself. It sends nothing back beyond the result of
|
||
the request.
|
||
|
||
### Alarm and timer sounds
|
||
|
||
You can choose one of the ringtones that come with your device, or pick your
|
||
own audio file through Android's system file picker. Clockula can then read
|
||
exactly that file, so it can play it when the alarm rings. It has no access to
|
||
your other files.
|
||
|
||
You can also let a music app on your device play the alarm. Clockula then sees
|
||
which installed apps share their music library through Android's standard media
|
||
interface, and nothing else about your installed apps. When you browse one,
|
||
Clockula reads the folder and track names that app chooses to share and stores
|
||
the item you pick. When the alarm rings, Clockula asks that app to play it. The
|
||
music app plays it with its own permissions and under its own privacy policy.
|
||
If it streams the music, the music app opens that connection, not Clockula.
|
||
Clockula still has no internet access.
|
||
|
||
### Notifications and the lock screen
|
||
|
||
Alarms, timers and the running stopwatch appear as local notifications, and a
|
||
ringing alarm can show a full-screen view over the lock screen. Android also
|
||
shows your next alarm in the status bar and on the lock screen. None of this
|
||
uses a push service.
|
||
|
||
### Home-screen widgets
|
||
|
||
The widgets show data from Clockula's own database, such as your next alarm,
|
||
a running timer or the stopwatch. Each widget's style and settings are stored
|
||
on your device.
|
||
|
||
### Backup files
|
||
|
||
Clockula can export your alarms, timers, world clocks and settings to a
|
||
`clockula-backup-v1.json` file in a folder you pick, and import such a file
|
||
again. The app reads and writes only the folder or file you select through
|
||
Android's system file picker. The file contains your alarm and timer labels,
|
||
so treat it like any other personal file when you move or share it.
|
||
|
||
### App settings
|
||
|
||
Your preferences (theme, language, snooze length, default sounds and similar)
|
||
are stored on your device and are removed when you uninstall the app.
|
||
|
||
## 4. Android backup
|
||
|
||
If Android Auto Backup is turned on for your device, Android may back up
|
||
Clockula's database and settings to your own Google account, under Google's
|
||
terms. The developer has no access to that backup. You can turn Auto Backup off
|
||
in your device's system settings.
|
||
|
||
## 5. Crash reports: the only case where data can leave your device
|
||
|
||
If Clockula crashes, it offers to report the problem. It never sends anything
|
||
on its own. The report is copied to your clipboard and your browser opens the
|
||
project's issue tracker with the text filled in. You can read the full report,
|
||
edit it, or discard it, and nothing is submitted unless you submit it.
|
||
|
||
The report contains:
|
||
|
||
- the app version,
|
||
- the Android version,
|
||
- the device manufacturer and model,
|
||
- your device language,
|
||
- the time of the crash,
|
||
- and the technical stack trace.
|
||
|
||
It contains no alarms, timers, labels or other personal data.
|
||
|
||
If you submit it, the report becomes a public issue on the project's issue
|
||
tracker at Codeberg, which Codeberg e. V. operates. Their privacy policy
|
||
applies to that submission.
|
||
|
||
## 6. External links
|
||
|
||
The settings screen links to the source code, the licence, the issue tracker
|
||
and a voluntary donation page (Ko-fi). The "Why might my alarm not ring?"
|
||
check can also link to dontkillmyapp.com, which explains battery restrictions
|
||
for your phone's manufacturer. Opening any of these links starts your browser
|
||
and leaves the app, and the privacy policy of that website applies from then
|
||
on. Clockula only opens the address and sends no data of yours with it.
|
||
|
||
## 7. Permissions and why they exist
|
||
|
||
- `USE_EXACT_ALARM`, `SCHEDULE_EXACT_ALARM`: ring alarms and timers at the
|
||
exact time.
|
||
- `RECEIVE_BOOT_COMPLETED`: schedule the next alarm again after the phone
|
||
restarts.
|
||
- `USE_FULL_SCREEN_INTENT`: show the ringing alarm over the lock screen.
|
||
- `POST_NOTIFICATIONS`, `POST_PROMOTED_NOTIFICATIONS`: show alarm, timer and
|
||
stopwatch notifications, including the live timer in the status bar.
|
||
- `FOREGROUND_SERVICE`, `FOREGROUND_SERVICE_SYSTEM_EXEMPTED`,
|
||
`FOREGROUND_SERVICE_SPECIAL_USE`: keep a ringing alarm, a running timer or the
|
||
stopwatch going while the app is in the background.
|
||
- `WAKE_LOCK`: keep the phone awake while an alarm or timer rings.
|
||
- `VIBRATE`: vibrate when an alarm or timer rings.
|
||
- `ACCESS_NOTIFICATION_POLICY`: only used if you turn on Bedtime and allow
|
||
Clockula Do Not Disturb access yourself. Clockula then adds one Do Not
|
||
Disturb mode of its own and turns it on and off on your schedule. It does not
|
||
read your notifications.
|
||
- `ACCESS_NETWORK_STATE`: added by the Android library that updates the
|
||
home-screen widgets (WorkManager). It lets an app see whether a network
|
||
connection exists. It does not let it use one, and without `INTERNET` no
|
||
connection is possible.
|
||
|
||
## 8. Distribution channels
|
||
|
||
Clockula is distributed through the project's releases on Codeberg, a
|
||
self-hosted F-Droid repository, Obtainium and, where available, F-Droid and the
|
||
Google Play Store. When you download or update the app, the operator of that
|
||
channel processes data such as your IP address under its own privacy policy.
|
||
The developer has no control over this, and it is separate from what the app
|
||
itself does.
|
||
|
||
## 9. Children
|
||
|
||
Clockula is suitable for all ages. It collects no data from anyone, children
|
||
included.
|
||
|
||
## 10. Your rights
|
||
|
||
The developer processes no personal data of yours, so there is no stored data
|
||
to which the rights of access, rectification, erasure, restriction, data
|
||
portability or objection (Art. 15–21 GDPR) could apply. You can still contact
|
||
the address above with any question, and you have the right to lodge a
|
||
complaint with a supervisory authority.
|
||
|
||
## 11. Changes to this policy
|
||
|
||
If a change to the app affects how it handles data, this policy will be updated
|
||
and the date at the top changed. The history of this file is public in the
|
||
project's repository.
|