Privacy Policy
Last updated: July 13, 2026
This Privacy Policy explains how StreamCal (“StreamCal”, “we”, “us”) handles personal data when you use the StreamCal website (streamcal.app) and the StreamCal iOS app. Both are operated by the same individual based in Greece (European Union) and are available worldwide. We act as the data controller for the personal data described below; unless a point says otherwise, it applies to the website and the app alike.
We try to collect as little as possible and never sell your personal data. If you have any question about this policy, email legal@streamcal.app.
1. Data we collect
We collect only what we need to run the service:
- Account data. When you create an account, we store your email address and an authentication credential. If you register with email and password, the password is stored only as a salted hash by our authentication provider — we never see it. The app can also sign you in with an emailed one-time code. If you sign in with Google, Apple, Facebook, or Microsoft, we receive your email address and the basic profile information that provider shares.
- Watchlist & preferences. The titles, actors, and platforms you save, the streaming services and favorite genres you pick, and your notification and display settings.
- Taste signals.How you react to suggestions — for example the titles you save from the app’s swipe deck or the feedback you give on a “Tonight” pick — is used to tune your recommendations. These signals are stored with your account; some tuning data stays only on your device.
- Optional age range and gender.The app’s onboarding asks for an age range and gender to tune recommendations. Both are entirely optional — you can skip them, and edit them at any time in the app under “Personalize picks”. They are never shown to other users.
- Notifications.If you enable browser push notifications on the website, we store the push subscription your browser generates. If you enable notifications in the iOS app, we store your device’s push token (an Expo push token) so we can deliver alerts through Expo’s and Apple’s push services. You can revoke either at any time in settings.
- Newsletter. If you subscribe, we store your email address to send the weekly digest — but only after you click the confirmation link we email you (double opt-in). Every email includes a one-click unsubscribe link.
- Title reminders. If you ask to be emailed when a specific title comes out, we store that email address together with the title. Each reminder email carries a signed one-click unsubscribe link that stops all title reminders to that address.
- Region (website). If you accept the cookie banner, your browser asks a third-party geolocation service (ipapi.co) for your country — your IP address goes directly from your browser to that service, not through our servers — and we store only the resulting two-letter country code in a cookie. When no cookie is set, we may read the approximate country our hosting network derives from your IP (a standard CDN header) for the same purpose. In both cases we store the country code, never your IP address. You can also add travel countries yourself.
- Location (iOS app). If you grant location permission, the app reads your position only while you are using it (foreground only). It is used for two things: converting your position to a country for regional listings, and finding cinemas near you (your coordinates are used for that lookup and then discarded). Your precise GPS coordinates are never stored on our servers. The app works without location — you can pick your country manually.
- Profile and social features. If you use the social features, we store your chosen username, display name, and avatar image, your friend connections, the titles you mark as watched, and any title suggestions you send to friends.
- Comments. Comments you post, together with the display name shown next to them.
- Messages you send us. If you use the contact or suggestion form, we store the name, email address, and message you provide so we can respond.
- Data reports & abuse prevention. If you report wrong data (or submit one of our public forms), we store a salted, one-way hash of your IP address and browser signature. The hash cannot be reversed into your IP; it exists solely to rate-limit spam and duplicate submissions.
- Calendar feed.If you subscribe to your personal calendar feed, we generate a secret token embedded in the feed URL that authenticates your calendar app’s requests. Treat that URL as private.
- Analytics & technical data. We use Umami (Umami Cloud), a privacy-friendly, cookieless analytics service hosted in the EU, to understand aggregate usage. It does not track you across other websites. If you are signed in and accept the cookie banner, we link your analytics session to your account — your user ID and email address — so we can understand how signed-in members use StreamCal. If you decline the banner, no such link is made. We also keep standard server logs needed to operate and secure the site.
2. How we use your data and our legal bases
Under the EU General Data Protection Regulation (GDPR), we rely on these legal bases:
- Performance of a contract — to create and operate your account, store your watchlist, deliver the reminders and notifications you ask for, and provide the features you use.
- Consent— for push notifications, the newsletter, title reminders, region detection, app location access, the optional age range and gender, and linking analytics to your account. You can withdraw consent at any time (settings, the unsubscribe links, or your device’s permission controls).
- Legitimate interests — to keep the service secure, prevent spam and abuse (the salted hashes above), and understand aggregate usage so we can improve StreamCal, balanced against your rights.
3. Cookies, local storage, and on-device data
The website uses a small number of cookies and local-storage entries:
- Essential — authentication session cookies that keep you signed in, and a record of your cookie choice.
- Region — a cookie that remembers your detected country (only set if you accept the banner).
- Analytics — Umami is cookieless; it sets no cookies. If you accept the banner while signed in, we associate your analytics session with your user ID and email as described above.
You can clear cookies and local storage in your browser at any time. Declining the banner means we fall back to a default or CDN-derived region and do not attach your identity to analytics. The iOS app stores your session and preferences on your device (it does not use cookies); deleting the app removes that on-device data.
4. Who processes your data
We share data only with service providers (sub-processors) that help us run StreamCal, under agreements that require them to protect it:
- Supabase — database and authentication.
- Netlify — website hosting and delivery.
- Resend — transactional and newsletter email.
- Umami (Umami Cloud, EU region) — cookieless usage analytics.
- Expo— delivery of the iOS app’s push notifications (together with Apple’s push service).
- Google, Apple, Facebook, Microsoft — only if you choose to sign in with one of them.
- Push delivery services — the push service operated by your browser/device vendor (e.g. Google, Mozilla, Apple) delivers the notifications you opt into.
- ipapi.co — receives your IP address (directly from your browser) to perform the one-time country lookup when you accept region detection.
We may also disclose data if required by law. We do not sell your personal data or share it for advertising.
5. Third-party content and affiliate links
Pages and app screens load some content directly from third-party hosts: posters and artwork from TMDB (image.tmdb.org) and Amazon/IMDb (m.media-amazon.com), trailer thumbnails from YouTube (i.ytimg.com), embedded trailers through YouTube’s privacy-enhanced player (youtube-nocookie.com), country flags from flagcdn.com, and brand icons from cdn.simpleicons.org. When your browser or the app fetches those images, the host sees your IP address and standard request metadata, as with any content on the web. We choose privacy-conscious variants where they exist (e.g. the no-cookie YouTube player).
The iOS app sometimes shows links to VPN services (NordVPN, PureVPN) next to titles that aren’t available in your region. These are affiliate links: if you subscribe after tapping one, we may earn a commission. The link carries a referral code identifying StreamCal — not you — and we send those services no personal data about you.
6. Content that is visible to others
Some data you create is intentionally not private, so others can use the social features:
- Public — your profile (username, display name, avatar) and the comments you post are visible to anyone who can view the relevant page.
- Friends — people you accept as friends can see your watchlist and the titles you have marked as watched.
Avoid putting sensitive information in your username, display name, or comments. You can delete your comments and end friend connections at any time. Your age range and gender are never visible to others.
7. Movie and TV data
StreamCal aggregates release dates, availability, ratings, and industry news from third-party sources (including TMDB, OMDB, streaming-availability providers, and box-office data). This is information about titles, not about you, and is used to populate the calendar. See our Disclaimer for how to treat that information.
8. International transfers
Some of our providers process data outside the European Economic Area. Where that happens, transfers are protected by appropriate safeguards such as the European Commission’s Standard Contractual Clauses or an adequacy decision.
9. How long we keep it
- Account, watchlist, profile, and social data — for as long as your account is active. When you delete your account, this data is deleted immediately; residual copies in encrypted backups expire within 30 days.
- Title reminders— until the reminder is sent, then deleted within 30 days; if you unsubscribe, we keep only the opt-out flag so we don’t email you again. Deleting your account removes them entirely.
- Newsletter — until you unsubscribe (we then keep the address only as a suppression record). Signups that are never confirmed are deleted after 30 days.
- Messages and data reports — contact/suggestion messages and title reports are kept for up to 24 months, then deleted.
- Push subscriptions and tokens — until you disable notifications, sign out on that device, or delete your account.
- Abuse-prevention hashes— the salted rate-limit hashes are deleted within days; hashes attached to data reports follow the report’s 24-month period.
- Server logs — up to 30 days.
- Analytics — event-level data is retained by Umami for up to 12 months; after that only aggregate statistics remain.
10. Your rights
Under the GDPR you have the right to:
- access the personal data we hold about you;
- correct inaccurate data;
- delete your data (“right to be forgotten”) — you can delete your account yourself in the website settings or in the app’s profile screen;
- restrict or object to certain processing;
- receive your data in a portable format;
- withdraw consent at any time, without affecting prior processing.
To exercise any of these, email legal@streamcal.app. You can turn off notifications in your settings and unsubscribe from emails directly. You also have the right to lodge a complaint with your local supervisory authority — in Greece, the Hellenic Data Protection Authority (HDPA).
11. Children
StreamCal is not directed at children under 16, and we do not knowingly collect their personal data. If you believe a child has provided us data, contact us and we will delete it.
12. Security
We use reputable providers and reasonable technical measures to protect your data, but no online service can be completely secure. Keep your password confidential and contact us if you suspect unauthorized access to your account.
13. Changes to this policy
We may update this policy from time to time. We will revise the “Last updated” date above and, for material changes, take reasonable steps to notify you.
14. Contact
Questions about your data or this policy? Email legal@streamcal.app. For general support, use info@streamcal.app.
