SyncCal for Wix Bookings · One-Way Google Calendar Availability Sync

SyncCal Terms of Service

Effective Date: October 10, 2026  ·  Support & Legal Contact: seancg2.me@gmail.com

1. Agreement to Terms & Service Description

These Terms of Service (“Terms”) govern your access to and use of SyncCal (operated via the SyncWix synchronization service), a one-way staff availability synchronization utility for Wix Bookings merchants and their staff members. By installing, authorizing, or using SyncCal, you agree to be bound by these Terms and our Privacy Policy.

SyncCal connects a staff member’s Google Calendar in strictly read-only mode (https://www.googleapis.com/auth/calendar.readonly) to their assigned Wix Bookings staff schedule so that busy times on Google Calendar create, update, or cancel corresponding DEFAULT blocked-time events titled "Busy" on Wix Bookings. SyncCal never modifies, creates, or deletes events on Google Calendar.

2. Subscription Plans & Billing

SyncCal offers two recurring monthly subscription tiers billed through Wix App Market Billing:

  • SyncCal Starter (Wix Vendor Product ID: starter) — $9.00 USD / month: Supports up to 1 connected staff Google Calendar, automated background synchronization every 15 minutes, manual on-demand Sync Now triggers, and pre-write customer appointment conflict protection.
  • SyncCal Pro (Wix Vendor Product ID: pro) — $19.00 USD / month: Supports up to 10 connected staff Google Calendars, automated background synchronization every 5 minutes, manual on-demand Sync Now triggers, pre-write customer appointment conflict protection, and quarantine inspection and recovery controls.
  • Active Paid Subscription Requirement: Newly installed Wix app instances (APP_INSTALLED) start in an unpaid, inactive state (planTier: "CANCELLED", subscriptionStatus: "INACTIVE") until Wix confirms a paid subscription via a signed billing webhook (PLAN_PURCHASED, PAID_PLAN_PURCHASED, or INVOICE_PAID) or live verification against the Wix App Instance API (isFree === false). An active paid subscription is required to connect staff Google Calendars and run scheduled or manual synchronizations.
  • Payment Processing: Subscription fees, billing cycles, renewals, and applicable taxes are processed through Wix in accordance with the merchant’s agreement with Wix.

3. Plan Changes, Downgrades, Payment Failures & Cancellations

  • Plan Downgrades (Pro to Starter): If a merchant downgrades from SyncCal Pro (up to 10 staff calendars) to SyncCal Starter (up to 1 staff calendar) while more than one staff calendar is connected, SyncCal retains the primary active staff connection and automatically transitions any additional staff connections to status: "PAUSED" within the same database update. Paused connections do not execute background or manual syncs unless the merchant upgrades back to Pro or disconnects the primary calendar.
  • Failed Payments & Past-Due Accounts: If Wix notifies SyncCal of a payment failure or overdue invoice (PAYMENT_FAILED or INVOICE_PAST_DUE), the tenant’s subscription status transitions to PAST_DUE and calendar synchronization pauses until payment is restored.
  • Disconnecting a Staff Calendar: A merchant or staff member may disconnect a Google Calendar at any time in the SyncCal dashboard. Upon disconnect, SyncCal attempts best-effort token revocation with Google, immediately overwrites that connection’s stored Google token ciphertexts (encryptedAccessToken and encryptedRefreshToken) in Firestore with null (status: "PURGED"), and—if selected by the merchant—cancels future (or ongoing) SyncCal-owned DEFAULT blocked-time events on Wix Bookings that pass all six ownership invariant checks.
  • Subscription Cancellation & App Uninstallation: Merchants may cancel their subscription or uninstall SyncCal at any time via their Wix dashboard. When SyncCal receives a verified APP_REMOVED webhook from Wix, SyncCal marks the tenant UNINSTALLED, attempts best-effort Google token revocation, and overwrites stored Google and Wix token ciphertexts in Firestore with null (status: "PURGED"). As detailed in Section 7 of our Privacy Policy, non-secret metadata retained after disconnect or uninstall can be permanently deleted upon email request to seancg2.me@gmail.com.

4. Service Availability, Synchronization Behavior & Limitations

  • Polling Interval & Concurrency Locks: Background synchronization operates on a scheduled polling interval (every 15 minutes for Starter; every 5 minutes for Pro) or when manually triggered via Sync Now. SyncCal enforces short-lived per-connection concurrency locks (syncwix_connection_locks) so overlapping sync processes cannot run simultaneously for the same staff connection.
  • Pre-Write Customer Booking Conflict Protection: Before creating or moving a DEFAULT blocked-time slot on Wix, SyncCal queries Wix Calendar V3 and Wix Bookings V2 in that time window. If a confirmed customer appointment (APPOINTMENT, CLASS, or COURSE) already exists during that time window, SyncCal preserves the customer appointment untouched, skips creating or moving the blocked-time slot, and increments the connection’s protected conflict counter. SyncCal never cancels, reschedules, or modifies customer bookings; merchants remain solely responsible for contacting customers if a staff member becomes unavailable after a customer booking has already been confirmed.
  • Ownership Verification & Quarantine Safeguard: SyncCal only updates or cancels Wix events whose IDs are recorded in SyncCal’s Firestore ownership ledger and match six invariant fields (id, scheduleId, externalScheduleId, type === "DEFAULT", createdDate, and revision). If any invariant fails to match or an upstream API response is uncertain, SyncCal places the mapping into QUARANTINED status rather than modifying or deleting the Wix calendar event.
  • Upstream Platform Dependencies: SyncCal relies on the availability and API behavior of Google Calendar REST API v3, Wix Calendar V3 / Wix Bookings V2 APIs, and Google Cloud / Firebase infrastructure. Synchronization delays or interruptions may occur if upstream APIs experience downtime, rate limiting, or credential expiration.

5. Customer & Merchant Responsibilities

  • Staff Authorization: Merchants must ensure that each staff member whose Google Calendar is connected has authorized linking their calendar to the merchant’s Wix Bookings site.
  • Accurate Staff Schedule Mapping: Merchants are responsible for selecting the correct Wix Bookings staff resource when binding a Google Calendar connection and for maintaining accurate working hours and time zone settings in Wix Bookings.
  • Re-Authentication & Quarantine Review: If a connected Google account revokes access or its OAuth token expires (REAUTH_REQUIRED), or if an event mapping is placed in QUARANTINED status, the merchant or staff member must re-authenticate the calendar or review the quarantined item in the SyncCal dashboard to resume full synchronization.

6. Acceptable Use

You agree not to misuse SyncCal or attempt to: (a) circumvent tenant isolation checks, session token signatures, Wix instance verification, or webhook signature verification; (b) connect a Google Calendar without the authorization of the calendar account holder; (c) submit automated or abusive requests designed to exhaust Google, Wix, or SyncCal rate limits; or (d) reverse engineer or interfere with SyncCal’s synchronization locks or ownership ledger.

7. Warranties, Disclaimers & Limitation of Liability

Security & Compliance Accuracy: SyncCal implements the technical safeguards described in the Privacy Policy (including AES-256-GCM token encryption with HKDF-SHA256 key derivation and per-tenant AAD binding, PKCE S256 OAuth verification, and 6-invariant Wix event ownership checks), but does not claim independent third-party security certifications (such as SOC 2 or ISO 27001).

To the maximum extent permitted by applicable law, SyncCal is provided on an “AS IS” and “AS AVAILABLE” basis without warranties of any kind, whether express, implied, or statutory, including implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SyncCal does not warrant that synchronization will be uninterrupted or that scheduling conflicts cannot occur between polling intervals or during upstream Google or Wix API outages.

To the maximum extent permitted by law, SyncCal and its operator shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or for any loss of bookings, revenue, profits, or data arising out of or related to your use of the service. SyncCal’s total cumulative liability for all claims relating to the service shall not exceed the total subscription fees paid by you for SyncCal during the three (3) months immediately preceding the event giving rise to the claim.

8. Support, Governing Terms & Contact Information

We may update these Terms from time to time to reflect changes in SyncCal’s features, Wix or Google API requirements, or applicable laws, and will update the Effective Date at the top of this page when changes are published.

For technical support, billing questions, quarantine recovery assistance, or legal/privacy inquiries regarding SyncCal, please contact:

SyncCal Support & Legal Contact
Email: seancg2.me@gmail.com