scheduling.json
https://harbourviewdental.example/.well-known/scheduling.jsonoperator-mutual: Own domain that names Chairly as its operator, and Chairly lists it back.
{
"schcp": "0.4",
"host": {
"id": "harbourview-dental",
"name": "Harbourview Dental",
"timezone": "America/Vancouver",
"url": "https://harbourviewdental.example",
"phone": "+1-604-555-0100"
},
"endpoint": "https://chairly.example/m/harbourview-dental/schcp/v0",
"tax": [
{
"label": "GST",
"percent": 5
}
],
"operator": {
"domain": "chairly.example",
"name": "Chairly"
},
"keys": [
{
"kty": "OKP",
"crv": "Ed25519",
"x": "4kW59A6yFFRFMotF5Yg-WL9MfRnOhsWstlgVugL5n2I",
"kid": "harbourview-dental-2026-10",
"use": "sig"
}
],
"services": [
{
"id": "cleaning",
"name": "Cleaning and check-up",
"duration": "PT1H",
"price": {
"amount": "180.00",
"currency": "CAD"
},
"tax_exempt": true,
"requires": [
{
"resource_type": "operatory"
},
{
"resource_type": "hygienist"
}
],
"booking_window": {
"min_notice": "PT24H",
"max_advance": "P90D"
}
}
],
"policies": {
"retention": "P3650D",
"holds": {
"max_ttl": "PT10M",
"max_active_per_agent": 3,
"requires_mandate": true,
"max_active_unproven": 4,
"max_active_per_attester": 4
},
"tentative": {
"max_confirm_within": "PT48H"
},
"data": {
"free_text_notes": "refuse",
"intake_url": "https://harbourviewdental.example/intake"
},
"confirmation": "instant",
"closed_mandate": "always"
},
"capabilities": [
"availability",
"holds",
"bookings",
"cancel",
"change_offers",
"webhooks",
"proposals",
"closed_mandates",
"attestations",
"all_in_totals",
"participants"
],
"auth": {
"request_signing": "rfc9421-ed25519",
"mandates": [
"schcp-mandate+jwt",
"dc+sd-jwt"
]
},
"trust": {
"attesters": [
{
"id": "phonecheck.example",
"name": "PhoneCheck",
"keys": [
{
"kty": "OKP",
"crv": "Ed25519",
"x": "YvB8MybNzV3qnHtkbqt4BpZB2Arl1fyKSXYgYa0BrSQ",
"kid": "phonecheck.example-2026"
}
]
}
]
}
}