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, orINVOICE_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_FAILEDorINVOICE_PAST_DUE), the tenant’s subscription status transitions toPAST_DUEand 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
(
encryptedAccessTokenandencryptedRefreshToken) in Firestore withnull(status: "PURGED"), and—if selected by the merchant—cancels future (or ongoing) SyncCal-ownedDEFAULTblocked-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_REMOVEDwebhook from Wix, SyncCal marks the tenantUNINSTALLED, attempts best-effort Google token revocation, and overwrites stored Google and Wix token ciphertexts in Firestore withnull(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
DEFAULTblocked-time slot on Wix, SyncCal queries Wix Calendar V3 and Wix Bookings V2 in that time window. If a confirmed customer appointment (APPOINTMENT,CLASS, orCOURSE) 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, andrevision). If any invariant fails to match or an upstream API response is uncertain, SyncCal places the mapping intoQUARANTINEDstatus 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 inQUARANTINEDstatus, 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