Privacy Policy

Last updated: 31 October 2026.

This Privacy Policy explains how CycleCalcs ("we", "us") handles information when you visit this website. We have tried to keep both the site and this policy simple.

On this page

Information we collect

CycleCalcs has no accounts. Nothing on this site asks you to register, and the calculators run entirely in your browser, so the words, names and numbers you type are processed on your device and are not transmitted to or stored on our servers.

A few pages sell something: the Moon Calendar 2027, Your Eclipse Day, The Moon That Night, and widget licenses on the embed page. Buying one involves a payment processor, and there is an optional newsletter you can give an address to; both are set out under Purchases and The newsletter below. The developer API and the MCP server, which are separate services for people building their own software, have sections of their own. Pages that carry ads load Mediavine's advertising script, set out under Cookies and advertising.

Several tools on this site can use your location to show what is in the sky from where you are. This includes the Planet Parade Tracker, the Sky & Tonight tools such as Today in the Sky, the Moon Phase Calendar, the Eclipse & Saros Explorer and the Sunrise & Sunset page, and the individual object pages for the Moon, the Sun and the planets, which show each one's position for tonight from your location. On these pages the astronomy is worked out on your own device, and so is everything to do with your location:

  • Use my location. If you click this and allow it in your browser, your coordinates are used on your device to work out what is visible. To label that spot with a city name, your browser searches a list of places that is served with the page like any other file. Your coordinates are not sent anywhere.
  • Place search. If you type a city or place into a search box, your browser matches what you type against that same list of places. The text you type is not sent anywhere.

On these pages, neither feature sends your coordinates or what you type to anyone. Pages that carry ads also load Mediavine's script, which receives your IP address and may use it for an approximate location; see Cookies and advertising. The place list comes from GeoNames and is downloaded once, in full, the same way for every visitor, so what your browser requests reveals nothing about where you are. A location you choose on these pages is remembered in your own browser so a tool can restore it on your next visit, and clearing your browser data removes it.

A few features do send a location to our servers, because their answer is computed or served there:

  • Widgets. A widget in a frame is loaded from this site with its location in the frame's address, so our host receives that location. Widgets that get their figures from our servers, such as Dark Nights Ahead or the in-page moon widget, also send it there to compute them (see The developer API). The Observing Planner also asks MET Norway, the Norwegian weather service, for a cloud forecast: our server sends it that location rounded to two decimal places (about a kilometer). The previews on the embed page and the widget playground work the same way, so a place you pick or a sample site you tap there is sent. If an observatory widget has no location set and you tap its "Use my location" button, it sends your coordinates the same way.
  • Products. Previews and purchases send the place you choose; see Purchases.
  • The API page. Its live example sends the coordinates you enter when you run it.

The developer API

We run a developer API at cyclecalcs.com/v1 and cyclecalcs.com/v2 for people building their own applications. Some widgets and the API page's live example call it too, as set out under Location and place search, and what follows applies to those calls. The calculators and the location tools listed there do not call it.

The /v1 and /v2 API needs no account, no sign-in and no key, and it sets no cookies. A response is JSON, CSV or plain text, not a web page, so there is nothing for a browser to store. If you call the API from your own application, any cookies that application sets are its own, not something the CycleCalcs API adds.

The API's rate limiter has to recognize repeat callers to enforce its published limits, but it does not do that by keeping your IP address. It hashes the address together with a random salt that is generated fresh each time the service is deployed and held only in memory, never written to disk. The raw address itself is never stored and never logged; only the salted hash is used, only to count requests against the limits, and it changes on every deploy.

We do not log the parameters of an API request, such as the coordinates, dates or other values you send, together with your IP address, its hash, or any other identifier. Our host, Netlify, may keep its own standard infrastructure-level access logs under its own terms; that is Netlify's platform logging, not something our code adds or can see.

Full detail for developers, including the output license, third-party attribution and acceptable use, is in the API Terms of Use.

The MCP server

The MCP server at cyclecalcs.com/mcp lets AI assistants call the API's astronomy tools. It is an optional service for AI apps, separate from the pages of this website.

  • What arrives. Each tool call carries the tool's arguments (for example coordinates, dates or a place name) and, if you chose to provide one, a RapidAPI key, either in a request header or held inside a sign-in token.
  • What an AI app adds. Your conversation with the app is not sent to the server, only what the app puts into a tool call. An app can also attach details of its own to each call. ChatGPT, for example, sends your locale (language and region), anonymized identifiers for you, for the conversation and, when available, for your organization, and sometimes a user-agent hint and a coarse location (city, region, country, time zone and approximate coordinates). Our code reads only the names of those details, to recognize a call from ChatGPT and answer it in the form ChatGPT expects; it does not use their values, store them or log them.
  • Why. The arguments are used to compute the answer. The key is used so the call counts against your own RapidAPI plan.
  • Who receives it. A call with a key is forwarded, with the key and the arguments, to RapidAPI's gateway for this API, which meters it under RapidAPI's own terms and passes it back to our API. A call without a key goes to our own API only.
  • Sign-in. If you connect through the sign-in page and enter a key, the key is checked once with RapidAPI, which uses one request of your plan, then placed, encrypted, inside the tokens given to the app you connected. We do not keep a copy on our servers. Access tokens expire after 15 minutes and refresh tokens after 30 days.
  • Sign-in records. So that a sign-in code works once and an ended sign-in stays ended, we store small records. Each is named by a one-way hash of a random identifier we generated and holds only timestamps or another such hash: no key, no token, no network address and no tool arguments. Records are not deleted automatically when they expire; by then whatever they refer to has expired too, so an expired record no longer affects anything.
  • Counting keyless calls. Keyless calls are limited per network address per day. The count uses the same salted-hash method as the API rate limiter above, held in memory only. A sign-in without a key is also counted by its random identifier.
  • Logging. Our code does not log tool arguments, keys or tokens. Netlify and RapidAPI keep their own logs under their own terms.
  • What you can do. To stop your key being used here, regenerate it in the RapidAPI dashboard: every call made with a key passes through RapidAPI's gateway, which refuses a key once it has been regenerated. An app you connected can end its sign-in at any time by sending its token to /oauth/revoke. Questions: info@cyclecalcs.com.

Purchases

If you buy the 2027 moon calendar, the payment is taken by Stripe on a page Stripe hosts. Your card number, your billing details and your email address are entered there, on Stripe's page, and are held by Stripe. They never pass through this website and we never see them. We cannot see your card number at any point, including afterwards.

Stripe is the merchant of record for that sale. That means Stripe, not CycleCalcs, is the seller on the transaction: it calculates and remits any sales tax, VAT or GST that applies where you are, it sends your receipt, and it handles refunds and disputes. Stripe processes your information under its own privacy policy.

What this site keeps: no customer record. There is no customer database here and no account to create. When a payment completes, this site asks Stripe whether that specific checkout was paid, and if it was, it generates a signed license for what you bought. That license records only the product, the dates it is valid between, and the one detail the product needs: for a calendar, the location you chose; for a widget license, the domain name you bought it for. It contains no name, no email address and no payment detail. It is handed to your browser and is not stored on our servers. If a purchase is refunded or a license is withdrawn, a one-way hash of the license is added to a revocation list, and the license is refused by this site. Each entry holds only that hash, the time it was added and the time it takes effect: no name, no email address, no network address and nothing about the purchase. Entries are not deleted.

Your license travels in the address of your purchase page, after the # symbol. Browsers never send that part of an address to any server, so it stays between you and your own device. Bookmarking that page is how you return to your purchase; treat the bookmark like a receipt, since anyone who has it can download your calendar or read your widget key.

A widget license is different from a calendar in one way worth stating: the key is meant to be pasted into the HTML of your own public pages, so anyone who reads your page source can see it. That is expected. The key carries the domain and the dates and nothing about you. Because the key is public, anyone who has it can also see whether this site still honors it, as the widget itself shows.

Previewing or buying a calendar, an Eclipse Day plan or The Moon That Night sends the place you chose (its coordinates, time zone and name) to this site, because that is what the file is computed from. The Moon That Night also sends the date and time, and any occasion, heading or dedication you entered. A purchase passes those values to Stripe with the checkout, and Stripe holds them with the payment record, because the paid file is made from them after you pay.

If you email us about an order, we hold that email as we would any other correspondence, and Stripe holds the payment record under its policy. If you would like your Stripe record removed, ask us and we will pass it on to Stripe, or you can contact Stripe directly.

The newsletter

There is a signup box in the footer of every page. It is entirely optional and nothing on this site requires it. If you enter your address there, we send one note to it with a confirmation link, and nothing is recorded unless you use that link. When you do, the address is sent to Resend, the service that stores our subscriber list and sends the mail, and it is held there rather than on this site: as with purchases, there is no database here to keep it in.

We use it to send occasional notes about the sky and about this site, and for nothing else. Every newsletter carries a one-click unsubscribe link, which removes you immediately and without asking why; you can also write to info@cyclecalcs.com and we will remove you.

Resend processes the address under its own privacy policy. If you have bought a calendar, that is a separate matter: the receipt and delivery emails for a purchase are sent because you bought something, not because you subscribed, and unsubscribing from the newsletter does not stop them.

Cookies and advertising

This site shows ads served by Mediavine. The section below, in the wording Mediavine requires, explains the cookies and data its advertising uses and how to opt out.

Mediavine Programmatic Advertising (Ver 1.1)

The Website works with Mediavine to manage third-party interest-based advertising appearing on the Website. Mediavine serves content and advertisements when you visit the Website, which may use first and third-party cookies. A cookie is a small text file which is sent to your computer or mobile device (referred to in this policy as a "device") by the web server so that a website can remember some information about your browsing activity on the Website.

First party cookies are created by the website that you are visiting. A third-party cookie is frequently used in behavioral advertising and analytics and is created by a domain other than the website you are visiting. Third-party cookies, tags, pixels, beacons and other similar technologies (collectively, "Tags") may be placed on the Website to monitor interaction with advertising content and to target and optimize advertising. Each internet browser has functionality so that you can block both first and third-party cookies and clear your browser's cache. The "help" feature of the menu bar on most browsers will tell you how to stop accepting new cookies, how to receive notification of new cookies, how to disable existing cookies and how to clear your browser's cache. For more information about cookies and how to disable them, you can consult the information at All About Cookies.

Without cookies you may not be able to take full advantage of the Website content and features. Please note that rejecting cookies does not mean that you will no longer see ads when you visit our Site. In the event you opt-out, you will still see non-personalized advertisements on the Website.

The Website collects the following data using a cookie when serving personalized ads:

  • IP Address
  • Operating System type
  • Operating System version
  • Device Type
  • Language of the website
  • Web browser type
  • Email (in hashed form)

Mediavine Partners (companies listed below with whom Mediavine shares data) may also use this data to link to other end user information the partner has independently collected to deliver targeted advertisements. Mediavine Partners may also separately collect data about end users from other sources, such as advertising IDs or pixels, and link that data to data collected from Mediavine publishers in order to provide interest-based advertising across your online experience, including devices, browsers and apps. This data includes usage data, cookie information, device information, information about interactions between users and advertisements and websites, geolocation data, traffic data, and information about a visitor's referral source to a particular website. Mediavine Partners may also create unique IDs to create audience segments, which are used to provide targeted advertising.

If you would like more information about this practice and to know your choices to opt-in or opt-out of this data collection, please visit National Advertising Initiative opt out page. You may also visit Digital Advertising Alliance website and Network Advertising Initiative website to learn more information about interest-based advertising. You may download the AppChoices app at Digital Advertising Alliance's AppChoices app to opt out in connection with mobile apps, or use the platform controls on your mobile device to opt out.

For specific information about Mediavine Partners, the data each collects and their data collection and privacy policies, please visit Mediavine Partners.

Advertising and analytics vendors may collect information such as your IP address, device and browser type, and interactions with ads, in accordance with their own privacy policies. We do not control these third-party cookies.

Some pages include links to products on Amazon. As an Amazon Associate, CycleCalcs earns from qualifying purchases. If you buy through one of these links, we may earn a small commission at no extra cost to you. These are ordinary text links. When you click one, Google Analytics records that a gear link was clicked, as it records page views; Amazon may set its own cookies once you arrive, and any data Amazon collects there is governed by Amazon's own privacy policy. Our picks are chosen on merit, not on commission. See our gear page for the full disclosure.

Analytics

We use Google Analytics 4 to see which pages are visited and how the site is used. Our setup asks it not to store cookies (its client_storage setting is none), but in our own testing it still writes two first-party cookies on this site, _ga and _ga_24CYGRFJBX. They hold a random identifier that lets Google Analytics tell a returning browser from a new one; they hold no name, email address or location. Google may process technical data such as your IP address (used briefly for approximate location, then discarded) and your browser and device type, in line with Google's privacy policy. We use this only in aggregate to improve the site, and we do not sell this analytics data. You can block or delete these cookies in your browser settings, or install Google's Analytics opt-out add-on; the site works the same either way.

Children's privacy

This site is intended for a general audience and is not directed to children under 13. We do not knowingly collect personal information from children.

Your choices

You can block or delete cookies through your browser settings and use the opt-out links above. Disabling cookies will not affect the calculators, which work without them.

Changes to this policy

We may update this Privacy Policy from time to time. Changes take effect when posted on this page, and the "last updated" date above will be revised.

Contact

This website is operated by CycleCalcs LLC, a limited liability company formed in the Commonwealth of Virginia, United States of America, which is the data controller for the limited processing described above. Questions about this policy? Email info@cyclecalcs.com.

This policy describes what this site actually does, and is kept in step with it. It is not legal advice.