Example · all examples

Agency package

This Roadbook represents a package sold by a tour operator: a four-day Marrakech and Agafay desert program for a family, branded by the distributor (brand), with people to meet on site — a driver (phone, WhatsApp, name board), a guide, the riad reception — referenced from transfers and visits through personIds, prepaid transfers with pickup and destination, included stays, per-traveler tickets, a child in activity-level surprise mode, and logistics notes listing what is included.

file agency-package.roadbook.json format 1.2 days 4 items 13 bookings 7 validates ✓ schema + reference validator

⤓ Download agency-package.roadbook.json View raw JSON Validate Preview

What this example shows#

It shows the agency side of the format: the traveler receives one file that any compatible player displays, the operator's branding appears only where licensed, and the human contacts that make a package work are first-class entities rather than free text. Flights are deliberately out of scope of this package and appear as plain items.

Features demonstrated#

Manifest tags: brand people guide driver host transfer personIds prepaid tickets surpriseMode logistics apps — see examples/index.json.

Excerpt#

Abridged — the full file is the reference.

{
  "brand": {
    "id": "example-travel",
    "name": "Example Travel",
    "website": "https://example.org"
  },
  "people": [
    {
      "id": "p1",
      "name": "Hassan",
      "role": "driver",
      "org": "Example Travel",
      "phone": "+212 6 00 00 00 00",
      "languages": [
        "ar",
        "fr",
        "en"
      ],
      "messaging": [
        {
          "app": "whatsapp",
          "handle": "+212600000000"
        }
      ],
      "sign": "Name board “BENALI” at the arrivals exit",
      "note": "Same driver for all transfers."
    },
    {
      "id": "p2",
      "name": "Fatima",
      "role": "guide",
      "org": "Medina Walks",
      "languages": [
        "fr",
        "en"
      ],
      "sign": "Meets you in the riad lobby"
    }
  ],
  "days": [
    {
      "id": "d1",
      "index": 1,
      "date": "2027-03-06",
      "title": "Arrival and the medina at dusk",
      "items": [
        {
          "id": "i2",
          "time": "15:00",
          "endTime": "15:40",
          "title": "Private transfer to the riad",
          "type": "transfer",
          "status": "planned",
          "personIds": [
            "p1"
          ],
          "bookingId": "b-transfer-in",
          "transport": {
            "from": {
              "name": "RAK arrivals exit"
            },
            "to": {
              "name": "Riad Example, Derb Sidi Bouloukat",
              "address": "Medina, Marrakech"
            }
          }
        },
        {
          "id": "i3",
          "time": "16:00",
          "title": "Check-in at the riad",
          "type": "checkin",
          "status": "planned",
          "bookingId": "b-riad",
          "personIds": [
            "p3"
          ]
        }
      ]
    }
  ]
}

Use it#