Privacy Policy

    Last updated: April 22, 2026

    Introduction

    WonderCal is a meeting scheduling platform that helps people find times to meet by reading availability from connected calendars and coordinating responses across participants. This Privacy Policy describes the information we collect, how we use it, who we share it with, how long we keep it, and the choices you have. It applies to the WonderCal website, the WonderCal web application, our transactional email, and any associated APIs or integrations we operate.

    We try to write this policy in plain language. Where a section involves something technical — such as the OAuth scopes we request from Google or Microsoft, or the analytics provider we use — we describe both what happens and why, so you can make informed decisions about what to share with us.

    Who This Policy Applies To

    This policy applies to three groups of people:

    • Account holders — people who sign in to WonderCal with Google, Microsoft, an email magic link, or another supported method.
    • Guests — people who are invited to a meeting and respond by clicking a link in an email, without creating a WonderCal account.
    • Visitors — anyone who browses our website, marketing pages, or documentation.

    Different sections below explain which group each practice applies to.

    Information We Collect

    Account & Profile Information

    When you create an account, we store your email address, a display name, an optional profile image, your locale, your timezone, and authentication identifiers issued by your sign-in provider (for example, your Google or Microsoft user ID). You may also choose to add a LinkedIn URL, headline, company, short bio, username, and personal meeting page settings. These optional fields are visible to people you invite or who book time with you.

    Connected Calendar Accounts

    When you connect a Google or Microsoft calendar, we receive OAuth credentials issued by that provider: an access token, a refresh token, the token expiry time, the email address of the connected account, the provider's account identifier, and (where available) a display name and profile image for that account. We also store the list of calendars on that account, each calendar's name, timezone, color, and whether you have marked it as blocking your availability.

    You can connect multiple Google and Microsoft accounts to a single WonderCal user. Each connected account is stored separately and can be disconnected at any time from the Settings page.

    Calendar Events

    To show your availability, we sync events from the calendars you have marked as blocking. For each event we store its start time, end time, busy/free state, an all-day flag, and a stable identifier supplied by the provider. Whether we also store the event title depends on the visibility scope you chose when you connected the account — see "Calendar Permissions and Scope Choices" below for the full explanation. We do not store event descriptions, attachments, attendee lists, locations, or video conferencing links from your existing calendar events.

    Meetings You Create or Are Invited To

    For each meeting we store the title, optional description, duration, optional location, the participant list, available days and hours, response deadlines, the selected/confirmed time once chosen, and any meeting slug you use in a personal scheduling URL. When the meeting is confirmed, we also store identifiers for the calendar events we create on your behalf (if you have granted write access).

    Availability Responses

    When you respond to a meeting, we store the time slots you indicated as available or blocked, the meeting they apply to, and your account or guest identifier. If you respond as a guest without signing in, we may store the name and email address you provided. For anonymous guests we mint a one-time claim token (stored only as a hash on our side and saved in your browser's local storage) so that you can later prove ownership of those responses if you sign up with the matching email.

    Contacts and Personal Notes

    To make rebooking easier, we automatically build a contact list of people you have shared a meeting with (their name, email, the date you first met, your most recent meeting date, and the count of shared meetings). You may also add private notes to your own contacts; those notes are visible only to you.

    Invitations and Email Delivery

    When you send an invitation, we record the recipient's email address, the time the invitation was sent, an opaque invitation token (used to authenticate the recipient without requiring a password), and delivery status updates from our email provider (sending, sent, delivered, opened, clicked, bounced, failed, declined, or revoked). For automated reminders we keep a count of reminders sent and the timestamp of the last reminder.

    Billing Information

    If you upgrade to a paid plan, we store your Stripe customer identifier and your current plan tier. We do not store credit card numbers, expiration dates, or CVCs on our servers — payment instruments are handled directly by Stripe. For Enterprise inquiries submitted through our contact-sales form, we store your name, work email, company, company size, optional phone, and your stated use case.

    API Keys and Programmatic Access

    If you create an API key for programmatic access, we store a one-way hash of the key (we cannot recover the original key once it is shown to you), a label you give it, the creation timestamp, and the timestamp of the most recent use. We also keep monthly usage counters per account to enforce plan limits.

    Product Usage and Diagnostics

    We collect operational telemetry about how the product is used — for example, which API endpoints are called, whether a calendar sync succeeded or failed, and whether a meeting was confirmed. This information is used to operate the service, debug failures, and enforce plan quotas. It is associated with your account.

    Behavioral Analytics (Microsoft Clarity)

    We use Microsoft Clarity to better understand how people interact with our website and web application. Clarity captures information such as mouse movements, clicks, scroll behavior, page navigation, browser type, device type, screen resolution, country (derived from IP address), and aggregated session recordings. Clarity uses cookies and similar technologies to recognize repeat visits within a session. The dedicated "Microsoft Clarity" section below explains exactly what Clarity does, what it does not record, how the data is used, and how to opt out.

    Cookies and Local Storage

    We use cookies and browser storage for three purposes: keeping you signed in, remembering small pieces of state across the OAuth redirect flow (for example, an invitation token you arrived with), and powering the analytics described above. You can clear cookies and storage from your browser settings at any time, though doing so will sign you out and remove guest claim tokens saved on that device.

    Calendar Permissions and Scope Choices

    When you connect a Google or Microsoft calendar to WonderCal, you choose two things separately. We store these choices on your connected-account record and respect them on every sync and every action we take on your behalf.

    Visibility — what we read from your calendar

    • See event titles — we read the start time, end time, busy/free state, all-day flag, and the title of each event. We use titles only to display your existing calendar entries inside the WonderCal scheduling grid; we do not analyse, share, or train any model on the contents.
    • See only busy times — we read the start time, end time, busy/free state, and all-day flag, but not the title or any other event details. Events from these accounts always render as a generic "Busy" block.

    When you choose "see only busy times," WonderCal asks Google or Microsoft for only the start time, end time, and busy/free status of each event — not the title or any other details. Event titles are never sent to us by the provider, so we never see them, never store them, and never include them in our logs or backups. This is a promise we keep in our own code: we have made the decision, on your behalf, to ask for less than Google or Microsoft would otherwise be willing to share with us.

    Edit access — whether we can write to your calendar

    • Allow WonderCal to create meetings — when a meeting is confirmed, WonderCal will create a calendar event on your behalf in the connected account. We only create events for meetings you organise or attend through WonderCal; we never modify or delete events created by other applications.
    • Read-only — we will not create, modify, or delete any events in your calendar. When you confirm a meeting, you and your participants will receive an email with a calendar file (.ics) you can add manually.

    Changing your mind

    You can broaden or narrow these permissions at any time. Broadening (for example, switching from busy-only to titles, or granting write access) happens from the Settings page in WonderCal and triggers a re-authorization with your provider. Narrowing or revoking access entirely is done either by disconnecting the account from WonderCal or by visiting your provider's account permissions page (Google, Microsoft) and removing WonderCal's consent.

    Google API Services User Data Policy

    WonderCal's use and transfer to any other app of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. We do not use Google user data to serve advertisements, we do not allow humans to read your Google data except where you have given us explicit support consent or as required for security investigations or to comply with applicable law, and we do not transfer Google user data to third parties except as necessary to provide the service you have requested.

    How We Use Your Information

    • • To operate the scheduling service: reading availability, finding overlap between participants, sending invitations, processing responses, and creating confirmed calendar events.
    • • To deliver transactional email such as invitations, confirmations, magic-link sign-in messages, reminder nudges for unresponsive participants, billing receipts, and quota warnings.
    • • To enforce plan limits and prevent abuse, including per-user rate limits and monthly API quotas.
    • • To process payments, manage subscriptions, and provide customer support related to billing.
    • • To improve the product through aggregate analysis of feature usage, performance metrics, and Microsoft Clarity session insights.
    • • To investigate suspected fraud, abuse, or security incidents and to protect the rights, property, and safety of WonderCal, our users, and the public.
    • • To comply with legal obligations and respond to lawful requests from public authorities.

    We do not sell your personal information. We do not use your calendar contents, contact list, meeting metadata, or connected-account credentials to train machine learning models, whether our own or third parties'. We do not use your data for advertising and we do not run third-party advertising on the WonderCal website or web application.

    Microsoft Clarity Analytics

    We use Microsoft Clarity, a product-analytics and session-replay service provided by Microsoft Corporation, to understand how people use the WonderCal website and web application so we can improve usability and diagnose problems.

    What Clarity records

    • • Mouse movement, clicks, scroll depth, taps, and navigation between pages.
    • • Browser type, operating system, device type, screen resolution, language, and approximate location (typically city or country) derived from your IP address.
    • • A session recording that lets us replay how a session unfolded, with sensitive content masked by default (see below).
    • • Aggregated heatmaps that show, across many sessions, where people clicked or how far they scrolled on a given page.
    • • A pseudonymous Clarity identifier set in a cookie that Clarity uses to associate events within a single session and across return visits.

    What Clarity does not record

    Clarity is configured to mask sensitive content by default. Text inputs, form values, and elements marked as sensitive are replaced with placeholder characters in session recordings. Clarity does not record passwords, payment card numbers (which are entered directly into Stripe's hosted forms), or the content of OAuth consent screens (those are served by Google or Microsoft and are outside our application). Clarity does not have access to your calendar events, meeting contents, or contact list — it only sees what is rendered in your browser and is not given access to our backend data.

    How Microsoft uses the data

    Microsoft acts as a service provider for the data Clarity collects on our behalf. Microsoft may also process the data for its own purposes as described in the Microsoft Privacy Statement and the Clarity documentation. Clarity data is retained by Microsoft according to its own policies, currently one year by default.

    How to opt out

    You can opt out of Clarity at any time, and we make this easy:

    • At signup — the signup form includes a checkbox for usage analytics. It is enabled by default; uncheck it before you create your account and Clarity will never load for you.
    • From Settings — a "Usage analytics" toggle in your account settings lets you turn Clarity on or off at any time. Turning it off takes effect immediately for new sessions.
    • From your browser — you can also block Clarity by blocking third-party scripts, using a privacy extension that blocks the clarity.ms domain, enabling Global Privacy Control or Do Not Track (which Clarity respects where required by law), or clearing the Clarity cookie.

    Opting out of Clarity does not affect any feature of the application.

    How We Share Information

    We share information only in the situations described below. We do not sell personal information and we do not share it with advertisers.

    With other meeting participants

    When you create or are invited to a meeting, the other participants can see your name, the times you marked as available or blocked for that meeting, and (if you have chosen to display them) your profile fields such as headline, company, bio, and LinkedIn URL. They cannot see your individual calendar event titles — only an overlay of your busy time within the meeting's search window.

    With your calendar provider

    When you grant write access and confirm a meeting, we send the resulting event — including title, start and end time, location, description, and the participant invitations — to Google or Microsoft so it can be placed in your calendar.

    With our service providers (sub-processors)

    • Convex — database, real-time sync, and serverless backend hosting. Stores all of the product data described in this policy.
    • Vercel and Cloudflare — web hosting, edge delivery, and DDoS protection for our website and application.
    • Google LLC — OAuth, Google Calendar API, and identity. Receives requests for the data permissions you grant.
    • Microsoft Corporation — OAuth, Microsoft Graph (Outlook calendar) API, identity, and the Microsoft Clarity analytics described above.
    • Resend — transactional email delivery, including invitations, confirmations, magic-link sign-in, reminders, and billing notices. Resend processes recipient email addresses, message contents, and delivery telemetry.
    • Stripe, Inc. — payment processing, subscription management, and the Stripe Customer Portal. Stripe receives payment instrument details directly through its own hosted forms.

    For legal reasons

    We may disclose information if we believe in good faith that disclosure is necessary to comply with a law, regulation, legal process, or governmental request, to protect the safety of any person, to address fraud or security issues, or to protect WonderCal's rights or property.

    Business transfers

    If WonderCal is involved in a merger, acquisition, or sale of assets, we will provide notice before personal information is transferred and becomes subject to a different privacy policy.

    Authentication and Security

    We support several ways to sign in, including OAuth with Google and Microsoft and email magic links. Magic-link tokens are single-use and expire after a short window; once consumed they cannot be replayed. OAuth access tokens and refresh tokens are stored on our backend and used only to make API calls to your calendar provider on your behalf.

    We use industry-standard practices to protect your data: encryption in transit (TLS) for all client-server traffic, encryption at rest for our database, hashed storage for API keys and anonymous-guest claim tokens, signed and time-limited tokens for OAuth state and email links, and per-user rate limiting on authenticated APIs. Internal access to production data is limited and audited.

    No system is perfectly secure. If we ever become aware of a breach affecting your data, we will notify affected users as required by applicable law.

    Data Retention

    • Account data is retained while your account is active and for a short period afterwards to allow recovery of accidental deletions. You can request immediate deletion at any time (see "Your Rights" below).
    • OAuth tokens are retained until you disconnect the account, revoke consent at the provider, or delete your WonderCal account. When tokens become invalid we remove them and mark the account as needing reconnection.
    • Calendar events we have synced are refreshed continuously; once an event is removed from the source calendar or falls outside our sync window, the corresponding record is removed from our database.
    • Meetings you delete are soft-deleted for a brief undo window and then permanently purged.
    • Magic-link and invitation tokens expire on a short timeline (typically one hour) and are marked consumed after first use.
    • Email delivery telemetry from Resend is retained for as long as the related meeting or invitation exists.
    • Billing records we are required to keep for tax, accounting, and audit purposes are retained for the period required by applicable law.
    • Microsoft Clarity data is retained by Microsoft according to its policies (currently up to one year by default).

    International Data Transfers

    WonderCal is operated from the United States and our service providers (including Convex, Vercel, Cloudflare, Google, Microsoft, Resend, and Stripe) may process and store data in the United States and other countries. By using WonderCal you acknowledge that your information may be transferred to and processed in countries other than your own. Where required by law we rely on appropriate safeguards (such as Standard Contractual Clauses) to govern these transfers.

    Your Rights and Choices

    Depending on where you live, you may have rights under privacy laws such as the EU and UK General Data Protection Regulations, the California Consumer Privacy Act, and similar regimes. We honor these rights for all users regardless of location, to the extent practical:

    • Access — request a copy of the personal information we hold about you.
    • Correction — ask us to correct information that is inaccurate or incomplete. Most profile fields are editable directly from the Settings page.
    • Deletion — ask us to delete your account and the personal information associated with it. Some records (for example, billing history) may be retained where law requires.
    • Portability — request an export of your meetings, contacts, and profile in a machine-readable format.
    • Withdraw consent — disconnect any connected calendar at any time from Settings, or revoke consent directly with Google or Microsoft.
    • Object or restrict — ask us to stop processing your data for a specific purpose (for example, to stop sending reminder emails — you can also unsubscribe directly from the footer of any reminder).
    • Opt out of analytics — block Microsoft Clarity using the methods described in the Clarity section above.
    • Complain — lodge a complaint with your local data protection authority if you believe we have not handled your information lawfully.

    To exercise any of these rights, email us at the address in the Contact section below from the email address associated with your account. We will respond within 30 days.

    Children's Privacy

    WonderCal is not directed to children under 16, and we do not knowingly collect personal information from children under 16. If you believe a child has provided personal information to us, please contact us and we will take steps to delete it.

    Changes to This Policy

    We may update this Privacy Policy from time to time. When we make material changes we will update the "Last updated" date at the top of this page and, for significant changes, notify account holders by email or in-product notice before the changes take effect. Continued use of WonderCal after the effective date of a revised policy constitutes acceptance of the changes.

    Contact Us

    If you have any questions about this Privacy Policy, our data practices, or wish to exercise any of your rights, please contact us:

    Email: support@wondercal.us

    We aim to respond within 30 days.