ClientCasa
API

Timeline Items

The blocks that make up an event day — the cascade engine solves their times from sequence, duration, and anchors.

A timeline item is one block on an event day — "First look", "Ceremony", "Reception entrance". Items are the building blocks of a day schedule.

How Times Are Solved

You do not set start and end times. A cascade engine derives every item's wall-clock time from the day's sequence, each item's duration, and its buffers and travel. Solved times are checked, rebuildable outputs — so changing one item reflows the rest of the day automatically.

The exception is anchors. An item's anchorType decides what pins it:

  • float (default) — time is derived from its neighbors.
  • fixed — pinned to a clock time. Set requestedStartTime only in this case.
  • key-moment — a named pivot (like Ceremony) that the rest of the day flows around.
  • golden-hour — anchored to sunset or sunrise, computed from the event day's venueLocation coordinates.

Key Fields

  • eventDayId — the day this item belongs to. Filter by this to list a day's schedule in sequence.
  • title — what happens in this block.
  • durationMinutes — how long it runs; the cascade uses this to place the next item.
  • anchorType and requestedStartTime — as described above.
  • sequence — the item's position in the day's order.

Audience and work identity

Read and PATCH visibleTo accept master, public-master, custom, vendor-selected, vendor-all, couple, venue, shot-list and party. publicVendorIds is the explicit vendor audience, independent of assigned vendorIds. Each ID must be a vendor in the same account. An empty array clears a draft grant; omission preserves it.

New items start private. The create schema permits only master visibility and an omitted or empty publicVendorIds array. REST and MCP add_timeline_item refuse sharing grants with plan_new_placement_private. Create privately, then PATCH the intended draft audience. Share changes publishes that reviewed schedule. Changing a draft audience does not publish a new item.

An informational moment has no completion control. A placed To-do retains its own work identity and lifecycle; compatibility completion includes both placement and To-do IDs and the original completion event ID. Use the To-do endpoints for current work commands.

GET
/api/v1/timeline-items
x-api-key<token>

In: header

Query Parameters

page?integer
Default1
Range1 <= value
pageSize?integer
Default25
Range1 <= value <= 100
eventDayId?string

UUID v4

Formatuuid
status?|

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.clientcasa.com/api/v1/timeline-items"
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "eventDayId": "550e8400-e29b-41d4-a716-446655440000",
      "title": "string",
      "description": "string",
      "categoryId": "550e8400-e29b-41d4-a716-446655440000",
      "sortOrder": 0,
      "trackId": "string",
      "requestedStartTime": "string",
      "durationMinutes": 0,
      "bufferBeforeMinutes": 0,
      "bufferAfterMinutes": 0,
      "travelTimeMinutes": 0,
      "locked": true,
      "anchorType": "none",
      "anchorKey": "string",
      "location": "string",
      "visibleTo": [
        "master"
      ],
      "vendorIds": [
        "550e8400-e29b-41d4-a716-446655440000"
      ],
      "publicVendorIds": [
        "550e8400-e29b-41d4-a716-446655440000"
      ],
      "status": "pending",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 1,
    "total": 0,
    "totalPages": 0,
    "hasMore": true
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/timeline-items
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/timeline-items" \  -H "Content-Type: application/json" \  -d '{    "eventDayId": "550e8400-e29b-41d4-a716-446655440000",    "title": "string",    "durationMinutes": 0  }'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "eventDayId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "string",
  "description": "string",
  "categoryId": "550e8400-e29b-41d4-a716-446655440000",
  "sortOrder": 0,
  "trackId": "string",
  "requestedStartTime": "string",
  "durationMinutes": 0,
  "bufferBeforeMinutes": 0,
  "bufferAfterMinutes": 0,
  "travelTimeMinutes": 0,
  "locked": true,
  "anchorType": "none",
  "anchorKey": "string",
  "location": "string",
  "visibleTo": [
    "master"
  ],
  "vendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "publicVendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "status": "pending",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
GET
/api/v1/timeline-items/{id}
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.clientcasa.com/api/v1/timeline-items/550e8400-e29b-41d4-a716-446655440000"
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "eventDayId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "string",
  "description": "string",
  "categoryId": "550e8400-e29b-41d4-a716-446655440000",
  "sortOrder": 0,
  "trackId": "string",
  "requestedStartTime": "string",
  "durationMinutes": 0,
  "bufferBeforeMinutes": 0,
  "bufferAfterMinutes": 0,
  "travelTimeMinutes": 0,
  "locked": true,
  "anchorType": "none",
  "anchorKey": "string",
  "location": "string",
  "visibleTo": [
    "master"
  ],
  "vendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "publicVendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "status": "pending",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
PATCH
/api/v1/timeline-items/{id}
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://www.clientcasa.com/api/v1/timeline-items/550e8400-e29b-41d4-a716-446655440000" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "eventDayId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "string",
  "description": "string",
  "categoryId": "550e8400-e29b-41d4-a716-446655440000",
  "sortOrder": 0,
  "trackId": "string",
  "requestedStartTime": "string",
  "durationMinutes": 0,
  "bufferBeforeMinutes": 0,
  "bufferAfterMinutes": 0,
  "travelTimeMinutes": 0,
  "locked": true,
  "anchorType": "none",
  "anchorKey": "string",
  "location": "string",
  "visibleTo": [
    "master"
  ],
  "vendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "publicVendorIds": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "status": "pending",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
DELETE
/api/v1/timeline-items/{id}
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://www.clientcasa.com/api/v1/timeline-items/550e8400-e29b-41d4-a716-446655440000"
Empty
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}

On this page