Privacy Policy
Effective date: October 7, 2026 Version: 1.7
This Privacy Policy describes how VoiceCal LLC ("VoiceCal," "we," "us," or "our") collects, uses, stores, and shares information when you use our website at voicecal.app and our scheduling service (together, the "Service").
We've tried to write this in plain English. If anything is unclear, email privacy@voicecal.app and we'll explain.
1. Who we are
VoiceCal is operated by:
VoiceCal LLC 9435 Waterstone Blvd, Ste 140-300 Cincinnati, OH 45249 United States
VoiceCal LLC is the data controller for personal data processed through the Service.
For privacy questions, data requests, or account deletion: privacy@voicecal.app.
2. Summary of what we collect and why
| What | Why | How long we keep it |
|---|---|---|
| Your name, email, and Google account profile (from Google sign-in), or, if you sign in with email instead, your email address and a hashed (never plain-text) password | To create and identify your account | Until you request deletion |
| Google Calendar OAuth tokens (encrypted), one set for each Google account you connect | To create and manage events on your calendar at your request, and to check when you're busy | Until you remove that Google account or delete your VoiceCal account |
| Google accounts you connect: each account's email address (which we learn from its primary calendar), a name for the account if you give it one, and whether it needs reconnecting; your calendar on/off switches; and the calendar you've chosen for new events (as calendar IDs, often an email address) | To show you which account is which, use each account's calendars the way you've set them up, and put new events where you asked | Until you remove that Google account (which also removes its email address, name, and switches) or delete your VoiceCal account. If your chosen calendar for new events was on that account, that choice is deleted too, and new events go to another calendar you've switched on |
| Google Calendar data we read on your behalf: your events (title, time, description, guests, organizer), your free/busy times, and your list of calendars (see Section 4) | To show you your calendar, find the event you ask to change, and find open times you can share | We do not store it: we read it from Google when a feature needs it. The exceptions are records of events you create through VoiceCal, the Google event ID and link of meetings created when you finalize a TeamAvail poll, and LiveAvail bookings (rows below), and a short-lived in-memory copy of your calendar list, including calendar names (up to 5 minutes) |
| Your preferences (timezone, default meeting length, theme) | To make the app work the way you've set it up | Until you change them or delete your account |
| Records of events you create through VoiceCal (title, date, time, attendees, description, and which Google account and calendar it went to) | To display your event history | Indefinitely, until you request deletion |
| A monthly count of your smart actions (requests our AI processes, spoken or typed — a number only, never the content) | To enforce your plan's monthly limit | A new count starts each calendar month; past months' counts are kept until you delete your account |
| Names and email addresses of people you invite (attendees, people you add to an existing meeting, poll participants, share recipients) | To send invitations, record responses, and suggest people you've invited before | Indefinitely, until you remove them or request deletion |
| LiveAvail bookings: the booker's name and email, the booked time, and the ID of the Google Calendar event we created | To keep a record of bookings made through your LiveAvail links | Indefinitely, until you request deletion |
| Reminders you set (what to remind you about, the person and notes you mention, the time, and the email address to send it to); your reminder settings (a separate email address for reminders, if you set one, and saved reminder contacts — a label and email address for people you often send reminders to); and, if you turn on lock-screen reminders, your browser's push subscription (a delivery address and keys, and your browser type) | To send the reminder as a push notification and, where your plan includes it, by email | Reminders: until you delete them or your account. Reminder settings and saved contacts: until you change them or delete your account. Push subscriptions: until you turn them off, your browser stops accepting them, or you delete your account |
| The text of what you say or type to VoiceCal | To parse it into a calendar event using AI | We do not store this on our servers, unless you choose to include it in an error report you send us (see "Feedback you send us" below). A short-lived copy may be kept in your own browser if you leave the confirmation screen partway through creating an event — see Section 10. See Section 5 for processor retention |
| A recording of what you say, on devices where your browser can't transcribe speech reliably (see Section 5) | To turn your speech into text using AI transcription | We do not store the audio or keep a copy of it; we keep only an estimate of how many seconds of audio you've sent this month, for cost tracking. See Section 5 for processor retention |
| Feedback you send us from inside the app: your message, whether it's a bug or an idea, and — only if you leave "Include these details" on — the page you were on, your device and browser type, screen size, time zone, app version, and for an error report what you said and the error you saw, and whether you spoke or typed it | To fix problems, improve VoiceCal, and reply to you. Feedback is always linked to your account; we don't accept anonymous feedback | Until you delete your account or ask us to delete it |
| A count of how many times you've used certain features recently (for example, booking a slot, or checking a page's availability), linked to your account if you're signed in, or, on our public LiveAvail booking pages, to your IP address | To stop any one person or address from overloading a feature or a page (for example, someone repeatedly hitting a public booking page) | See Section 7 |
We do not collect: browser fingerprints, advertising identifiers, location data from your device, or analytics tracking from third parties.
3. Information we collect when you sign in
You can sign in with your Google account, or with your email address — either with a password or with a one-time code we email you. If you use email, our authentication provider (Supabase) stores your email address and, if you set one, your password in hashed form; we never see or store your password in plain text. Sign-in codes are sent by our authentication provider.
When you sign in with your Google account, Google sends us:
- A unique Google account ID
- Your email address
- Your name (display name and full name)
- A URL pointing to your Google profile picture
- Your Google Workspace hosted domain, if applicable (for example,
voicecal.app) - Whether your email address is verified
We use this information to create your VoiceCal account and identify you on return visits. We do not display or use your profile picture in the Service today, but the URL is stored by our authentication provider as part of the standard sign-in flow.
We use the OpenID Connect scopes openid, email, and profile for sign-in. We do not request any additional Google scopes during sign-in.
4. Information we collect when you connect Google Calendar
Connecting your Google Calendar is separate from signing in. When you connect Calendar, we ask Google for these three permissions ("scopes"), and nothing broader:
| Scope | What VoiceCal uses it for |
|---|---|
https://www.googleapis.com/auth/calendar.events | Creating events you ask for; showing your upcoming events in VoiceCal; opening a single event to show you its details; moving, editing, and deleting events you ask us to; adding guests to meetings you organize; undoing a delete |
https://www.googleapis.com/auth/calendar.freebusy | Checking when you're busy — only busy start and end times, never event details — to find open times for QuickAvail and LiveAvail, and to draw the day ribbon. VoiceCal checks that a connection still works using the calendar list instead (see the next scope); only for an older connection that hasn't granted that permission, and only while its main calendar is switched on, does VoiceCal use this scope for that check |
https://www.googleapis.com/auth/calendar.calendarlist.readonly | Reading the list of every calendar in each Google account you connect: its ID, name, color, whether it's shown in Google Calendar, and your access level (for example, whether you can edit it). A calendar follows the switch you've set for it in Settings → Calendars; until you set one, it follows whether it's shown in Google Calendar. We hold this list in server memory for up to 5 minutes and show the names to you in Settings and on the confirmation screen. We store a calendar's ID (often an email address) only when you switch it on or off, choose it as where new events go, or create an event on it through VoiceCal |
When you grant access, Google sends us:
- An access token (short-lived, lets us call the Calendar API on your behalf)
- A refresh token (long-lived, lets us obtain new access tokens without prompting you again)
- A token expiry timestamp
We encrypt these tokens with AES-256-GCM before storing them, using a key that is kept outside the database, so the Service can act on your behalf.
You can connect more than one Google account. Each one is stored separately and encrypted the same way described above, and can be removed on its own from Settings → Calendars. You can also give each one a name there; until you do, VoiceCal shows a name it works out from the account's email address, which isn't stored. Removing a Google account asks Google to revoke VoiceCal's access to it — this also ends VoiceCal's access to that same Google account from any other VoiceCal login it's connected to — and deletes its stored tokens, its calendar switches, its name if you gave it one, and, if it was on that account, your chosen calendar for new events (new events then go to another calendar you've switched on). Your other connected Google accounts are not affected.
What we do with your Google Calendar
- Show you your calendar. VoiceCal asks Google for your events on the calendars you've switched on in Settings → Calendars (a calendar you haven't set a switch for follows whether it's shown in Google Calendar), to show your agenda. Google returns the full event; we use and pass to your browser only its title, start and end time, and which Google account and calendar it's on (and whether you can edit it). We also use, only on our server, whether you organize it and an ID Google uses to recognize the same meeting across your connected accounts, to merge duplicate copies of the same meeting before your agenda reaches your browser. Neither of these is sent to your browser. When you open an event, we also use its description, guest list, and organizer, to show them to you and to check whether you're allowed to change it. We don't copy these events into our database.
- Calendars you switch off. A calendar you switch off in Settings → Calendars is not used: VoiceCal doesn't load its events, and doesn't check it for busy times. VoiceCal does still read the list of your calendars — including switched-off ones — so Settings can show every calendar you have and let you switch it back on.
- The same meeting in more than one of your accounts. If a meeting is on more than one of your connected Google accounts (for example, you were invited to it on both), VoiceCal shows it to you once. When you delete a meeting that isn't part of a repeating series, VoiceCal also tries to remove your invited copies of it — never a copy you organize — from the main calendar of your other connected Google accounts where it was showing, so it doesn't keep appearing there. It looks only in accounts whose main calendar you've switched on, and if VoiceCal can't check your calendar settings at that moment, it deletes nothing and asks you to try again. The meeting's organizer may see that you declined. These extra removals can't be undone in VoiceCal.
- Find the event you mean. When you ask VoiceCal to move, delete, or add people to "my 3pm with Dana," our AI provider turns your words into a description of the event you mean. Matching that description to a real event on your calendar happens in your browser, using the events described above. Your calendar events are never sent to the AI.
- Create events. When you confirm an event, we create it on the calendar shown on the confirmation screen — the one you chose under Settings → Calendars → "New events go to," or, if you haven't chosen one, the first calendar you have switched on and can edit, starting with your main calendar — with the title, time, location, description, and guests you approved, and a Google Meet link if you asked for a virtual meeting. If the event has guests, Google emails them the invitation. If that calendar is shared with other people, they can see the event, including its guests. If that calendar can't be used when you tap Create, VoiceCal adds the event to another calendar you've switched on and tells you where it went.
- Change events you ask us to change. You can move an event, edit its title, time, or description, or delete it, on a calendar you've switched on. You can also remove VoiceCal's own record of an event that is on a calendar you've switched off; the event itself stays in Google Calendar. Each change is made only after you confirm it. If the event has other guests, you choose whether Google emails them about the change. We check Google for the latest version of the event right before every change.
- Add people to your meetings. When you add people to a meeting you organize, we add them as guests on the Google Calendar event, and Google emails them the invitation. Existing guests are not emailed. If you include a note, we add it to the event's description.
- Undo. If you delete a timed (not all-day) event that has no other guests, isn't part of a repeating series, and didn't also remove a copy from another of your connected Google accounts (see "The same meeting in more than one of your accounts" above), we briefly hold its title, time, description, and location in your browser so you can undo; undoing creates the event again without emailing anyone, on the same calendar it was deleted from if that calendar is still switched on and writable, or otherwise on the calendar where your new events go (see "Create events" above) — VoiceCal tells you when it landed elsewhere. If you move an event, undo moves it back.
- TeamAvail. When you finalize a TeamAvail poll, we create the meeting on the calendar where your new events go (see "Create events" above) with the participants as guests, and Google emails them the invitation.
- Check when you're busy. QuickAvail, LiveAvail, and the day ribbon use your free/busy times (busy start and end times only, across the calendars you've switched on in every Google account you've connected — we include every connected account here, even if your plan shows fewer in your agenda, so we never offer a time when you're busy) to work out when you're open. The free/busy scope never gives us event titles or details.
What people you share availability with see
- QuickAvail links show the recipient only the open time windows you chose to share. VoiceCal uses your busy times to suggest which windows are open, but the link itself carries only the windows — never your busy times, event titles, or any other details from your calendar.
- LiveAvail links show the recipient your name and bookable time slots that fit the rules you set (days, hours, and meeting length). Slots are worked out from your free/busy times and may be up to a minute old, so a time taken in the last minute may still appear, but the booking will be refused: every booking is checked against your calendar again before it's confirmed. Recipients never see your event titles or details.
- LiveAvail bookings are written to your calendar while you're away. When someone books a slot, VoiceCal checks your free/busy times again and, if the slot is still open, immediately creates an event on the calendar where your new events go (see "Create events" above) — you don't need to be online or approve it. The event is titled with the booker's name and "(via LiveAvail)", its description includes their name and email, and they are added as a guest. If that calendar is shared with other people, they can also see the booker's name and email address. Google does not send an invitation for it; instead we normally email a confirmation to the booker and to you (see Resend in Section 5). Cancelling a LiveAvail link stops new bookings, and so does removing every Google account you've connected.
Google API Services User Data Policy
VoiceCal's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
In particular, for data we receive from Google (your Google account profile and your Google Calendar data):
- We use it only to provide and improve the user-facing features described above, which you can see and use in VoiceCal.
- We do not sell it.
- We do not use it for advertising, including personalized, retargeted, or interest-based advertising.
- We do not use it to train AI or machine-learning models — neither our own nor anyone else's. We do not send your Google Calendar data to our AI providers (Anthropic and OpenAI) at all.
- We transfer it only as needed to provide the features you use — to Supabase, which hosts our database; Vercel, which runs our servers; and Resend, which delivers our emails to you (see Section 5) — or to comply with the law, or to protect against security threats and abuse. If VoiceCal is part of a merger, acquisition, or sale of assets, we will transfer it only with your explicit prior consent.
- People at VoiceCal do not read your Google data, unless you ask us to for support (and give us permission), it is needed to investigate security issues or abuse, or it is required by law.
5. Third parties we share data with
We use the following service providers ("sub-processors") to operate VoiceCal. We share with each only the data needed for them to do their job.
Anthropic (Claude API)
We send the text you type or speak to VoiceCal to Anthropic's Claude API to parse it into structured event data (title, date, attendees, etc.). The payload includes your transcript and any follow-up answers you give to clarifying questions. We do not send your name, email, or any account identifier to Anthropic.
AI training. Under Anthropic's commercial terms, Anthropic does not train its models on data submitted via its API. We do not authorize Anthropic to use your data for model training under any other arrangement.
Retention at Anthropic. Under Anthropic's standard commercial terms, API inputs and outputs may be retained by Anthropic for up to 30 days for trust-and-safety and abuse-monitoring purposes, after which they are deleted. We have not opted into any additional retention beyond this default. If Anthropic offers and we enable a zero-retention configuration in the future, we will update this policy.
See Anthropic's commercial terms and privacy policy for details.
OpenAI (speech-to-text on some devices)
On some devices (see "A note on speech transcription" below), VoiceCal records what you say and sends the recording to OpenAI's transcription API to turn it into text. The payload is the audio recording itself (recording stops automatically after 30 seconds, and we refuse anything over 3 MB), the name of the transcription model, and a short fixed instruction from us describing the kind of speech to expect (meeting times). We do not send your name, email, or any account identifier to OpenAI. The text OpenAI returns is then handled exactly like typed text: it is sent to Anthropic as described above.
VoiceCal does not save the recording. It passes through our server only for as long as it takes to send it to OpenAI and receive the text back, and it is never written to our database or our logs.
AI training. Under OpenAI's published API data-usage terms, OpenAI does not train its models on data submitted via its API unless the customer opts in. We have not opted in.
Retention at OpenAI. Under OpenAI's published API data-usage terms, API inputs and outputs may be retained by OpenAI for up to 30 days for abuse-monitoring purposes, after which they are deleted, unless OpenAI is legally required to keep them longer. We have not opted into any additional retention beyond this default. If we enable a zero-retention configuration in the future, we will update this policy.
See OpenAI's API data-usage terms and privacy policy for details.
Google (Calendar API)
When you create an event, we send to the Google Calendar API: the event title, description, location, start and end times with timezone, and the email addresses of attendees. When you move, edit, or delete an event, or add people to it, we send Google the event ID and the change you confirmed (the new time, title, or description, or the new guests' email addresses), and whether Google should email the guests. When you finalize a TeamAvail poll, we send the meeting details and the participants' email addresses. When someone books through your LiveAvail link, we send the booking time and the booker's name and email. To read your calendar, we send Google the time range and calendars to look at. To check that a connection still works, we ask Google for that account's list of calendars. When you remove a Google account, we ask Google to revoke VoiceCal's access to it. When you delete a meeting, we look for its copies on the main calendars you've switched on in your other connected accounts, so we can remove the ones you were invited to. Section 4 describes what we read back and why.
Supabase (database and authentication)
Supabase hosts our database and handles user authentication. All data described in Section 2 that we store, we store in Supabase. Supabase hosts our database on Amazon Web Services infrastructure, in the US East (Northern Virginia) region.
Vercel (hosting)
Vercel hosts the VoiceCal application. As part of standard web hosting, Vercel records request metadata including IP addresses, user agent strings, and request paths. We do not access these logs except to investigate errors or abuse.
Resend (email delivery)
When you create a TeamAvail poll or share availability, we send invitation emails through Resend. The emails are sent from notifications@voicecal.app and include the poll or share title, your name (as organizer), the recipient's name, and a unique link.
When someone books through your LiveAvail link, we normally send a confirmation through Resend to them and to you (a daily limit on confirmation emails per link can skip them on very busy days). It includes your name, the booker's name (and, in your copy, their email), and the date and time booked. No other details from your calendar are included.
If you set an email reminder, we send it through Resend to the address you chose. It includes the reminder's details, and if it goes to someone other than you, your name (or, if you haven't set one, your email) as the person who set it.
When you send feedback from inside the app, we email a copy to our own inbox through Resend. It includes your account email, your message, and any details you chose to include, and replies from us come from a person, not an automated system.
Fastmail (email receiving and forwarding)
Replies to our notification emails, and inbound mail to support@voicecal.app and privacy@voicecal.app, are received by Fastmail. If a recipient replies to a VoiceCal invitation, or contacts us at these addresses, the message passes through Fastmail.
A note on speech transcription
If you use VoiceCal's voice input feature, your speech is turned into text in one of two ways, chosen automatically based on your device and browser:
- Your browser's built-in speech recognition (Web Speech API). This is used on most desktop browsers, such as Chrome and Edge. Your browser transcribes your speech and sends only the resulting text to our servers. On this path we do not receive or process audio.
- VoiceCal's transcriber, through OpenAI. This is used on iPhone and iPad (in Safari, in other browsers, and when VoiceCal is added to your home screen), in browsers and in-app browsers that don't offer built-in speech recognition, and in browsers where built-in speech recognition has failed for VoiceCal before. On this path your browser records your speech and sends the recording to our server, which forwards it to OpenAI for transcription as described above. We do not store the recording.
When the built-in Web Speech API is used, depending on your browser:
- Some browsers (notably Chrome) implement Web Speech by sending audio to the browser vendor's servers (Google, in Chrome's case) for transcription.
- This behavior is controlled by your browser, not by VoiceCal.
- If you are concerned about this, you can type your input instead of speaking.
We do not control and are not responsible for how your browser implements speech recognition. On either path, you can type instead of speaking if you prefer that no audio leaves your device.
6. Information we do not collect or use
To be explicit:
- No advertising trackers. We do not run Google Analytics, Meta Pixel, advertising cookies, or any third-party analytics.
- No device fingerprinting.
- No selling or sharing of personal information to anyone, ever, including for cross-context behavioral advertising.
- No use of your data to train AI models.
- No copying of your Google Calendar. VoiceCal reads your events and free/busy times from Google to show them to you and to act on your requests (see Section 4), but does not save them in our database. The only calendar-related records we keep are records of events you create through VoiceCal (which we update or delete if you change or delete those events in VoiceCal, and which include which Google account and calendar each one went to), the Google event ID and link of meetings created when you finalize a TeamAvail poll, LiveAvail bookings, and — for each Google account you connect — its email address, a name for it if you gave it one, whether it needs reconnecting, your calendar on/off switches, and the calendar you've chosen for new events.
- No changes to your calendar you didn't ask for. We create, change, or delete events only when you confirm it in VoiceCal — or, for LiveAvail, when someone books a slot on a link you created.
- No location data from your browser or device. We use your timezone (which your browser provides) to schedule events correctly. You can override this in Settings.
- No sensitive personal information is collected or used by VoiceCal for purposes that would trigger your right to limit its use under applicable law.
7. How long we keep your data
| Data | Retention |
|---|---|
| Account record (name, email, Google IDs) | Until you request deletion |
| Google OAuth tokens (encrypted), one set for each Google account you connect | Until you remove that Google account or delete your VoiceCal account |
| Google Calendar events and free/busy times we read | Not stored; read from Google when a feature needs it. (The open times shown on a LiveAvail page may be held in server memory for up to 60 seconds.) |
| Your calendar list (IDs, names, colors, access level) | Up to 5 minutes, in server memory only |
| A connected Google account's email address, a name for it if you give it one, and whether it needs reconnecting; your calendar on/off switches; and the calendar you've chosen for new events (as calendar IDs, often an email address) | Until you remove that Google account (which deletes its email address, name, and switches together) or delete your VoiceCal account. If your chosen calendar for new events was on that account, that choice is deleted too, and new events go to another calendar you've switched on; otherwise it isn't affected |
| LiveAvail bookings | Indefinitely, until you request deletion |
| Your preferences (timezone, theme, defaults) | Until you change them or delete your account |
| Event records (title, date, attendees, description, and which Google account and calendar it went to) | Indefinitely, until you request deletion |
| TeamAvail polls and availability shares (including the Google event ID and link of a finalized poll's meeting) | Indefinitely, until you request deletion |
| Anthropic API inputs (transcripts) | Up to 30 days at Anthropic, then deleted |
| OpenAI API inputs (voice recordings, on devices that use VoiceCal's transcriber) and the resulting text | Not stored by VoiceCal; up to 30 days at OpenAI, then deleted |
| Vercel hosting logs | Per Vercel's retention policy (approximately 72 hours for runtime logs) |
| Feedback you send us (and our copy in our email inbox) | Until you delete your account or ask us to delete it |
| Feature-use counts, by account or IP address (see Section 2) | Each count covers a short period (30 minutes, an hour, or a day) and is reset when that period ends. Old counts are deleted by an automatic clean-up that runs as the service is used, usually within a few days of the period ending. We don't guarantee an exact deletion time |
We retain event records indefinitely because we display your event history. Plan limits are enforced separately, using the monthly count of smart actions described above — not your event records. You can delete individual events at any time within the Service.
8. Removing a Google account vs. deleting your account
These are two different actions, and they have different effects.
Removing a Google account (Settings → Calendars → Remove, next to that account):
- Asks Google to revoke VoiceCal's access to it — this also ends VoiceCal's access to that same Google account from any other VoiceCal login it's connected to.
- Deletes that account's stored access token, refresh token, and token expiry; its name, if you gave it one; and its calendar switches.
- If your chosen calendar for new events was on that account, that choice is deleted too, and new events go to another calendar you've switched on.
- Stops using that account for your agenda, busy checks, and LiveAvail bookings. If it was your only connected Google account, this also stops your LiveAvail links from showing open times or accepting bookings until you connect one again.
- Does not affect your other connected Google accounts.
- Does not delete your VoiceCal account, your event records, your other settings, polls, or availability shares.
Deleting your account (email privacy@voicecal.app):
- Deletes everything we hold on you in our systems: your account record, every connected Google account's OAuth tokens, name, and calendar switches, settings, event records, polls, availability shares, and any other data tied to your account.
- This is irreversible.
- We process deletion requests within 30 days of verifying your request, consistent with GDPR Article 12 and CCPA §1798.105. If we need additional information to verify your identity, we will tell you within that window.
- Note: events already created on your Google Calendar are not deleted automatically. Those stay in whichever Google account and calendar they were created on, and must be deleted from there.
9. Information about people you invite
When you create an event with attendees, add people to a meeting, create a TeamAvail poll with participants, or an availability share with a recipient, you provide us with their names and email addresses. We store this information so the Service can send invitations and record responses. We also remember the name and email of people you've added to meetings so we can suggest them next time; you can remove anyone from those suggestions. When someone books through your LiveAvail link, they give us their name and email, which we store with the booking and add to the event on your calendar. When you send a reminder to someone else, we store their email address with the reminder (and in your saved reminder contacts, if you save them) and email them the reminder with your name as the sender.
We process this third-party data to perform the service you requested and in our legitimate interest in delivering invitations on your behalf. The invitations clearly identify you as the sender.
You are responsible for having an appropriate basis to share your contacts with us and for inviting only people who reasonably expect to hear from you.
If you are someone who has received an invitation from a VoiceCal user and you want your information removed from our system, email privacy@voicecal.app and we will delete it within 30 days. You do not need to be a VoiceCal user to make this request.
10. Cookies and local storage
We use cookies for:
- Keeping you signed in. Our authentication provider (Supabase) sets a first-party, secure session cookie for this.
- Protecting the Google connect flow. When you connect a Google account, we set two cookies for 10 minutes: one that lets us confirm the request came back from the same browser that started it (a security check — it holds no information about you), and one that remembers which page you started from (your dashboard, Settings, or your LiveAvail page) so you land back there afterward. Both stop working after 10 minutes.
These cookies are strictly necessary to operate the Service and do not require consent under EU/UK ePrivacy rules. We do not use cookies for tracking or advertising.
We use browser local storage for the following:
- Your theme preference (light or dark)
- Your default meeting duration setting
- Your default "virtual meeting" toggle setting
- A copy of the event you were creating — including what you said, any guest names and email addresses you gave, your own email address, and the Google account and calendar you'd chosen for it (as IDs — a calendar's ID is often an email address — not names) — kept in this browser if you leave the confirmation screen to connect a Google account or open Settings, so your work can be restored when you come back. VoiceCal won't restore it after 15 minutes. It is deleted when it is restored, the next time you open VoiceCal after it has expired, or when you sign out
- Whether you have more than one calendar to choose from, so the confirmation screen can show or leave out the calendar chooser right away instead of waiting for your calendars to load. This is stored under a code made from your email address (not the address itself). VoiceCal ignores it after 30 days, and it is deleted when you sign out
- The shape of your Settings → Calendars panel the last time you opened it (how many Google accounts and how many calendars each has, as numbers only — never names, emails, or anything else that identifies you), stored under a code made from your email address (not the address itself) so it doesn't show your shape to the next person who signs in on this browser. Used only to draw the loading placeholder at the right size before your real data arrives; it's replaced every time you open that panel, and deleted when you sign out
- Whether you've already seen the feedback box (so its "new" badge doesn't show twice), whether this browser needs voice input sent to our server instead of transcribed locally (set once, if that's ever failed here before), and your recent answers to "AM or PM?" prompts in QuickAvail's weekly-pattern feature (so a likely answer can be pre-selected next time) — none of these three ever contains your name, email, or event details, and none is tied to your sign-in, so none is cleared when you sign out
None of this is sent to our servers on its own; a restored event is sent only when you tap Create. Otherwise it stays in your browser.
11. Legal bases for processing (EU/UK/Switzerland users)
If you are in the European Economic Area, the United Kingdom, or Switzerland, GDPR (and UK GDPR) require us to identify the legal basis for each purpose of processing your personal data. We rely on the following bases:
| Purpose | Legal basis |
|---|---|
| Creating and operating your account; transcribing and parsing your scheduling requests; creating events on your calendar; sending invitations you initiate | Performance of a contract (Art. 6(1)(b)) — necessary to provide the service you signed up for. |
| Storing event records, settings, and preferences | Performance of a contract (Art. 6(1)(b)) — required to deliver service features. |
| Operating the service securely (logging, abuse prevention, fraud detection) | Legitimate interests (Art. 6(1)(f)) — our interest in running a secure, reliable service. |
| Responding to legal requests and complying with legal obligations | Legal obligation (Art. 6(1)(c)). |
| Defending or pursuing legal claims | Legitimate interests (Art. 6(1)(f)). |
| Reviewing and answering feedback you choose to send | Legitimate interests (Art. 6(1)(f)) — our interest in fixing problems you report and improving the service. |
If we ever rely on your consent for a specific activity (we do not today), we will say so clearly, and you may withdraw consent at any time without affecting the lawfulness of earlier processing.
Automated decision-making. We do not use your personal data for automated decision-making or profiling that produces legal or similarly significant effects about you.
Special category data. We do not seek or rely on special-category personal data (such as health, religion, or political opinions) within the meaning of GDPR Article 9. We do not use voice recordings to identify you. Because the text and speech you submit to VoiceCal are free-form, they may incidentally contain such information; if so, we process it only to the extent necessary to parse your scheduling request and do not use it for any other purpose.
12. International data transfers
VoiceCal is operated from the United States, and our service providers process data primarily in the United States.
If you access VoiceCal from outside the United States, your personal data will be transferred to, processed, and stored in the United States and other countries where our service providers operate. These countries may have data protection laws different from those of your country.
Transfers from the EEA, UK, and Switzerland. Where we transfer personal data of individuals in the European Economic Area, United Kingdom, or Switzerland to the United States or other jurisdictions that are not subject to an adequacy decision, we rely on appropriate safeguards, principally:
- The European Commission's Standard Contractual Clauses (SCCs), including the UK International Data Transfer Addendum where applicable;
- The EU-U.S. Data Privacy Framework and UK Extension to the Data Privacy Framework where a service provider is certified;
- Other safeguards permitted by Articles 46–49 of the GDPR/UK GDPR as applicable.
Each of our sub-processors named in Section 5 offers an appropriate transfer mechanism under its standard data processing terms. You may request a copy of the relevant safeguard by contacting privacy@voicecal.app.
By using the Service, you acknowledge these transfers.
13. Your rights
You have rights over your personal data. The specific rights you can exercise depend on where you live, but VoiceCal honors the following for all users regardless of location:
- Access — the right to know what personal data we hold about you
- Correction — the right to have inaccurate data corrected
- Deletion — the right to have your data erased (subject to legal exceptions)
- Portability — the right to receive your data in a portable format
- Objection — the right to object to specific uses of your data
- Restriction — the right to limit how we process your data
To exercise any of these, email privacy@voicecal.app. We will respond within 30 days.
Additional rights for EEA, UK, and Swiss users
In addition to the rights above, under GDPR (and UK GDPR), you have:
- The right to withdraw consent at any time, where we rely on consent;
- The right to lodge a complaint with a supervisory authority. In the EEA, this is your national data protection authority; in the UK, the Information Commissioner's Office (ico.org.uk); in Switzerland, the Federal Data Protection and Information Commissioner (edoeb.admin.ch).
We encourage you to contact us first at privacy@voicecal.app so we can try to resolve your concern directly.
Additional rights for California residents (CCPA/CPRA)
If you are a California resident, the California Consumer Privacy Act (as amended by the CPRA) gives you the following rights:
- The right to know what categories of personal information we collect, the sources of collection, the business purposes for processing, and the categories of third parties with whom we share information;
- The right to access the specific pieces of personal information we hold about you;
- The right to delete your personal information, subject to legal exceptions;
- The right to correct inaccurate personal information;
- The right to opt out of the sale or sharing of your personal information for cross-context behavioral advertising;
- The right to limit the use of sensitive personal information;
- The right to non-discrimination for exercising any of these rights.
Categories of personal information we collect. Identifiers (name, email, Google account ID); customer records (event titles, attendees, descriptions you provide); internet or other electronic network activity (timezone, settings, app usage); inferences drawn from the above only to fulfill your scheduling requests.
Sale and sharing. We do not sell or share your personal information as those terms are defined under the CCPA/CPRA. We do not engage in cross-context behavioral advertising. We honor Global Privacy Control (GPC) signals where technically feasible.
Sensitive personal information. We do not collect or use sensitive personal information for purposes that would trigger your right to limit its use under the CPRA.
To exercise your CCPA rights, email privacy@voicecal.app. You may also designate an authorized agent to make a request on your behalf; we will verify the agent's authority before responding. We will not discriminate against you for exercising your rights.
14. Security
We use industry-standard security measures appropriate to a service of our size:
- TLS encryption for all data in transit between your browser, our servers, and our sub-processors
- Encryption at rest provided by our database and infrastructure hosts (Supabase, Vercel)
- Row-level access controls in our database that restrict your account data to your own session
- OAuth-based authentication — we never see or store your Google password
- Application-level encryption of Google tokens — your Google Calendar access and refresh tokens are encrypted with AES-256-GCM before they reach our database, with the key held separately from the database
- Least-privilege credentials for our service-to-service connections
We are continually improving our security practices. No method of transmission or storage is completely secure, and we cannot guarantee absolute security.
If we become aware of a security breach affecting your personal data, we will notify you and any relevant regulator where, and within the timeframes, required by applicable law.
If you believe your VoiceCal account has been compromised, email privacy@voicecal.app immediately.
15. Children's privacy
VoiceCal is not intended for children under 13, and we do not knowingly collect information from children under 13. If you believe a child has created an account, email privacy@voicecal.app and we will delete it.
16. Changes to this policy
If we change this policy, we will update the "Effective date" at the top and post the new version at this URL. For material changes, we will also notify you by email at the address associated with your account.
We review this policy at least annually.
17. Contact
For any privacy question, data request, or complaint:
Email: privacy@voicecal.app Mail: VoiceCal LLC, 9435 Waterstone Blvd, Ste 140-300, Cincinnati, OH 45249, United States
We aim to respond to all privacy emails within 30 days.