Calendly alternative for HIPAA and patient scheduling

Calendly's customer terms bar protected health information from its service, so clinics need a booking system inside their own HIPAA-covered hosting. This page explains what that requires and how Easy!Appointments fits.

On this page

Why a Calendly alternative for HIPAA and patient scheduling starts with the customer terms

A clinic or health service whose patient booking runs on Calendly has a contract problem before it has a technical one. Section 13(d) of Calendly's customer terms requires the customer to warrant that Customer Data does not contain protected health information or information subject to HIPAA. The main open-source option for this use case is a self-hosted Easy!Appointments server running inside hosting that your organization controls and that is covered by a HIPAA-compliant arrangement. Moving to it does not make patient data acceptable by itself; it moves the question to your own environment, where you decide what is stored and who can reach it. HIPAA applies to covered entities (health plans, health care clearinghouses and covered health care providers) and to their business associates, for all electronic protected health information they create, receive, maintain or transmit. Whether a booking form counts as ePHI depends on what it asks and who links the answer to a patient. A name, a phone number and a reason for visit entered on a page run by a clinic are very likely ePHI. Confirm this with your privacy officer before you design the form, because the answer determines the rest of the project.

There is no HIPAA certification. HHS states that no Security Rule standard requires an entity to certify compliance, and that private certifications do not stop HHS from later finding a violation. The Office for Civil Rights enforces the rule through complaints, compliance reviews and audits. A self-hosted Easy!Appointments deployment is therefore a compliance-readiness exercise: you document safeguards, configure access controls, keep logs and test the result against the Security Rule standards in 45 CFR Part 164 Subpart C. Nothing in that work guarantees that an auditor or regulator will agree with your conclusions. Plan for the evidence you would need to show, and treat any vendor or integrator claim of "HIPAA compliant" status as a statement to verify, not a fact to accept.

What HIPAA requires of a patient scheduling system

A booking tool that touches patient names, appointment reasons or contact details is part of the electronic protected health information (ePHI) environment. The cards below set out the Security Rule scope, the safeguard structure, the access and logging controls, and the contract terms that a clinic should verify before any Calendly replacement goes live.

Scope over ePHI

The HIPAA Security Rule applies to covered entities and their business associates for all ePHI they create, receive, maintain or transmit. A booking form that collects a patient name next to a visit reason is ePHI, even if the form itself looks like a simple contact tool. Confirm which of your staff and systems are covered before you decide where the booking data lives. Treat every booking field as potential ePHI until your privacy officer rules otherwise.

Standards and implementation specifications

Appendix A to Subpart C groups 18 Security Rule standards across administrative, physical and technical safeguards, with 36 implementation specifications. Of those, 14 are required and 22 are addressable. Map each booking-tool control to a specific standard so that your risk analysis and policies show where the scheduler is covered. Ask your vendor or integrator for that mapping in writing.

Unique user identification

The technical safeguards in 45 CFR 164.312 require that each person using ePHI systems has a unique identifier, so that actions can be attributed to one person. For a scheduler, this means no shared front-desk login and no shared admin account. Check that each staff member has a named account and that account removal happens when someone leaves the practice.

Emergency access and automatic logoff

The emergency access procedure is a required specification. It means staff can still reach appointment records during an outage or incident. Automatic logoff is an addressable specification that ends idle sessions on shared reception screens. Addressable means you must assess whether the safeguard is reasonable and appropriate, then either implement it or document why an alternative is equivalent. It does not mean optional.

Encryption in transit and at rest

Encryption and decryption and encryption in transmission are addressable implementation specifications under 164.312. For a self-hosted Easy!Appointments server, this covers TLS on the booking page and database connections, plus encryption of the MySQL data and backups where your risk analysis calls for it. Record the method and key handling. Your documented decision is what an auditor will read.

Audit controls and activity review

Audit controls are a technical standard that requires mechanisms to record and examine activity in systems that contain ePHI. For a booking tool, you need logs of who viewed, changed or exported appointments, retained long enough for your review cycle. Calendly's own export and log features do not replace this, so decide where application and web server logs will be stored and who reviews them.

Business associate contract elements

Under 45 CFR 164.314(a)(2)(i), a business associate contract must require the associate to comply with the Security Rule, flow the same terms to subcontractors that handle ePHI, and report security incidents, including breaches of unsecured PHI. If a hosting provider or integrator touches booking data, it needs a signed agreement with these elements. Ask each party which business associate agreements it has signed and with whom.

Which open-source options can hold patient booking data

Calendly is not an option for patient booking data. Section 13(d) of its customer terms requires you to warrant that Customer Data does not contain protected health information or information subject to HIPAA. The service is designed for general business scheduling, so a clinic that places patient names, appointment reasons or intake answers in Calendly fields is in breach of those terms before any regulator becomes involved. Your control over the data is limited to the settings the vendor offers, and you cannot change where the data is hosted or how it is protected.

  • Contract exclusion: Section 13(d) bars protected health information from the service, so no business associate arrangement can be used to bring it in.
  • Limited control: You cannot choose the hosting location, the encryption configuration or the logging architecture for a hosted account.
  • Form fields: Booking pages collect invitee names, emails and questions by default, so staff must keep clinical detail out of every field.
  • Exit cost: Historical bookings already stored in the account remain on the vendor side until you export or delete them.

Before relying on this option for anything near patient care, confirm the current wording of the customer terms with Calendly in writing and review the data export options in your own environment.

How to deploy Easy!Appointments inside HIPAA-covered hosting

This sequence moves Easy!Appointments from a signed hosting contract to a tested booking form running on servers your organization controls, with access, logging and backup evidence in place before any patient data arrives.

  1. Confirm the hosting agreement covers ePHI

    Before any installation, the compliance lead confirms in writing that the hosting provider will sign a business associate agreement and that the service is in scope for electronic protected health information. The agreement should require the provider to comply with the Security Rule, flow the same terms to its own subcontractors and report security incidents to you, as 45 CFR 164.314 describes for business associate contracts. Ask the provider which of its services are covered and which are excluded. The output is a countersigned agreement and a scope note saved with your compliance records.

  2. Build the PHP and MySQL stack in a controlled environment

    The infrastructure team provisions a server or container in the covered environment with PHP 8.2 or later, a MySQL database and Apache or Nginx, as Easy!Appointments requires. Limit network access so the database accepts connections only from the application host, and place the web server behind your standard perimeter controls. Record the versions, host names and network rules in your configuration inventory. The check is that the stack starts, the database accepts a local connection and no database port is reachable from outside the environment.

  3. Create the database and copy the application files

    The administrator creates a dedicated MySQL database and a database user limited to that schema, then copies the Easy!Appointments files to the web root from the official repository release that matches your change record. Do not reuse credentials from other systems. Store the database password in your approved secrets store rather than in a shared document. The check is that the application directory contains the expected files and the database user can log in but cannot access other schemas.

  4. Edit the configuration file and open the install URL

    The administrator edits the configuration file with the database host, name, user and password, then opens the install URL in a browser to complete setup. Set the base URL to the HTTPS address patients will use. After installation, the administrator removes or restricts any installation path so it cannot be run again by someone else. The output is a working login page on the internal address, with the installer no longer reachable.

  5. Restrict admin access and enable TLS

    Limit administrative logins to named staff accounts, assign roles so front-desk users see only the providers and services they need, and require strong passwords. Restrict the admin path at the web server to your staff network or a VPN with multi-factor authentication, as the CNIL's 2026 decision on a patient record system emphasized for external access. Issue a valid certificate and redirect all HTTP traffic to HTTPS. The check is that the admin page refuses connections from an outside network and that the public booking page loads only over TLS.

  6. Configure logs and backups

    Enable web server access and error logs and application logs, then forward them to your central log store with retention set by your records policy. Schedule encrypted database and file backups, store copies outside the application host and test a restore into a separate database. Confirm with your provider how backups are encrypted and who can read them. The output is a restore test record showing that a booking survived the restore and that log entries are arriving in the central store.

  7. Test booking forms against a minimum data set

    Before go-live, the project team builds each booking form with only the fields needed to schedule the visit, such as name, contact method, provider and time, and removes any question that asks for diagnoses or clinical history. Test with dummy records, confirm reminders and confirmations contain no clinical detail, and verify that a staff account cannot see bookings for providers outside its role. Check whether any Google Calendar sync sends event titles that include patient information. Record the test results and the approved field list.

  8. Record upgrades in a change record

    Each upgrade, including the 1.6.0 release published on May 27, 2026, follows a written change record that names the version, the test environment result, the backup taken before the change and the person who approved it. Review the release notes for changes to the booking form or database schema before applying them, and retest the minimum data set afterward. Track version 1.6.1, which is in beta, the same way until your team decides whether to adopt it. The output is a dated change log that auditors can trace from configuration to release.

What booking forms may collect and what they should leave out

The form fields define your ePHI footprint more than the software does. A booking record that holds a name, phone number, email address, service type and provider can become electronic protected health information as soon as it is linked to a patient visit, because the fact that a named person is seeing a named clinician for a specific service is itself health information. Treat every field in an Easy!Appointments booking form as in scope for the Security Rule until your analysis shows otherwise. Start by listing each field, the service it maps to and the systems that receive it, including reminder emails, the calendar sync to Google Calendar and any database export.

Apply minimum necessary collection to the form itself. Ask only for the contact details needed to confirm and reschedule an appointment, use generic service names where a specific diagnosis or procedure would otherwise appear, and do not provide a free-text box that invites clinical reasons for the visit. Intake questionnaires, medical history, insurance details and symptom descriptions belong in a separate, access-controlled clinical system, not in the scheduler. Confirm with the service's owner which fields a patient must complete before the visit and which can be collected later, and document that decision. Decide these questions with your privacy counsel and compliance lead, because the answer depends on your covered entity or business associate status and on any state or national rules that apply to you.

Access control matters as much as field design. The CNIL fine of EUR 500,000 against Hopital Prive de la Loire on 3 September 2026 under GDPR Articles 32 and 34 found that external access to patient records lacked VPN and multi-factor authentication, and that access rights ignored the care team's need to know. The lesson for a scheduler is that staff who manage bookings should see only the scheduling fields they need, not the full patient record, and that remote administration of the server must sit behind strong authentication. Before go-live, review who holds administrator and provider roles in Easy!Appointments and confirm that the database and any API credentials are reachable only from approved networks.

Access controls and logs the scheduler needs

The technical safeguards in 45 CFR 164.312 are the controls a booking system holding patient names, contact details and appointment reasons must answer for. Each card below ties one safeguard to a decision you make when you deploy Easy!Appointments, and to a question to put to the vendor and your hosting team.

Unique user identification for staff

Unique user identification is a required implementation specification under 164.312(a)(2)(i). Every receptionist, clinician and administrator needs an individual login to the Easy!Appointments back end, with no shared front-desk account, so that each change to a booking can be traced to a person. Confirm whether the application enforces unique usernames and how accounts are deactivated when staff leave, since Easy!Appointments user management should be checked against your own joiner and leaver process.

Emergency access procedure

Emergency access procedure is a required specification under 164.312(a)(2)(ii). Your written procedure should name who can reach the scheduler database and application server when the usual administrator is unavailable, how that access is granted, and how it is reviewed afterward. Store break-glass credentials in a sealed, access-logged location, and test the procedure on a schedule rather than only documenting it.

Automatic logoff

Automatic logoff is an addressable specification under 164.312(a)(2)(iii), so you decide whether it applies and document the choice. Staff sessions on shared reception computers are the usual exposure. Check the session timeout the application enforces, confirm that it applies to the admin area as well as the booking calendar, and record the value you set and why.

Encryption in transit and at rest

Encryption is addressable under 164.312(a)(2)(iv) and 164.312(e)(2)(ii), which means you must either implement it or document an equivalent measure. Serve the booking page and admin login over TLS only, and confirm that MySQL connections and database backups are encrypted at rest on your hosting platform. Ask your hosting provider for the key management model, because the application cannot supply it.

Audit logging of record access

Audit controls under 164.312(b) require mechanisms that record and examine activity in systems holding ePHI. Easy!Appointments has no audit trail that you should assume is complete, so confirm what the application logs natively, such as which user created, changed or viewed an appointment and when. Where it does not, plan web server, database and authentication logs, forwarded to storage that administrators cannot edit.

Admin role separation

Separating the administrator who configures services and providers from the staff who view bookings limits how far any one account can reach patient records. Map each role in the application to the minimum it needs, and confirm whether the built-in roles let you restrict who can export appointment data or change integrations. Review role assignments on a set schedule and keep the list with your risk documentation.

VPN and MFA for remote staff

Remote access to the scheduler's admin area should pass through a VPN or equivalent gateway with multi-factor authentication before any login page loads. The CNIL's September 2026 decision against a French hospital cited external access to a patient record system that lacked VPN and multi-factor authentication, a pattern that applies directly to clinic booking systems. Confirm whether Easy!Appointments supports MFA natively or whether it must sit behind your identity provider.

Who signs the business associate agreements

The covered entity signs the business associate contract, and that contract travels down the chain. Under 45 CFR 164.314(a)(2)(i), the business associate must comply with the Security Rule, flow the same terms down to any subcontractor that handles ePHI, and report security incidents, including breaches of unsecured PHI, to the covered entity. For a clinic running Easy!Appointments, the parties that may touch ePHI include the hosting provider, any managed service or backup provider, and DeployOpen if it installs, configures or operates the system. Each of them needs a written contract with the clinic, and each subcontractor that stores or accesses the data needs the same terms from the party above it. Ask every vendor for its BAA template and confirm that its subcontractor list is current.

Easy!Appointments has no vendor BAA because it is GPL software, not a hosted service. The code is licensed under GPL v3.0 and the project does not sign agreements with the clinics that use it. The BAA therefore sits with whoever hosts or operates the instance: the infrastructure provider in a HIPAA-eligible environment, and any implementation or support firm with administrative access. Calendly cannot serve as the BAA route for the same reason its customer terms matter: under Section 13(d), the customer warrants that Customer Data does not contain protected health information, so no clinic can rely on Calendly to hold patient data under a BAA. Confirm with your counsel that no booking flow in your current Calendly setup has already sent PHI to Calendly.

Plan for incident reporting before go-live, because the contract sets the clock. The business associate must report security incidents, including breaches of unsecured PHI, to the covered entity, and the contract should name the channel, the contact and the time frame the parties agreed to. Write these into the operating runbook: who reviews server and database logs, who decides whether an event is reportable, and who notifies the clinic's privacy officer. The HHS Office for Civil Rights enforces the rule through complaints, compliance reviews and audits, and no certification substitutes for a signed BAA and documented incident handling.

Evidence a HIPAA reviewer or auditor will ask for

No HIPAA certificate exists, so a reviewer judges your Easy!Appointments deployment by the records you can produce. The cards below are the documents and test results that tie the install, its access and its vendor relationships back to the Security Rule.

Signed business associate agreements

Each vendor that creates, receives, maintains or transmits ePHI for you needs a business associate contract. Under 45 CFR 164.314 it must require Security Rule compliance, flow the same terms to subcontractors handling ePHI, and report security incidents, including breaches of unsecured PHI. Map every hop: hosting provider, backup provider, email or SMS sender, and any implementation partner with administrative access. Confirm in writing which parties will sign, since a self-hosted install does not remove the need for these agreements.

Risk analysis and risk management record

A documented, accurate and thorough assessment of risks to ePHI is the starting point for the administrative safeguards in Appendix A to Subpart C. For this deployment, list the booking form fields, the MySQL database, the web server, the Google Calendar credentials and the backup copies as assets. Record the threat, the likelihood and impact you assessed, and the decision taken for each. Refresh it when the install is upgraded or the intake form changes.

Configuration records for the install

Keep a dated record of the PHP and MySQL versions, the web server configuration, TLS settings, the database account privileges and where the configuration file sits on disk. Note how encryption at rest and in transit is handled, since both encryption specifications are addressable and require a documented decision. Record the Easy!Appointments version you run, because upgrades change the attack surface and must be tracked like any other change.

Access review logs and unique user records

Unique user identification is a required technical safeguard, so every staff login to the scheduler should trace to one person, with no shared front-desk account. Export the user list on a schedule, compare it with current staff, and record each removal. Pair this with the web server and database access logs so a reviewer can see who viewed or changed appointment records, and when. Reviewing these logs is what the Hopital Prive de la Loire case suggests regulators will test.

Backup and restore test results

A backup that has never been restored is not evidence of recoverability. Keep the backup schedule, the encryption and access controls on backup copies, and a dated log of restore tests into a separate environment. Record the recovery point you achieved and any gaps found. Confirm where backups are stored and whether they fall under the same business associate agreements as the live database.

Incident response and workforce training records

Keep a written incident response procedure that names who decides whether an event is a breach, how the covered entity is notified, and how the business associate contract timeline is met. Add training attendance records for everyone who administers or uses the scheduler, with dates and topics. Test the procedure with a tabletop exercise and file the outcome. HITRUST is a voluntary framework that some organizations use to structure these controls, and it is not a HIPAA requirement, so confirm with your counsel whether it fits your needs.

Questions clinics ask before running patient scheduling on their own servers

Is Easy!Appointments HIPAA compliant out of the box?

No. Easy!Appointments is open-source software, and HIPAA obligations apply to the covered entity or business associate that creates, receives, maintains or transmits electronic protected health information. Compliance depends on how the software is hosted, configured and operated: encryption in transit and at rest, unique user identification, access control, audit logging, backups, workforce training and a documented risk analysis. There is no HIPAA certification to buy. Confirm with your privacy and security officers which safeguards your environment must meet, and check the Easy!Appointments GitHub repository for the current release before you deploy.

What does a patient scheduling deployment cost, and what drives it?

Easy!Appointments is free, with no recurring fees or booking commissions. The costs come from the work around it: the server or cloud environment in your HIPAA-covered hosting, staff time to operate it, the risk analysis and hardening, and any custom development. The Easy!Appointments website says its author sells Premium Services for installation, upgrades, migration, support and customization, so those fees are the vendor-side line items. Installation and customization scope, hosting choice, the number of integrations (SMS, reminders, payments, reports) and the amount of ongoing support all move the total. Ask any provider for a fixed-scope quote that lists each deliverable separately, and ask who signs the business associate agreement for each component.

How long does it take to move patient booking onto our own servers?

The duration depends on your current booking workflow, the number of services and providers, how many integrations you need and how much compliance evidence your assessors expect. A simple booking page on an existing, managed PHP and MySQL environment is not the same project as a migration with custom reminders, identity integration and documented controls. No timeline is fixed in advance. Ask for a time estimate as part of the written scope, with milestones for hosting setup, configuration, testing, data migration and cutover, and confirm which items depend on your own teams or third parties.

Can our IT staff run Easy!Appointments themselves?

Yes, for basic installation, if your team has PHP and MySQL skills. The installation steps are to create a database, copy the files, edit the configuration file and open the install URL. Running it for patient data is a different task. Business associate agreements, the HIPAA risk analysis, hardening of the web server and database, encryption configuration, log review and incident response require specialists or experienced security staff. Many clinics keep operations in-house and buy implementation, hardening and compliance readiness support as a fixed-scope engagement. DeployOpen plans, implements, hardens, backs up and documents self-hosted platforms in your own infrastructure, and prepares evidence for compliance assessments, but it does not issue audit reports or certifications.

Can Easy!Appointments send SMS appointment reminders?

Not as a standard feature. The Easy!Appointments website says custom development can add SMS, payments, reports, reminders and third-party integrations. Before you commit, confirm with your SMS provider that it will sign a business associate agreement if messages contain protected health information, and decide what the message may say. Many clinics send only a generic reminder with a secure link, which keeps clinical details out of the text. Ask the developer to document where message content and phone numbers are stored, how long they are retained and how delivery failures are logged.

Does exporting our Calendly data move patient information with it?

Confirm it before you assume either way. Section 13(d) of Calendly's customer terms requires the customer to warrant that Customer Data does not contain protected health information or information subject to HIPAA. If your team used booking forms or invitee questions to collect health details, that data may exist in Calendly's exports, webhooks or API responses despite the terms. Review your event types, custom questions and meeting history with your privacy officer, identify any protected health information, and decide whether it must be migrated, minimized or removed. Keep the review record, since it becomes part of your evidence of how patient data was handled.

Which booking form fields are safe to collect on a self-hosted scheduler?

Collect only what the appointment needs. A scheduling form that asks for a name, a contact method and a service type creates far less risk than one that asks for symptoms, diagnoses or insurance details. The HIPAA Security Rule applies to all electronic protected health information your organization handles, so any field that links a person to a care relationship may count as such information. Document the field list, restrict who can view and export it, and turn off any free-text fields that invite clinical detail. Your risk analysis should cover each field and each integration that receives it.

How DeployOpen approaches a HIPAA-scoped scheduling deployment

DeployOpen is a Chainscore Labs company. We plan, implement, harden, back up, document and support self-hosted platforms inside the client's own infrastructure, which for a clinic means its own cloud account, data center or private network. For a HIPAA-scoped Easy!Appointments deployment, that work typically covers the PHP and MySQL hosting, the web server and TLS configuration, the separation of the booking form from the internal provider calendar, backup and restore testing, and the written procedures the covered entity and its business associates will rely on. Engagements are fixed-scope, so the systems, configuration baselines, deliverables and timelines are agreed in writing before work starts, and the covered entity can check each deliverable against that document.

DeployOpen prepares systems, controls and evidence for compliance assessments. We do not issue audit reports, attestations or certifications, and there is no HIPAA certification to obtain. Whether the deployment meets the Security Rule, and whether the business associate contracts are sufficient, is decided by the covered entity with its counsel and any independent assessor it chooses. Ask any implementation partner, including us, to state this boundary in the statement of work. Before scoping, confirm with your privacy officer which booking fields will be treated as ePHI, since that determines which safeguards and agreements apply.

Security testing of the public booking form, its API surface and the underlying hosting is available as a separate fixed-scope engagement, and ongoing support, upgrades and continuous testing can be covered by a retainer. A quote follows from the written scope, so the inputs that move it are the number of environments, the integrations you need (for example, SMS reminders or payment handling), the hosting model and the level of ongoing support you want. Ask for each of these items to be listed as its own deliverable so you can see what is one-time work and what recurs.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.