Calendar
2 operations. Each REST operation is also an MCP tool of the same name. REST https://tlntconnect.com/api/v1
GET/api/v1/calendar/holds
The workspace's internal calendar holds (the holds the app's calendar shows, whoever created them — staff in Atlas, Atlas from an email signal, or an API key) starting between start and end inclusive (YYYY-MM-DD, UTC days, at most 366 days apart): id, title, description, starts_at, ends_at, timezone, location, event_kind, campaign_id, created_by, created_at. Holds Atlas proposed from email can carry text from outside the agency, so title, description and location are labelled untrusted. Tasks with due dates are read with GET /tasks.
list_calendar_holdstasks:read- admin, manager, scout, viewer
- Ignored (read)
- 1
titledescriptionlocation
Input
end query, requiredstringstart query, requiredstringResponses
POST/api/v1/calendar/holds
Creates an internal calendar hold through the same operation Atlas chat uses (createTlntAgentCalendarEvent): it appears on the app's calendar at once, is recorded on the Atlas action ledger with source public_api, and contacts nobody. API holds are internal-only: external invites (anything that would contact someone outside the agency) are refused, and are never created over the API. An API hold is not governed by Atlas's calendar setting: it is created even when Atlas's calendar area is set to ask for approval or is off, because the Public API is its own feature (its own scopes and role ceiling decide). title (1-240), starts_at (ISO 8601), optional ends_at (not before starts_at), timezone (default UTC), description, location, event_kind (default meeting_request) and campaign_id (a campaign the member can open; otherwise 404). Returns 201 with the hold.
create_calendar_holdtasks:write- admin, manager
- optional
- 1
Input
Idempotency-Key headerstring — Retry-safe key (1-255 printable ASCII; a UUID is recommended; an RFC 8941 quoted string is accepted). The same key with the same request within 24h replays the stored response byte for byte (Idempotent-Replayed: true) without running again; the replay still consumes the operation's rate weight.campaign_id bodystring (uuid) | nulldescription bodystring | nullends_at bodystring | nullevent_kind body"meeting_request" | "due_date" | "campaign_milestone" | "call_reschedule" | "deliverable_deadline"location bodystring | nullstarts_at body, requiredstringtimezone bodystringtitle body, requiredstring