hash-calendar logo hash-calendar

Frequently Asked Questions

Quick answers to common questions about hash-calendar.

General

What is hash-calendar?

hash-calendar is a privacy-first, client-only calendar that stores all data in the URL hash. There are no accounts, no servers, and no databases — your browser is your save file.

Do I need to create an account?

No. hash-calendar works entirely without accounts. Your calendar state lives in the URL, so anyone with the link can view it. No sign-up, no login.

Is hash-calendar free?

Yes, hash-calendar is completely free and open-source under the MIT license.

Does it work offline?

hash-calendar is a static web app. Once the page is loaded, most features work without an active internet connection. However you need internet to initially load the page and to share links externally.

Sharing & Links

How do I share my calendar?

Click Copy link in the sidebar to copy the full URL. Anyone who opens that link will see exactly the same calendar. You can also use Share QR to show a QR code for mobile.

Can I protect shared links with a password?

Yes. Click Lock to encrypt your calendar data with a password. The recipient will need the exact same password to unlock and view the calendar.

What does "Read only" do?

When Read only is turned on, the interface hides editing controls. This is useful when sharing a calendar link — recipients can view but not accidentally edit events.

My URL is very long — is that a problem?

Long URLs may cause issues with some messaging apps or browsers. To reduce URL length:

  • Remove old or unnecessary events.
  • Use shorter event titles.
  • Export your data as JSON for backup and start fresh.

The sidebar shows the current URL length so you can monitor it.

Data & Privacy

Where is my data stored?

All calendar data is encoded in the URL hash (#...). It is processed entirely in your browser. There is no server-side database and no account system.

Does hash-calendar use cookies or tracking?

The app loads Google Analytics (GA4) for basic usage metrics, but it is configured to exclude the URL hash from page URLs to prevent leaking your calendar data. No calendar content leaves your browser via analytics. See our privacy policy for details.

Is the URL hash sent to the server?

No. By web standards, the hash fragment (#...) is never included in HTTP requests. It stays in your browser. Only if you explicitly share or paste the full URL will others see the hash.

Can I delete all my data?

Click Clear calendar in the Danger Zone section. This removes all events and resets the URL. Since there is no backend, clearing the browser URL is all it takes.

Import & Export

How do I export my calendar?

Click Export JSON in the sidebar to download a JSON snapshot of your current calendar. You can also click View JSON to see and copy the raw data.

Can I import an .ics file?

Yes. Click Import .ics and select a valid .ics calendar file from your device. The events will be added to your current calendar.

What is the JSON bridge?

The JSON bridge is a utility page that accepts a JSON payload via a URL query parameter and converts it into a compressed calendar hash URL. It's useful for programmatic integrations.

Troubleshooting

My shared link opens a blank calendar

Make sure the full URL including the hash (#...) was copied. Some messaging apps strip long URLs or cut off the hash fragment. Try pasting the link into a browser address bar directly.

Password-protected link won't unlock

Encrypted links are case-sensitive. Double-check the exact password including capitalization. There is no password recovery — if the password is lost, the encrypted data cannot be accessed.

Notifications don't appear

Browser notifications require explicit permission. Check that:

  • You've enabled notifications for this site in browser settings.
  • The Notifications toggle is set to On.
  • Your operating system allows browser notifications.
The ICS import adds no events

Ensure the file is a valid .ics calendar file and is not empty. Some exported .ics files may use formats that hash-calendar does not fully support yet.

💬
Still have a question? Open an issue on GitHub or check the help guide.