Last reviewed 23 September 2026.
The short version: we never see a card number, each workspace's data sits in its own database rather than a shared table, and you can take your bookings and contacts out on any plan. What follows is the longer version, including what we do not claim.
If you have found a security problem, the page you want is reporting a vulnerability, which carries our severity definitions, patch timelines and safe-harbour commitment.
Card numbers are entered in the payment provider's own fields and never reach Calemander; we store the payment status and the provider's reference identifiers. That is true of a card held on file too — what is saved is a token at the provider, not a number here.
Money your clients pay you goes to your own account with the payment provider you connected. We do not hold it.
A workspace's scheduling data — event types, availability, bookings, contacts, the answers your clients give — lives in a per-workspace database, not in shared tables separated by a customer column. One tenant's queries cannot reach another's rows, because they are not in the same place.
Everything runs on Cloudflare infrastructure and is encrypted at rest by the platform, with TLS in transit. Third-party credentials get a second layer of application-level encryption on top of that, so they are not readable from a database dump alone. What that means in detail is in encryption below.
In transit. Every connection to Calemander is HTTPS, terminated by Cloudflare. There is no plain-HTTP listener to fall back to, on any hostname we serve, including a customer's own booking domain.
At rest, by the platform. Cloudflare encrypts what it stores for us — the per-workspace databases, the control-plane database, the key-value namespaces and the file storage. That layer is Cloudflare's and we did not build it.
At rest, by us, on top of that. Five kinds of credential get a second layer we control — AES-256-GCM with a 256-bit key that exists only as a worker secret, never in the codebase and never in a database: CalDAV app passwords, the Calendly token, the Square connection, the LawPay merchant secret key, and both halves of a Clio connection. For those five, a copy of the database on its own does not yield a usable credential. Google, Outlook and Zoom refresh tokens are stored as text in your own workspace's database, protected by Cloudflare's encryption at rest and the per-workspace isolation above, and by nothing further of ours.
Identifiers that only name something — a merchant id, a Clio region, a calendar id — stay unencrypted deliberately, so that a settings page or a webhook route never has to hold a decryption key to do its job.
Calemander does not store card numbers, meeting recordings, meeting content, participant lists, or chat and contacts from a conferencing provider.
We do not offer a choice of region, and we are not going to claim your data stays in one country when it does not. Here is the actual picture.
Countries involved on the ordinary path, then: the United States and the Czech Republic, plus whichever Cloudflare data centre serves a given request. Providers you connect yourself add their own, and their own published lists are the authority on that. If your regulator, your bar association or your client requires data to stay in one jurisdiction, tell us at support@calemander.com before you sign up, because today we cannot promise it.
For data about you, the host, Calemander is the controller. For data about the people who book you, your workspace is the controller and Calemander is the processor acting on your instructions. That matters in practice: if one of your clients asks us to delete their details, we route the request to you.
Support for Calemander, including anything about a connected integration such as Clio, LawPay, Stripe, Square, Google or Zoom, is ours and reaches us at support@calemander.com. We do not redirect customers to a partner's support desk. Security reports go to the separate address on the vulnerability disclosure page.
| Subprocessor | Purpose |
|---|---|
| Cloudflare | Hosting, compute, storage, DNS, backup email route |
| Emailit | Transactional email delivery, the default sender |
| Telnyx | SMS reminders, only when a host enables them, and a backup route for our email |
| Resend | Email sent from a workspace's own verified sending domain |
| Stripe | Subscription billing, and client payments for hosts who connect Stripe |
| Square | Client payments and saved cards for hosts who connect Square |
| LawPay (8am) | Client payments for law firms who connect LawPay |
Calendar and conferencing providers — Google, Microsoft, Zoom, Apple and Fastmail over CalDAV, Calendly — are connected by your own authorization and act on your behalf rather than as our subprocessors.
Clio is in that second group. The distinction is worth stating plainly, because it decides who answers to whom. A subprocessor is a company we chose, that we instruct, and that we are answerable to you for. An integration party is a company you chose and already have your own agreement with; we hold the authorization you granted and write to it on your instruction, and you can revoke that authorization at your end or ours at any moment. Your Clio data is governed by your agreement with Clio, not by this page.
LawPay appears in the table above rather than here, alongside Stripe and Square. It is a payment provider you connect to your own merchant account, so it is an integration party in spirit — but money is the one place where listing more than strictly required is the right error to make, and the other two payment providers have always been listed.
If we add a provider that every workspace uses, we email workspace owners before it goes live and note the change on the privacy policy, where the full list lives with the data each provider handles.
Access to production data is limited to the operator of the service, through credentialed tooling, and is used only for support and incident response. There is no standing administrative console that browses customer bookings; the operational dashboards we do keep see counts and internal identifiers, never names, email addresses or phone numbers.
The Cloudflare account that runs the service, its databases and its secrets, and the GitHub account that holds the source code, both require multi-factor authentication to sign in. We do not publish a claim about every other account we hold; the ones we have verified are the ones we name.
Production secrets live as encrypted platform secrets and are not readable from the codebase, from a deployed bundle, or from a development machine's source tree. The automated tooling used in development is explicitly prohibited from reading credential files, and that prohibition is written into the instructions those tools run under rather than left to habit.
Signing in to Calemander never involves a password, and the emailed one-time link keeps working whichever way you sign in. Passkeys are an optional alternative and are not enforced — nobody has to add one. A passkey is phishing-resistant: your device will only use it on calemander.com and your workspace's address, so a look-alike site cannot ask for it. We store only its public key, which cannot sign anyone in on its own, and we refuse a passkey sign-in unless your device confirmed it was you with a fingerprint, face or device PIN.
Inside your own workspace, a member is either an admin or a member. There is no finer permission model yet, so a member can see the workspace's bookings. If you need a role that can take bookings but not read the rest, we do not have one today.
Every request writes one structured line — route, method, outcome, timing, the data centre that served it and the deployed version — kept for Cloudflare's default retention on this plan, which we have not extended. Longer-lived operational metrics are kept as counters for three months: request timing, message and email volume, workspace counts, integration failures.
Those records carry no personal data, on purpose. A recipient's email address never reaches them at all, and a phone number is reduced to its country calling code before it does. Where a record needs to name a workspace or a member it uses an opaque internal identifier. This is a deliberate constraint rather than an accident of design: these counters cannot be edited or deleted row by row, so anything personal written into one could not be taken out again.
Application error logs can contain a booking identifier or an error message returned by a provider. They are kept for the same short operational window and are not used for anything but fixing what went wrong.
We run no backup process of our own, and the honest reason is that Cloudflare's is better than one we would write. Every per-workspace database supports point-in-time recovery to any moment in the previous 30 days, and so does the control-plane database that maps hostnames to workspaces. Recovery is per workspace, so restoring one customer does not disturb anyone else.
What that does not give you is a copy of your data in your own hands, which is a different need and one you should not depend on us for. Bookings and contacts export to CSV from the dashboard on every plan, including the free one, and exporting regularly is a reasonable thing to do.
The service itself has no failover to a second provider. If Cloudflare is down, Calemander is down, and we would rather say that than imply a resilience we have not built.
A suspected incident is triaged immediately: scope established, affected credentials rotated, the vulnerability fixed and deployed, and affected customers notified where their data may have been exposed. Where a fix will take longer than the exposure can be tolerated, the affected feature is turned off first and repaired afterwards.
Notification. When we confirm that customer data was exposed, we email the affected workspace owners without undue delay, and within any period a law we are subject to requires, with what we know at that point rather than waiting for a complete account. The notice says what was reachable, for how long, whether we can tell if anyone reached it, and what we have done. Where the people who book you are affected, you hold that relationship and we give you what you need to tell them.
To report a vulnerability, please use the disclosure process, which sets out scope, severity definitions, patch timelines and our safe-harbour commitment. Anything else goes to support@calemander.com.
Plenty of pages like this one imply more than the company has done, so here is the rest of it plainly. Calemander does not hold a SOC 2 report and has not been through a compliance audit. We do not claim GDPR compliance. We do not offer a Data Processing Agreement yet; it is in preparation, and will be published before general availability. We do not offer a choice of data residency — see where data is processed for what that means concretely.
We have not commissioned a third-party penetration test. We do not run a bug bounty. There is no 24-hour on-call rota and no security team: Calemander is a very small company, and the commitments on this page and on the disclosure page are sized to be ones it can actually keep.
If any of those is a requirement for you, say so at support@calemander.com and we will tell you honestly where it stands rather than where we would like it to be.
See also the privacy policy, the terms of service, and reporting a vulnerability.