Booking infrastructure for service businesses.
REST API · TypeScript SDK · Open-source templates · AI agent skills · Shopify app
Opencals is a booking and service-commerce platform that ships as two things at once:
- A managed SaaS — staff dashboard, customer-facing booking storefront, Shopify integration, Stripe payments, and multi-location scheduling for service businesses (salons, fitness studios, clinics, rental shops).
- Headless booking infrastructure — a public Storefront REST API, a typed TypeScript SDK, open-source Next.js templates, and AI agent skills that let developers (and their AI coding tools) build fully custom booking experiences on top of the same engine.
Base URL: https://api.opencals.com · Auth: Authorization: Bearer sfk_…
npm install @opencals/storefront-sdkimport { setupOpencals, ProductService } from "@opencals/storefront-sdk";
// Call once at app startup — configures the global client
setupOpencals({ apiKey: "sfk_your_api_key" });
// List bookable services
const { data: products } = await ProductService.list({ query: { take: 50 } });
// Get real-time availability for a service
const { data: slots } = await ProductService.getCurrentAvailabilities({
path: { productId: products.items[0].id },
query: { date: "2026-10-01" },
});
// → [{ start, end, staffMemberId }]Full docs, more endpoints, and the interactive playground → opencals.com/docs
Every Opencals developer account comes with free development stores — no credit card, no trial timer. Create one, seed it with a realistic dataset, point a template at it, and you have a live booking site with real data.
1. Create a store → app.opencals.com/register
2. Seed it with a working business — pick a dataset and your store fills with services, staff members, locations, customers, appointments, and orders:
| Dataset | Best paired with |
|---|---|
| HAAR Salon | template-haar |
| Frisor Barbershop | template-frisor |
| ClearCare Medical | template-clarity |
| VOLT Padel & Squash | template-volt |
3. Clone a template and deploy
npx create-next-app -e https://github.com/letsopencals/template-haar my-booking-siteAdd your store's API key, deploy to Vercel, done.
Development stores stay free for as long as you need them. When you're ready for real bookings, switch to production. → opencals.com/open-source
| Repository | Description | Demo | Stack |
|---|---|---|---|
| template-haar | Hair salon — services with a gallery, staff and multi-location booking, customer accounts, Stripe checkout. | Live demo | Next.js 15, React 19, Tailwind |
| template-frisor | Barbershop — services with variants and add-ons, barber booking, dark editorial design. | Live demo | Next.js 15, React 19, Tailwind |
| template-clarity | Medical clinic — department-first browsing, clinician booking, medical intake at checkout, passwordless accounts. | Live demo | Next.js 15, React 19, Tailwind |
| template-volt | Padel & squash club — in-page court booking grid (courts × time, custom duration) and coach-led training flow. | Live demo | Next.js 15, React 19, Tailwind |
All templates are MIT-licensed. Clone, add your API key, deploy.
| Repository | Description |
|---|---|
| storefront-sdk | TypeScript SDK for the Opencals Storefront API. Auto-generated, class-based, fully typed. |
| skills | AI agent skills that teach coding tools (Claude Code, Cursor, Codex, Gemini CLI) to build booking integrations on the Opencals API. |
| Resource | URL |
|---|---|
| Interactive API reference (try every endpoint in-browser) | opencals.com/docs/api-reference/introduction |
| Quickstart — first booking call in 5 minutes | opencals.com/docs/quickstart |
| Authentication — API keys + customer JWTs | opencals.com/docs/authentication |
| Build a booking page — end-to-end Next.js tutorial | opencals.com/docs/guides/build-a-booking-page |
| TypeScript SDK guide | opencals.com/docs/guides/storefront-sdk |
| Webhooks overview | opencals.com/docs/guides/webhooks |
| AI agent skills — build with Claude Code, Cursor, etc. | opencals.com/docs/ai-agents/overview |
| Changelog | opencals.com/docs/changelog |
| OpenAPI 3.0 spec | opencals.com/docs/api-reference/openapi.json |
| npm — @opencals/storefront-sdk | npmjs.com/package/@opencals/storefront-sdk |
| Blog — API guides, headless booking, Shopify | opencals.com/blog |
Products & collections Staff members & locations Real-time availability
Cart management Checkout (Stripe + deposits) Payment confirmation
Customer self-service Reschedule / cancel Orders & invoices
Add-ons & custom duration Discounts & credit balances Webhooks
All endpoints are documented with request/response examples in 3 languages (TypeScript, cURL, Python) and an interactive playground — no API key needed to browse. → opencals.com/docs
- Agencies — Clone a template, add the client's API key, rebrand. One codebase, many clients. MIT license, no royalties.
- Developers building service apps — Use the REST API or TypeScript SDK to embed booking into any existing web or mobile product.
- AI-assisted development — Install the agent skills in Claude Code, Cursor, or Codex and let your AI build the integration with ground-truth API knowledge.
- Shopify merchants — Install the Opencals Shopify app for native appointment booking as Shopify orders, or combine the Shopify app with a custom headless frontend via the Storefront API.
- Service businesses — Use the hosted dashboard at app.opencals.com and the standalone storefront — no developers needed.
- 🌐 Website — opencals.com
- 🛠️ Open source & dev stores — opencals.com/open-source
- 📖 Developer docs — opencals.com/docs
- 📦 Shopify App Store — apps.shopify.com/opencals
- 💼 LinkedIn — linkedin.com/company/opencals
- 🚀 Product Hunt — producthunt.com/products/opencals-service-commerce-platform
- 📬 Contact — opencals.com/contact