Universal Scheduling
Protocol
The open standard for agentic scheduling.
Enable platforms and AI agents to discover, check availability of, and book time-based services without custom integrations.
Learn
Read the specification, core concepts, and deployment modes to understand how USP fits your stack.
Get StartedImplement
Start with OpenAPI and OpenRPC bindings, JSON Schemas, and the interactive playground.
View on GitHubBuilt for flexibility, security, and scale
Agentic scheduling requires interoperability. USP is built on industry standards — REST, MCP, A2A, and ESP transports — with UCP-Native and Standalone deployment modes so different systems can work together without custom integration.
Interoperable
Two deployment modes (UCP-Native for existing UCP platforms, Standalone for self-contained scheduling) share the same domain core and transport bindings.
Agent-First
Every operation is designed for programmatic consumption. AI agents autonomously discover, evaluate, and book services with continue_url handoff when human input is needed.
Secure & Private
OAuth 2.0 identity linking, HTTP Message Signatures for webhooks, structured buyer consent, and TLS 1.3 transport.
Open & Extensible
Apache 2.0 licensed. Vendor extensions via reverse-domain namespaces (e.g., com.wix.services.courses). JSON Schema composition for custom capabilities.
See it in action
USP is designed to facilitate the entire scheduling lifecycle, from discovery and availability to booking and post-confirmation management. The protocol supports catalog browsing, slot queries, holds, booking creation, and payment coordination across deployment modes.
Discovery & Checkout
In UCP-Native mode, scheduling capabilities register in /.well-known/ucp. Paid bookings use UCP atomic checkout so agents discover services and complete payment in one flow.
GET /.well-known/ucp HTTP/1.1
Host: salon.example.com
{
"ucp": { "version": "2026-01-11" },
"capabilities": {
"dev.usp.services.catalog": [{
"version": "2026-02-21",
"spec": "https://usp.dev/specification/",
"schema": "https://usp.dev/schemas/catalog.json"
}],
"dev.usp.services.paid_bookings": [{
"version": "2026-02-21"
}]
}
} POST /checkout-sessions HTTP/1.1
Host: platform.example.com
Idempotency-Key: idem_abc123
{
"line_items": [{
"item": { "id": "svc_haircut_001" },
"quantity": 1,
"booking": {
"slot_id": "slot_20260315_0900",
"service_id": "svc_haircut_001"
}
}],
"buyer": { "email": "alice@example.com" }
} Service Catalog
Browse services, pricing, policies, resources, and locations through a unified catalog API designed for agents and platforms.
Learn morePOST /services/list HTTP/1.1
Host: business.example.com
Content-Type: application/json
{
"filters": {
"type": "appointment",
"category_id": "beauty"
},
"pagination": {
"limit": 20,
"cursor": null
}
} {
"usp": {
"version": "2026-02-21",
"capabilities": [
{ "name": "dev.usp.services.catalog",
"version": "2026-02-21" }
]
},
"services": [
{
"id": "svc_haircut_001",
"name": "Women's Haircut & Style",
"type": "appointment",
"duration": { "fixed": "PT60M",
"buffer_after": "PT15M" },
"pricing": { "model": "fixed",
"amount": 7500,
"currency": "USD" }
}
]
} Availability
Query open time slots, hold a slot during checkout, and release holds when buyers abandon the flow.
Learn morePOST /availability/query HTTP/1.1
Host: business.example.com
Content-Type: application/json
{
"service_id": "svc_haircut_001",
"start_date": "2026-03-15",
"end_date": "2026-03-16",
"granularity": "slot",
"timezone": "America/New_York",
"resource_id": "staff_jane"
} {
"service_id": "svc_haircut_001",
"granularity": "slot",
"slots": [
{
"id": "slot_20260315_0900",
"start": "2026-03-15T09:00:00-04:00",
"end": "2026-03-15T10:00:00-04:00",
"duration": "PT60M",
"state": "available",
"resources": [
{ "id": "staff_jane",
"type": "staff",
"name": "Jane Smith" }
]
}
]
} Booking
Create confirmed bookings, manage lifecycle transitions, and coordinate payment when required.
Learn morePOST /bookings HTTP/1.1
Host: business.example.com
Content-Type: application/json
{
"service_id": "svc_haircut_001",
"slot_id": "slot_20260315_0900",
"hold_id": "hold_abc123",
"buyer": {
"first_name": "Alice",
"last_name": "Williams",
"email": "alice@example.com"
},
"party_size": 1,
"resource_id": "staff_jane"
} {
"id": "bkg_789ghi",
"service_id": "svc_haircut_001",
"slot": {
"start": "2026-03-15T09:00:00-04:00",
"end": "2026-03-15T10:00:00-04:00",
"duration": "PT60M"
},
"status": "confirmed",
"payment": {
"status": "not_required",
"timing": "at_service"
},
"created_at": "2026-03-14T22:05:00Z"
} UCP-Native Mode
For platforms that already support UCP. Scheduling registers in /.well-known/ucp with atomic checkout for paid bookings and inherited UCP infrastructure.
Standalone Mode
Self-contained scheduling at /.well-known/usp with generic payment context that works with any checkout system and IETF-native infrastructure.
Designed for the entire scheduling ecosystem
For Developers
Build scheduling into any platform with OpenAPI, OpenRPC specs, JSON Schemas, and transport bindings — everything you need to implement USP.
View the technical specFor Businesses
Retain control of your schedule, resources, and customer relationships. USP keeps you as the Merchant of Record while agents discover and book.
Get started with USPFor AI Platforms
Enable agents to autonomously discover and book services with MCP and A2A bindings, availability hints for reasoning, and continue_url for human handoff.
For Payment Providers
Integrate through UCP atomic checkout or standalone payment context. USP handles scheduling; your checkout system handles payment.
See payment architectureGet started today
USP is an open standard designed to let AI agents, apps, businesses, and payment providers schedule time-based services without custom, one-off integrations for every connection. We actively seek your feedback and contributions to help build the future of agentic scheduling.
The complete technical specification, documentation, schemas, and reference artifacts are hosted in our public GitHub repository.
Download
Read the getting started guide and machine-readable artifacts
Experiment
Walk through discovery, negotiation, and booking in the interactive playground
Contribute
Join the community and help shape the standard on GitHub