Draft for review. This document is a working draft written in plain English. It has not been reviewed by a lawyer and may change before launch.

Privacy policy

Draft of October 11, 2026

Goodhours helps you plan your day around your goals. To do that it has to hold things that matter to you: what you're working toward, what you planned and what you did. This policy explains what we collect, why, who helps us process it, and how to get it back or have it deleted.

Goodhours is operated by [legal entity to be confirmed] ("we", "us"). Questions about this policy go to [contact email to be confirmed].

The short version

  • We use your data to run Goodhours for you. We don't sell it and we don't use it for advertising.
  • AI features send Anthropic only what each request needs. Anthropic does not use that data to train its models.
  • Analytics and error tools never receive the text of your tasks, goals or notes.
  • Google Calendar access is optional, handled under Google's Limited Use rules, and never touches your existing events.
  • You can export everything at any time, and deleting your account purges your data within 30 days.

What we collect

Account details

Your email address, your name if you give it, and how you sign in (an email link or your Google account). We also keep your time zone, working hours and working days so plans fit your day.

What you put into Goodhours

Goals, milestones, tasks, plans, focus sessions and their notes, weekly reviews, and the questions you type into Ask. This is your content; we store it so the app works on all your devices.

Calendar data, if you connect Google Calendar

The times and titles of events on the calendars you choose, so your plan can fit around meetings. See the Google Calendar section below.

Billing details

Stripe handles payments. Your card number goes to Stripe, not to us. We keep your Stripe customer ID, your plan, whether you're a founding member, and your subscription status.

Usage and device data

Which features are used and when, as event names with pseudonymous IDs and counts; basic device and browser information; and server logs (IP address, time, request path) kept for security and debugging.

Beta requests

If you ask to join the beta, we keep your name, email, what you told us you're working on, and a one-way hash of your IP address that we use only to limit spam.

The request form is protected by Cloudflare Turnstile, which runs a short check in your browser to tell people from bots. Cloudflare acts as our processor for that check and sees your IP address and basic browser signals while it runs; we receive only whether the check passed.

How we use it

  • To run Goodhours: show your plan, sync your devices, run the Focus timer, send the reminders you set.
  • To power AI features you use, such as the daily plan, goal breakdowns, weekly plans and Ask.
  • To bill you, and to send the emails the pricing terms promise (trial and renewal notices).
  • To keep the service secure, fix bugs and understand which features help.
  • To reply when you contact us.

We don't sell your data, share it for advertising, or build advertising profiles.

AI processing (Anthropic)

Goodhours uses Anthropic's Claude API for its AI features. When a feature needs the model, we send only what that request needs. For example, ranking today's tasks sends the relevant tasks, goals and free time, not your whole account. Requests go from our servers to Anthropic; your browser never talks to Anthropic directly.

Anthropic processes this data on our behalf to return a response. Under Anthropic's commercial terms, data sent through the API is not used to train its models. Anthropic may keep requests for a limited period for safety and abuse monitoring, as described in its own policies.

AI output in Goodhours is always labeled ("Suggested" or "Coach") and nothing it proposes changes your plan until you keep it.

Analytics and error reports

We use PostHog to understand how features are used, and Sentry to find errors. Both receive pseudonymous IDs, event names and counts only. They never receive the text of your tasks, goals, milestones or notes, and error reports are scrubbed of that text before they leave our servers.

Product analytics (PostHog)

  • Events are things like "signed up", "started a focus session" or "kept a plan", identified by your account's random ID, never your email address or name. They carry only categories, counts and durations (for example, "focus session, 25 minutes").
  • We don't use autocapture or session recording, and PostHog doesn't set cookies or store data in your browser. Page views record the page path only, without query strings.
  • We don't ask PostHog to store your IP address or work out your location. If your browser sends Do Not Track or Global Privacy Control, we send no usage analytics from your visits. Billing events (such as subscribing or canceling) come from our payment provider's notifications, not your browser, and are still recorded.
  • When you delete your account, we also delete your PostHog profile and events. PostHog queues that deletion, so it can take a short while to complete.

Error monitoring (Sentry)

  • When something breaks, Sentry receives the type of error, where in the code it happened, the page path and your account's random ID, so we can tell how many people a bug affects.
  • Before a report leaves our servers or your browser we remove request contents, cookies, headers, query strings, your email address and IP address, and any message text that could contain what you wrote. We don't use Sentry's session replay.

Google Calendar

Connecting Google Calendar is optional, and every feature works without it. If you connect it, we ask for read-only access to your events, separately from sign-in. Goodhours never creates, edits or deletes your existing events.

Separately, you can choose to add your plan to Google Calendar. If you do, Google asks for one more permission (calendar.app.created), which lets Goodhours create and edit only calendars it made itself. Goodhours creates one new calendar named "Goodhours" and writes the time blocks you have planned or kept there: each block's title and start and end time. It never writes suggestions you haven't kept, and it cannot see or change your other calendars through that permission. You can turn this off, remove the "Goodhours" calendar from Settings, or hide or delete it in Google Calendar at any time.

  • We read events from calendars you select so plans can fit around your meetings.
  • Sync runs when you open the app and about every 15 minutes while it's open. Access tokens are encrypted at rest.
  • When you ask Goodhours to plan your day, event times (and titles, where a suggestion needs them) can be included in the AI request described above.
  • You can disconnect at any time in Settings or from your Google account. Disconnecting revokes our access and deletes cached events. The "Goodhours" calendar, if you added one, stays in your Google Calendar until you remove it (Settings can do that first) or delete it there.

Goodhours's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.In practice: we use Google data only to provide and improve the user-facing features described here; we don't sell it, use it for advertising, or use it to train generalized AI models; and people at Goodhours don't read it unless you ask us to, it's needed for security, or the law requires it.

Who processes data for us

These companies process data on our behalf, under contracts that limit what they can do with it. We'll update this list before adding a new one.

CompanyWhat forWhat they see
SupabaseDatabase and sign-inEverything in your account
VercelHosting for the app and this websiteRequests passing through, server logs
AnthropicAI features (Claude API)Only the goals, tasks, notes or calendar times a request needs
StripePayments, invoices and taxBilling details, card data (held by Stripe)
ResendAccount and reminder emailsYour email address and the email content
PostHogProduct analyticsPseudonymous IDs, event names and counts. No task or goal text
SentryError monitoringScrubbed error reports. No task or goal text
CloudflareSpam check on the beta request form (Turnstile)Your IP address and basic browser signals while the form's check runs

Some of these providers process data outside your country, including in the United States. Where the law requires it, we rely on standard contractual clauses or an equivalent safeguard.

Export, deletion and retention

  • Export. Download all your data as JSON and CSV from Settings, at any time, including when your account is read-only.
  • Deletion. Delete your account yourself in Settings. We purge your data within 30 days, revoke Google access, delete cached calendar events and cancel any subscription.
  • Expired accounts. If a trial or subscription ends, your account becomes read-only. We keep the data for 12 months so you can come back, then delete it after a 30-day notice email.
  • Billing records. Stripe and we keep invoices and payment records for as long as tax and accounting law requires, even after deletion.

Security

Data is encrypted in transit, calendar tokens are encrypted at rest, and every database query is scoped to your account. Direct public access to the database is denied by default. No system is perfectly secure; if a breach affects your data, we'll tell you without undue delay.

Your rights

Depending on where you live, you can ask to access, correct, export or delete your data, object to or restrict some processing, and complain to your local data protection authority. Most of this you can do yourself in the app at app.goodhours.me; for anything else, email [contact email to be confirmed].

Children

Goodhours is not meant for children under 16, and we don't knowingly collect their data.

Changes to this policy

If we change this policy in a way that matters, we'll email you before the change takes effect and update the date at the top.