> Calendly developer docs. For page Markdown, append .md to any URL.
> Index: https://developer.calendly.com/llms.txt
> API catalog: https://developer.calendly.com/.well-known/api-catalog
> OpenAPI: https://developer.calendly.com/openapi/calendly-api.yaml
> OAuth authorization server: https://calendly.com/.well-known/oauth-authorization-server
> MCP protected resource: https://mcp.calendly.com/.well-known/oauth-protected-resource
> Scheduling MCP endpoint: https://mcp.calendly.com
> Docs search MCP: https://developer.calendly.com/_mcp/server

# October 22, 2026

## Contact updates

### New response field:

* **app_url** – Every Contact returned by **GET /contacts**, **GET /contacts/\{contact_uuid}**, **POST /contacts**, and **PATCH /contacts/\{contact_uuid}** now includes `app_url`, a link for an authorized Calendly user to open the contact in the Calendly web app (e.g. `https://calendly.com/app/contacts/{contact_uuid}`). Opening it requires authentication and access to the contact. This is a response-only addition.

### Documentation correction: currency custom fields

* `currency` custom field values are amounts in the field definition's currency, not integer minor (cent) units. For example, send `85000` for \$85,000.00, not `8500000`. The August 25, 2026 entry and earlier reference docs described minor units. If you followed them, your integration may be writing values 100x too large; review any currency values you have written.

### single_select custom fields accept labels:

* On **POST /contacts** and **PATCH /contacts/\{contact_uuid}**, a `single_select` value can be either an option `uuid` or an option `label`.
* Label matching is exact and case-sensitive. If more than one option has the same label, a label value is rejected; send the option `uuid` instead.
* An invalid `single_select` value returns an error that lists the field's valid options.