Privacy Policy
Planer sluzhinnia («the App») helps a volunteer minister plan service hours, accept partner bookings and keep a report. This page says in plain language what data we store, why, where, and how you can export or delete it. The Ukrainian version is primary; this is a full translation.
Who is responsible
Data controller: Yurii Mykhailiuk, a private individual (not a company). Contact: [email protected].
What we store
| Data | Why | How it is stored |
|---|---|---|
| Your Telegram ID and display name | To recognise your account and send messages from the bot | In the database, reachable only through the app server |
| Settings: time zone, weekly schedule, monthly target, booking rules | To compute free hours and your target | In the database |
| Service entries, credit, monthly reports | To keep your report | In the database |
| Partner name and booking comment | So you know who the meeting is with | Encrypted (AES-256-GCM); the key lives only on the server |
| Partner Telegram ID and partner device fingerprint | To recognise a returning partner and to limit spam and double bookings | Only as one-way hashes (identification and limits); the raw values are not stored |
| Google access tokens | To read busy/free and manage the «Служіння» calendar | Encrypted; the key lives only on the server |
| Google account email (if you connected Google) | To show which account is connected | Encrypted; included in your data export |
| Partner Telegram chat (only if the partner opted in to notifications) | To tell them about a confirmed, cancelled or moved booking | Encrypted (AES-256-GCM); deleted when the partner opts out or blocks the bot |
Apart from the Google account email above (only if you connect Google), we do not collect email addresses, phone numbers, postal addresses or location. An IP address is used only as a temporary rate-limiting key and is not stored; our server logs record only the route, status code, timing and an internal account id, never IP addresses, headers or content.
Google access
Connecting Google Calendar is optional and started by you. We request three scopes:
- calendar.freebusy: only «busy/free» intervals for the calendars you choose. We never see titles, descriptions, attendees or locations of your events.
- calendar.calendarlist.readonly: only the list of your calendars (names and colours), so you can choose which ones count as busy. This scope does not expose events.
- calendar.app.created: access only to the «Служіння» calendar that the App itself creates. We create and modify events only there and never touch your other calendars. Those events are written to your Google account and contain the partner’s name, the optional comment, the service type and the meeting place.
This data is used only for the features you see in the App: showing free hours, partner bookings, and the event in the «Служіння» calendar. You can revoke access at any time in the App (Settings, Google) or at myaccount.google.com/permissions.
Limited Use
The App’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
- Google user data is used only to provide or improve the user-facing features visible in the App.
- We do not transfer it to third parties except as needed to provide those features, to comply with law, or with your consent.
- We do not use it for advertising, do not sell it, and do not use it to train AI models.
- Humans, including us, do not read Google user data unless needed for security, to comply with law, or with your explicit consent. In practice we technically retain only what is needed to compute free slots about your busy times, and we never receive event titles at all.
Security
Partner names, comments, Google tokens, the Google account email and, if a partner opted in to notifications, their Telegram chat ID are encrypted at the application level with AES-256-GCM, and the key is kept apart from the database. Partner Telegram IDs used for identification and limits are stored only as hashes. Database rows are protected with row-level security (RLS). Telegram signatures are verified on the server. We use no analytics, advertising or other trackers.
Where data lives
Database: Supabase, EU region (Frankfurt). Application servers: Railway, EU region (Amsterdam). We also rely on Telegram (the messenger the App runs in), Google (Calendar) and, on the browser version of the booking page, Cloudflare Turnstile (bot protection; your browser contacts Cloudflare when you book outside Telegram, and our server sends Cloudflare the verification token and your IP address to check it). These services have their own policies.
Retention
Data is kept until your account is deleted. After deletion it is removed from the database; the provider’s backups are overwritten on its standard schedule. Short-lived technical records are purged automatically: expired sessions (hourly), processed Telegram update ids (after 7 days), one-time export links and Google connection-cancel links (within a day of expiry).
Your rights: export and deletion
In the App (Settings, Data and account) you can download all your data and delete your account completely. Deletion also revokes the Google access. The «Служіння» calendar and its events stay in your Google account; you can delete them there yourself. For help, or if you are in the EU and want to exercise GDPR rights (access, rectification, erasure, portability, objection), write to [email protected].
If you are a booking partner
You enter a name and, optionally, a comment. Only the owner of the link can see them, and they are stored encrypted. We do not ask for your email and do not track you across sites. Telegram notifications are enabled only after your explicit consent and can be turned off with the «Не надсилати» button or the /stop command. To have your data removed, contact the link owner or write to us.
Changes
If this policy changes materially we will tell you in the App or the bot and update the date above.
Contact
Yurii Mykhailiuk: [email protected]. Українська версія.