agenticweb.wiki

cal.com agentic web readiness

A+ Manifest validity: 67% (4/6 valid, 5 errors, 12 warnings) · Surface score 60 (coverage 40 + breadth 15 + conformance 5). 9 standards observed across 4 of 9 steps; 6 manifests present (+ robots.txt, security.txt), 5 errors, 12 warnings. Checked 2026-10-25 19:17:04 UTC. This grades the agent-facing files published at cal.com, not the organisation's products.

Badge for a README: ![agentic web grade](https://agenticweb.wiki/badge/cal.com.svg) · JSON · Markdown · Re-check now

Coverage by step

01 DiscoverAI Catalog well-known file, RFC 972702 Identifynothing observed03 PermitContent Signals Policy, OAuth Protected Resource and Authorization Server Metadata (as used for agent authorization)04 Readllms.txt, Markdown for Agents05 ActAgent Skills06 Coordinatenothing observed07 Paynothing observed08 Presentnothing observed

Manifests

ManifestResultFindings
Agentic Resource Discovery
/.well-known/ard.json
absent HTTP 404
AI Catalog well-known file
/.well-known/ai-catalog.json
valid
  • entries[0] has no description; registries index on it
  • entries[1] has no description; registries index on it
  • entries[2] has no description; registries index on it
  • served only at deprecated /.well-known/ai-catalog.json; ARD v0.91+ expects /.well-known/ard.json (serve both during migration)
MCP Server Cards (SEP-2127)
/.well-known/mcp/server-card.json
errors
  • $schema missing (required: https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json)
  • name missing
  • version missing
  • description missing
  • Content-Type is application/json; SEP-2127 says serve application/mcp-server-card+json
  • pre-final card shape (url/transport/tools); the final SEP-2127 card uses name, version, description and remotes[]
  • remotes missing: a card with no remotes gives clients nothing to connect to
  • no Access-Control-Allow-Origin: * (required for browser clients)
  • no ETag
View valid /mcp/server-card template for cal.com
{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
  "name": "com.cal/cal",
  "title": "Cal",
  "version": "1.0.0",
  "description": "Cal and what it offers to agents",
  "websiteUrl": "https://cal.com/",
  "icons": [
    {
      "src": "https://cal.com/icon.png",
      "mimeType": "image/png",
      "sizes": [
        "180x180"
      ]
    }
  ],
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://cal.com/mcp",
      "supportedProtocolVersions": [
        "2025-11-25",
        "2025-06-18",
        "2025-03-26"
      ]
    }
  ]
}
Agent2Agent Protocol
/.well-known/agent-card.json
absent HTTP 404
llms.txt
/llms.txt
valid
  • no Markdown links: list the pages an agent should read
AGENTS.md
/AGENTS.md
absent HTTP 404
Agent Skills
/.well-known/agent-skills/index.json
valid
api-catalog: A Well-Known URI and Link Relation to Help Discovery of APIs
/.well-known/api-catalog
valid
AI Crawler User-Agent Tokens in robots.txt
/robots.txt
no AI tokens
  • no AI crawler token named (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, ...); the policy for them is whatever User-agent: * says (partial)
security.txt (RFC 9116)
/.well-known/security.txt
valid
auth.md
/auth.md
errors
  • none of the auth.md mechanism names found (identity_assertion, service_auth, anonymous)
View valid /auth.md template for cal.com
# Authenticating to Cal as an agent

This file is the agent-auth skill for cal.com. It is linked from the authorization server's metadata (`agent_auth.skill`).

## Discovery
1. Call the API. A `401` carries `WWW-Authenticate: Bearer resource_metadata="https://cal.com/.well-known/oauth-protected-resource"`.
2. Read `/.well-known/oauth-protected-resource` (RFC 9728) for `resource` and `authorization_servers`.
3. Read the authorization server's `/.well-known/oauth-authorization-server` (RFC 8414); the `agent_auth` block lists the endpoints below.

## Methods we accept
- `identity_assertion`: you hold a session for a user and can mint an ID-JAG with `aud` = our `resource`. Preferred.
- `service_auth`: you only know the user's email. A claim ceremony (6-digit code) is required.
- `anonymous`: no user. Immediate limited scopes; the user can claim later.

## Register
POST `agent_auth.identity_endpoint` with `{"type": "<method>", ...}`; exchange the returned `identity_assertion` at the token endpoint for an access token.

## Scopes
- `api.read`: read
- `api.write`: write (claimed registrations only)

## Rules
- Show the user our name and the scopes before asserting their identity.
- Keep `claim_token` in memory only.
- Revocation events arrive as Security Event Tokens at your registered events endpoint.
Open Knowledge Format
/okf/index.md
absent HTTP 404

What an agent can call

Standards observed

Cheapest next steps

  1. Agentic Resource Discovery: a catalog at /.well-known/ard.json lets agents discover your APIs, MCP servers and data in one fetch (emerging spec — publish only if you run the underlying endpoints; generate via MCP template({"id": "ard", "domain": "cal.com"}))
  2. AGENTS.md: instructions for coding agents working on or with the site
    Generate starter /AGENTS.md for cal.com
    # Cal for agents
    
    Cal and what it offers to agents
    
    ## Read the data, not the HTML
    - Index: https://cal.com/llms.txt
    - API description: https://cal.com/openapi.json
    - Discovery catalog: https://cal.com/.well-known/ard.json
    
    ## Calling
    - MCP server (Streamable HTTP): https://cal.com/mcp
    - Rate limits and authentication: describe them here
    
    ## Conventions
    - How to cite or attribute content
    - What not to do (no scraping of /account/, no automated sign-ups, etc.)
    
    Contact: security@cal.com
    

Agent pre-flight & practical readiness

Preferred mode: mcp (fallback openapi). Call the MCP endpoint at https://mcp.cal.com/mcp first. Do not scrape the HTML when a tool can answer.

Fetch: POST https://mcp.cal.com/mcp POST a JSON-RPC tools/list, or server/discover on the 2026-07-28 revision, before reading HTML.

Practical readability: exa_parsable yes, markdown negotiation yes, render markdown_native, HTML quality high, first content at byte 0, HTML-to-llms.txt token ratio 1.048×.

AI crawler posture: search_allowed_training_blocked · Assistant access: OpenAI allowed, Anthropic allowed, Google allowed, Perplexity allowed, Exa allowed.

Readiness subscores: reach 20/20, readability 30/30, capabilities 35/35, conformance 5/15, total 90/100, grade A+.

How the grade is made

+10 per lifecycle step with a standard observed, counting manifests that validate or that the probe rule for the standard recognises (a valid MCP server card counts for MCP; max 90); +3 per observed standard beyond the first two (max 15); conformance +15 (+10 with one manifest) minus 5 per agent-facing manifest with errors, never below 0 (security.txt is reported, not scored). Lifecycle grade: A+ >= 60, A >= 45, B >= 30, C >= 20, D >= 10. Strict 100-point composite (subscores.total_100 / subscores.grade_100): reach_and_policy (20) + readability (30) + capabilities (35) + conformance (15), where A+ >= 80, A >= 65, B >= 45, C >= 28, D >= 15. Errors are specification violations; warnings are best-practice gaps. Only public paths are fetched, without credentials, so standards that need a login (skipped in the probe) are not counted either way. The same report is the validate_manifest tool on the MCP server.

JSON · Markdown · probe rules