Was this helpful?
Segments provide a mechanism available to associate itinerary items, such as the Itinerary Location or Itinerary Directions to a specific group. Segments are most commonly used to break a trip into several parts.
Segments can be used to provide the user a selection in order to view a specific part of a trip.
Segments are added to your itinerary as an itinerary item.
1# Creates an Itinerary Segment, which can be used to break up a list into
2# smaller discrete sections.
3
4mutation createItinerarySegment(
5 $itineraryId: ID!
6 $itinerarySegment: CreateItinerarySegmentInput!
7) {
8 createItinerarySegment(
9 itineraryId: $itineraryId
10 segment: $itinerarySegment
11 ) {
12 segment {
13 id
14 }
15 }
16}Sandbox: Configure | Try Operation
Note: Segment attributes can be created and added at any supported mutation,
such as createItinerary, createItineraryLocation etc. and are not limited to
update.
You can then add trip segment identifiers to each of the itinerary items.
1# Assign a series of segments to your itinerary locations. Be sure to first
2# add your segments using the "itinerary/segment" attribute avaialble on the
3# itinerary.
4
5mutation UpdateItineraryLocationSegments {
6 # use updateItineraryLocation()
7 updateItineraryLocation(
8 # Supply the itinerary location ID
9 id: "itinerary/ABC123"
10 # Update the location
11 location: {
12 upsertAttrs: [
13 # Add the association of segment IDs
14 # Value as correlates to the "itinerary/segments" ids
15 { id: "itinerary/location/segments", value: ["my-UID"] }
16 ]
17 }
18 ) {
19 # Read back the changed data
20 itinerary {
21 # Identifiers
22 id
23 __typename
24
25 # Add in the segments
26 segments: attrValue(id: "itinerary/location/segments")
27 }
28 }
29}Sandbox: Configure | Try Operation
You can use the children field operation in order to obtain a list of the
segments.
1# Query the itinerary segments for an itinerary.
2
3query listItinerarySegments($itineraryId: ID!, $first: Int!, $after: String) {
4 itinerary(
5 # Supply the itinerary ID
6 id: $itineraryId
7 ) {
8 # Select the associated itinerary segments using the children selector
9 children(
10 # Limit to querying the itinerary segments
11 type: ItinerarySegment
12 # Using the relay "cursor connection" specification for pagination
13 # See: https://relay.dev/graphql/connections.htm
14 first: $first
15 after: $after
16 ) {
17 edges {
18 node {
19 # ID/Types
20 id
21 __typename
22
23 # Specific information drawn from the Itinerary Segment
24 ... on ItinerarySegment {
25 title
26 color
27 contrastColor
28 }
29 }
30 # Obtain the cursor to pass back as the "after" property
31 cursor
32 }
33 # Total number of locations
34 totalCount
35 pageInfo {
36 hasNextPage
37 endCursor
38 }
39 }
40 }
41}Sandbox: Configure | Try Operation
Query the itinerary children or descendants and restrict the results to a  specific segment ID.
1# Use the `segmentIds`
2
3query ListItineraryLocations {
4 # query the itinerary
5 itinerary(
6 # Supply the itinerary ID
7 id: "itinerary/ABC123"
8 ) {
9 # List the children
10 children(
11 # Query the locations
12 type: ItineraryLocation
13 # Limit the first 10
14 first: 10
15 # Limit the results to records with segment ID
16 segmentIds: ["day-one"]
17 ) {
18 edges {
19 node {
20 # Identifier
21 id
22 __typename
23
24 ... on ItineraryLocation {
25 # Name of the location associated with "day-one"
26 title
27 place {
28 name
29 }
30
31 # Should contain the id "day-one" in the collection
32 segmentIds: attrValue(id: "itinerary/location/segments")
33 }
34 }
35 }
36 }
37 }
38}Sandbox: Configure | Try Operation
Copyright © 2025 - Made with love ❤️ in Australia.