# OpenCalendar > OpenCalendar is a calendar and scheduling app that runs in the browser at https://opencalendar.me/app/. It shows calendars from files and followed addresses in one view and makes scheduling links, for one host or a group, that offer only times that are really free and show each time in the guest's time zone and the host's. No server computes availability, takes a booking or keeps a calendar. It is free, needs no account, and is licensed MIT or Apache-2.0. It carries an optional account shared with our other apps, which unlocks nothing in it. ## Pages - [Home](https://opencalendar.me/): what it does, how a booking works, privacy, pricing and FAQ - [The app](https://opencalendar.me/app/): the calendar, scheduling links, polls and sharing - [Documentation](https://opencalendar.me/docs.html): connecting calendars, the scheduling link, the relay, agents, running your own helper - [Support](https://opencalendar.me/support.html): contact and common problems - [For IT administrators](https://opencalendar.me/admins.html): permissions requested from Google Workspace and Microsoft 365, and where data goes - [Privacy policy](https://opencalendar.me/privacy.html): what stays in the browser, what is left sealed on the relay, Google and Microsoft data - [Terms of service](https://opencalendar.me/terms.html) ## What is true today - Calendar: day, week, month and agenda views; events made, changed and deleted; repeating events; typed quick add. - Files: .ics, .vcs and .ifb opened by picker or drag and drop; export per calendar; invitations answered with a reply file. Installed as a web app in Chrome or Edge it can open calendar files from the computer. - Followed calendars: a webcal: or https: address, refreshed at most hourly. - Time zones: any number of zone gutters beside the grid, world clocks, markers on days a shown zone changes its clocks, and a meeting planner. Times come from the IANA time-zone database built into the app. - Scheduling links: durations, weekly hours, notice, gaps, caps, questions, a standing meeting link. Slots are computed in the guest's browser and shown in both zones. A claim on a slot stops double booking while the host is offline. The guest gets a private status link to move or cancel. - Confirming: automatically, on request, or automatically while the host's calendar was read recently. - Group links: several hosts by public key; everyone free, or any one (round-robin); each host publishes only their own busy times. - Meeting polls: propose times, send one link, people answer yes, maybe or no in their own zone. - Shared calendars: share by public key at three levels (busy only, read, write); events are encrypted before they leave the device. - Languages: English, Simplified Chinese, Traditional Chinese, Japanese, Korean, German, Spanish, Portuguese. - Google Calendar: built, awaiting Google's approval; not available yet. - Microsoft Outlook and Microsoft 365: built, awaiting registration with Microsoft; not available yet. - iCloud and other CalDAV servers: built; not available yet. In a browser it needs the helper, which is not running yet, and it has been tested against a CalDAV server of another make, not against iCloud or Fastmail themselves. - Desktop app: being built; not available yet. - Meeting links: a standing Zoom, Google Meet, Microsoft Teams or Tencent Meeting room link pasted once. A fresh Meet or Teams link per booking comes with a connected Google or Microsoft calendar. There is no Zoom integration. - Notifications: none by email or push from OpenCalendar; bookings appear in the app while it is open. - Account: optional. A round button at the top right of the app opens an account page: one sign-in shared by our apps (Google, OpenWallet ID, a crypto wallet or a Nostr key) with a balance of credits. It unlocks nothing in OpenCalendar and nothing in OpenCalendar costs credits. Booking, status and poll pages never show it or ask anyone to sign in. ## For agents `opencalendar` is the same scheduling core as a local program and an MCP server (`opencalendar mcp`, over stdin and stdout). Eight tools: `link_info`, `find_times`, `propose_booking`, `booking_status`, `reschedule_booking`, `cancel_booking`, `read_calendar_file`, `free_time`. Every time carries its UTC offset and a time without one is refused. Anything that publishes takes `dry_run`; booking takes an `idempotency_key`. It holds no key of the person's: it books with a key made for that booking. It builds from source with Cargo (the public repository is not open yet). There is no hosted MCP endpoint. ## How data is handled - Calendars, events, attachments, links, bookings, sign-in tokens and the user's key are kept in the user's browser. - A scheduling link's page and the host's busy times (start and end only, no titles) are encrypted in the browser and stored on a relay. The key is in the link's fragment and is never sent to a server. - A booking request (name, email, answers) is encrypted to the host's key. - The relay sees ciphertext, sizes, timing, signing public keys and network addresses. It cannot read pages, busy times or bookings. - A stateless helper fetches calendar addresses that block web pages and completes Google sign-in; it stores and logs nothing. - The optional account's server holds the identity a person signed in with, a credit balance with its purchases and spending, and a record of sessions. It is sent no calendar, event, link, booking or calendar key. It can be deleted from the account page. - OpenCalendar's use of information received from Google APIs will adhere to Google API Services User Data Policy, including the Limited Use requirements. Contact: no address is published yet. See https://opencalendar.me/support.html