---
title: Create a trip — step by step
description: Walkthrough for creating a trip in Yatra, from the Trips listing page through the Create New Trip modal, all four phases of the Trip Builder, and publishing. Every section, every field, every button.
prev:
text: Trips & catalog
link: /tour-booking
next:
text: Departures & availability
link: /departures
---
# Create a trip — step by step
This is the practical walkthrough for building a trip from scratch. The Yatra Trip Builder is a four-phase wizard with ten sections in total. Only **Trip Basics** and **Pricing** are required to publish — everything else is optional polish you can come back to.
> Looking for the field-level reference instead? See [Trips & catalog](/tour-booking) for the exhaustive table of every option.
::: tip Running an older plugin version?
If a field or section name looks different in your wp-admin, update to the latest Yatra release — the screenshots and field names on this page reflect the current build.
:::
---
## Step 1 — Open the Trips listing
Open Yatra → Trips (the top-level "Trips" item in the Yatra menu).

What you see:
- **Search box** — searches by title and slug.
- **Status filter** — All / Published / Draft / Review / Approved / Archived / Trash. Selecting a pill filters the list to that status.
- **Column visibility picker** — toggle which columns appear (Trip, Price, Status, Trip Type, Availability, Capacity, Countries, Difficulty, Attributes, Destinations, Activities, Categories, Bookings, Created, Modified). Your choice is saved per-browser to `localStorage`.
- **Bulk actions** — once you tick one or more rows, the action dropdown unlocks: Mark as Published / Draft / Review / Approved / Archived, plus Move to Trash. From the Trash status filter you also get Restore and Delete Permanently.
- **+ Add New Trip** (top right) — opens the Create New Trip modal.
::: tip Reset filters
The reset button (next to the filters) clears search + status + sort in one click.
:::
---
## Step 2 — Click "+ Add New Trip" → modal popup
Clicking **+ Add New Trip** opens a small modal — **not** a full-page form. The modal asks for the two fields needed to create a draft trip and redirect you into the builder.

Fields:
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| **Trip Title** | text | ✅ Yes | What appears on the public trip page and in the catalogue. |
| **Trip URL** | text | ✅ Yes | Auto-generated from the title (lowercase, hyphens). Click **Customize URL** to override. Validated: lowercase letters, digits, hyphens only. |
Below the fields you'll see a **live preview** of the full public URL (e.g. `https://yoursite.com/trip/bali-beach-retreat`).
Buttons:
- **Cancel** — closes the modal, nothing saved.
- **Create & Continue** — validates the slug, creates a draft trip, and redirects you to the Trip Builder at Phase 1 → Trip Basics. You'll see a brief loading spinner on the button.
::: warning Slug rules
Slugs may only contain lowercase letters, digits, and hyphens. The modal blocks creation otherwise.
:::
---
## Step 3 — Land on the Trip Builder
You arrive on the Trip Builder at:
```
/wp-admin/admin.php?page=yatra&subpage=trips&action=create (new)
/wp-admin/admin.php?page=yatra&subpage=trips&action=edit&id=N (existing)
```
The Trip Builder has three parts:
- **Left sidebar** — the four phases, each containing one or more sections. Sections that are required show a badge. Sections you've visited are marked complete; sections with validation errors show a warning dot.
- **Center panel** — the currently active section's fields.
- **Top action bar** — Preview, Save Draft / Update Draft, and Publish Trip / Update Trip (the publish button has a dropdown for status variants).
- **Bottom nav bar** — Previous / Next, for stepping through sections in order.
The four phases are:
| Phase | Badge | Sections |
| --- | --- | --- |
| **1 — Essentials** | Start Here / Required | Trip Basics ✱, Location & Route, Pricing ✱, Availability & Booking |
| **2 — Details** | Recommended | Trip Details (Itinerary + Included/Excluded sub-tabs) |
| **3 — Optimization** | Recommended | Media & Gallery, Downloads (free), Categories & Attributes, SEO & Marketing |
| **4 — Advanced** | Power Users | Advanced Settings |
✱ = required to publish.
::: tip Take a Tour, Fill Dummy Data
The header includes two helpers:
- **Take a Tour** — inline onboarding tour of the builder UI.
- **Fill Dummy Data (1/3)** — populates the current section with realistic sample content. There are three dummy datasets you can cycle through to see how a fully-filled trip looks without typing it all by hand.
:::
---
## Phase 1 — Essentials
You only need this phase to publish a working trip. Everything later is optional polish.
### 1.1 Trip Basics ✱

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| **Trip Title** | text | ✅ Yes | Char counter shows 0–60 recommended (max 100). Auto-feeds slug while not manually edited. |
| **Trip URL** | text (monospace) | ✅ Yes | Auto-generated. Click **Edit** to override. Includes a Copy button and live URL preview. |
| **Short Description** | WYSIWYG | Recommended | 100–150-char range works best. Shown in catalogues and trip cards. |
| **Trip Description** | WYSIWYG (min 260 px) | Recommended | The main body shown on the public trip page. Supports bold / italic / lists / link / headings. |
| **Featured Image** | WordPress media picker | Recommended | 1200 × 800 px recommended. Preview + Remove button below the picker. |
| **Trip Highlights** | repeater (text rows) | Optional | Add bullet-point highlights ("Sunrise over Mt. Batur", "Private boat to Nusa Lembongan", etc.). |
**Save Draft** any time — the trip becomes browsable in the admin even with only the title + slug filled in.
### 1.2 Location & Route

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| **Destinations** | multi-select | Optional | Attaches the trip to one or more Destination taxonomy terms (powers the destination archive pages). If empty, you'll see a link to create destinations first. |
| **Starting Point** | location picker (search + map + lat/lng) | Optional | Name field auto-fills from map search; 300 px embedded OpenStreetMap; "Use Current Location" button (geolocation); manual lat / lng inputs underneath. |
| **Ending Point** | location picker | Optional | Same structure as Starting Point. Use for routes that don't end where they began. |
| **Seasonal Availability Notes** | text | Optional | Short freeform note ("Available year-round except monsoon season"). Shown on the public page. |
### 1.3 Pricing ✱

The pricing section starts with a **Pricing Type** toggle — pick one of two modes:
| Mode | When to use |
| --- | --- |
| **Regular Pricing** | One price; everyone pays the same. Best for short experiences with no age tiers. |
| **Traveler-Based Pricing** | Different price per traveler category (Adult / Child / Infant / Senior, configurable under [Yatra → Traveler Categories](/tour-booking#traveler-categories)). |
**Regular Pricing fields:**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| **Original Price** | currency (number, 0.01 step) | ✅ Yes | The undiscounted public price. |
| **Discounted Price** | currency | Optional | If set, the public price shows a strike-through over the original. |
**Traveler-Based Pricing fields:**
- A repeater of **active traveler categories**. Click **Add Pricing** → pick a category from the dropdown → fill in Original Price and Discounted Price (optional). Repeat for each category.
- If no categories exist yet, you'll see "No active traveler categories found" with a link to create them first.
::: warning Pricing is required to publish
At least one valid price (Regular Original, or at least one row in the Traveler-Based matrix) must be set before **Publish Trip** will succeed.
:::
### 1.4 Availability & Booking

This section merges what the source code calls `duration` and `booking`. Field groups:
**Availability Period**
| Field | Type | Notes |
| --- | --- | --- |
| **Available From** / **Available To** | date | The window during which travelers can book this trip. |
| **Booking Window (days in advance)** | number | How far in advance bookings are accepted (e.g. 30 = up to 30 days out). |
| **Seasonal Availability Notes** | text | Short customer-facing note about seasonality. |
**Capacity & Travelers**
| Field | Type | Notes |
| --- | --- | --- |
| **Minimum Travelers** | number | Smallest party size accepted. |
| **Maximum Travelers** | number | Hard cap. Used to compute remaining seats per departure. |
**Departure Time (varies by trip type)**
- Day-tour trips: **Enable Multiple Time Slots** checkbox.
- If on: a repeater of `{ time, label }` rows — e.g., `09:00 Morning Tour`, `14:00 Afternoon Tour`.
- If off: a single **Default Departure Time**.
- Multi-day trips: a single **Default Departure Time**.
**Booking Policies**
| Field | Type | Notes |
| --- | --- | --- |
| **Minimum Age** | number | Hard floor for booking. 0 = no restriction. |
**Accommodation**
A sub-block (Home icon) inside *Availability & Booking* — describes what travelers sleep in.
| Field | Type | Notes |
| --- | --- | --- |
| **Accommodation Type** | text | Placeholder: *Hotel, Resort, Teahouse, Camping*. Free text — appears on the public trip page. |
| **Meal Plan** | select | One of: *Breakfast Only*, *Half Board (Breakfast + Dinner)*, *Full Board (All Meals)*, *All Inclusive*, *No Meals Included*. |
| **Accommodation Details** | textarea | Free text — describe the lodging in more depth. |
**Transportation**
A sub-block (Car icon) inside *Availability & Booking* — describes pickup/dropoff and what's included.
| Field | Type | Notes |
| --- | --- | --- |
| **Transportation Included** | checkbox | Toggle. The three fields below are hidden until this is on. |
| **Pickup Location** | text | Conditional. Placeholder: *Airport, Hotel, City Center*. |
| **Dropoff Location** | text | Conditional. |
| **Transportation Details** | textarea | Conditional. Free text — describe vehicles, route, schedule. |
---
## Phase 2 — Details
### 2.1 Trip Details

A merged section with two sub-tabs you switch between using a tab bar inside the section:
#### Sub-tab A: Itinerary
A day-by-day repeater. Each day has:
- **Day number** + **Day title** ("Day 1 — Arrival in Bali")
- **Entries** — items that happen on this day. Each entry can have a title, description, location, start / end time, duration, cost, notes, included / excluded items, and images. Items can also reference a global Itinerary Item by ID (managed under [Yatra → Items / Item Types](/tour-booking)).
- Add / remove days, reorder by entry.
::: tip
You can skip the itinerary and still publish — useful for short single-day experiences.
:::
#### Sub-tab B: Included / Excluded
Two simple repeaters side-by-side:
- **What's Included** — list of `{ title, description }` rows ("Airport transfers", "All meals", "English-speaking guide").
- **What's Excluded** — same structure ("Travel insurance", "Personal expenses", "Tips").

---
## Phase 3 — Optimization
### 3.1 Media & Gallery

| Field | Type | Notes |
| --- | --- | --- |
| **Photo Gallery** | grid repeater (drag to reorder) | Multi-image picker via WordPress media library. Order badges, reorder buttons on hover, remove (X) per image. |
| **Video URL** | text (URL) | YouTube or Vimeo link. Renders embedded on the public page. |
| **360° Virtual Tour URL** | text (URL) | Any embeddable virtual-tour URL (Matterport, kuula.co, etc.). |
| **What Makes This Trip Special** | textarea | Freeform paragraph highlighting unique selling points. Shown as its own block on the public page. |
| **Trip Story / Narrative** | textarea | Longer-form story / context. |
| **Testimonials** | selector | Pick from existing reviews tied to bookings. Renders a testimonial card row on the trip page. |
### 3.2 Downloads

::: tip Downloads is now free
This section was previously Pro-only. It's enabled for everyone now — the Trip Builder shows it unconditionally.
:::
A repeater of downloadable items. Each item has:
| Field | Type | Notes |
| --- | --- | --- |
| **Title** | text | E.g. "Packing list", "Itinerary PDF", "Waiver form". |
| **Description** | textarea | Short description shown to the customer. |
| **Visibility** | dropdown | `Public` (anyone can download) / `Logged in users only` / `Booked customers only`. |
| **File** | WordPress media picker | The actual file (PDF, doc, image, zip…) with thumbnail + Select File button. |
Rows are reorderable via move-up / move-down buttons.
### 3.3 Categories & Attributes

**Categorization fields:**
| Field | Type | Notes |
| --- | --- | --- |
| **Trip Categories** | multi-select (hierarchical, `-- ` prefix) | Tags the trip with one or more Trip Category terms (powers category archive pages). |
| **Difficulty Level** | dropdown | One of the difficulty levels you've configured (e.g. Easy / Moderate / Hard / Expert). |
| **Activity Types** | multi-select | Hiking, Wildlife, Cultural, etc. — drives the activities archive. |
| **Featured Priority** | dropdown | `None` (default) / `Featured` / `New` / `Limited` — shows a badge on the public trip card. |
**Custom Attributes** — a delegated component for the attributes you've defined under Yatra → Attributes. Each defined attribute shows as its own input below this section.
### 3.4 SEO & Marketing

**Search-engine optimization:**
| Field | Type | Notes |
| --- | --- | --- |
| **Meta Title** | text | Max 60 chars. Falls back to the trip title when empty. |
| **Meta Description** | textarea (max 160 chars) | Shown in search results below the title. |
| **Meta Keywords** | text | Comma-separated. Mostly ignored by Google but other engines / plugins may use them. |
| **Google Preview** | read-only | Live preview card showing how the trip will appear in a Google search result. |
**Frequently Asked Questions:** a repeater with `{ Question, Answer }` rows. Click **Add FAQ** to append; **Remove (×)** per row to delete. Renders as an accordion on the public trip page (and as `FAQPage` JSON-LD for SEO).
---
## Phase 4 — Advanced
### 4.1 Advanced Settings

**Version control:**
- **Version** — readonly number that auto-increments on every save.
**Scheduled publishing:**
| Field | Type | Notes |
| --- | --- | --- |
| **Schedule Publish Date** | date | When set, the trip is auto-published on this date. |
| **Schedule Unpublish Date** | date | When set, the trip auto-moves to draft / archived on this date. |
**Seasonal auto-management:**
- **Enable seasonal auto-management** checkbox. When on:
- **Auto-Enable Date** — date the trip becomes bookable each year.
- **Auto-Disable Date** — date it stops being bookable.
**Frontend Tabs Management** — drag-to-reorder repeater for the tabs shown on the public trip page (Overview, Itinerary, Included, Location, Important Info, Downloads, FAQ, Story, Special, Testimonials). Each row has:
| Control | Notes |
| --- | --- |
| Grip handle | Drag the row up or down to change tab order on the public page. |
| **Label** | The visible tab title. Disabled until the tab is enabled. |
| Content type | Read-only badge (`overview`, `itinerary`, `custom`, etc.). |
| Enable toggle | Per-tab on/off — disabled tabs are hidden on the public trip page. |
| Icon picker | Pick a Lucide icon or upload an image for the tab. |
| Custom content | textarea (only for `content_type=custom` tabs) — your own HTML/markdown block. |
| Delete (×) | Only available on custom tabs you've added. |
---
## Step 4 — Save Draft, Preview, or Publish
The top-right action bar gives you three controls:

- **Preview** — opens the public trip page in a new tab with current unsaved state.
- **Save Draft** / **Update Draft** — saves without changing status. Always-on safety net.
- **Publish Trip** / **Update Trip** — the primary blue button with a chevron-down dropdown for status variants:
| Action | Resulting status |
| --- | --- |
| Save as Draft | `draft` |
| Save for Review | `review` |
| Mark as Approved | `approved` |
| Publish | `publish` |
| Suspend | `suspended` |
| Archive | `archived` |
::: warning Phase 1 validation
Hitting **Publish** with missing required fields (Title, Slug, Pricing) shows inline errors and jumps the form to the first failing section. The save itself is blocked until the errors are fixed.
:::
At the bottom of the section, **Previous** and **Next** buttons let you step through sections without using the sidebar.
---
## What happens after publish
- The trip appears in Yatra → Trips with status **Published**.
- Its public URL (`/trip//`) is live.
- The trip becomes selectable when creating **Departures**, **Bookings**, and **Discounts**.
- Reports start counting views, add-to-bookings and conversions for this trip.
Next up: configure **[Departures & availability](/departures)** to schedule actual dates travelers can book — or jump straight to **[Bookings](/booking-settings)** if you want to take a test reservation.