trips_create
POST /trips — Create a trip
Create a new trip. Provide exactly one of placeID or eventID — the server resolves the location (city, country, country code) automatically. Use GET /places/search to find a placeID by city/country name first, or pass an eventID from /events to create a trip to that event's city.
Trip points (optional points array, up to 20 per trip): each item is { note: string (max 280 chars), noteHTML?: string, placeID?: string }. The optional placeID is resolved against Google Places at write time and the full Place object (city, country, lat/lon, name, etc.) is stored on the trip — so reads don't do any lookups. noteHTML preserves the same rich text field the web trip editor stores for formatted notes, links, and mentions; note remains the required plain-text fallback. Notes without a placeID are valid ("remember to book a coworking space"). Pass an unknown / expired Google placeID → 400 with a clear error.
⚠️ WRITE operation: this mutates your DC account data.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Trip note | |
| points | No | Optional. Up to 20 trip points (venues / ideas / notes). Each item: `{ note: string (max 280 chars), noteHTML?: string, placeID?: string }`. The optional `placeID` is resolved against Google Places at write time. Notes without a place are valid. | |
| endDate | Yes | End date (ISO 8601) | |
| eventID | No | DC event ID. Server uses the event's city placeID. **Pass exactly one of `placeID` or `eventID`** — sending both rejects with 400. | |
| placeID | No | Google Place ID for the destination. Look one up via `GET /places/search`. **Pass exactly one of `placeID` or `eventID`** — sending both rejects with 400. | |
| startDate | Yes | Start date (ISO 8601) |