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.
⤓ 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#
- Brand — distributor branding
- Person — guide, driver, host
- personIds on items and bookings
- transfer items with TransportDetails
- Booking payment prepaid
- Member surpriseMode: activity
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#
- As a reader test: load the file in your player or importer; it must open without error and unknown fields (if you add some) must survive a round-trip.
- As a writer reference: copy the shapes you need — the specification documents every field and the JSON Schema validates the structure.
- With an AI assistant: hand it the file URL as a shape reference ("produce a Roadbook like agency-package.roadbook.json for …"); then validate the output.