IB Tour Manager
Indie Backline - Tour Manager is a tour management plugin for WordPress built by an actively touring musician.
by A15A Hosting · github.com/garrettmickley/ib-tour-manager · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/garrettmickley/ib-tour-manager/archive/refs/heads/main.zipIB Tour Manager (Indie Backline Tour Manager)
A WordPress plugin for independent artists to manage multiple tour schedules, calculate travel times between venues, and display interactive maps with departure time calculations. Part of the Indie Backline ecosystem. Perfect for bands and performers who need to coordinate complex touring schedules.
Mobile-First by design: IB Tour Manager is intentionally built for artists and crews working on the road. Core Band/Fan views and admin workflows are designed to be usable on phones first, then enhanced for larger screens.
Version: 1.3.7
Author: A15A Hosting
Website: https://a15ahosting.com
Features
- Multiple Tours: Create and manage multiple tours simultaneously
- Venue Management: Add, edit, and delete tour stops with venue names, addresses, load-in times, play times, doors open times, sound check times, ticket purchase links, and gig flyer images
- Gig Flyers: Upload a flyer image per venue (stored in the WordPress Media Library); displayed in Fan View and as a thumbnail + download link in Band View
- Venue Search: Search for venues by name using Google Places API - automatically populates address information
- Separate Date/Time Inputs: Easy-to-use date picker and time inputs for better UX
- Interactive Map: Visual display of all tour stops with route visualization
- Travel Time Calculation: Automatically calculates travel times between stops using Google Maps Directions API
- Departure Time Calculation: Determines when to leave the previous location to arrive on time for load-in (includes 30-minute buffer)
- Impossible Schedule Warning: Automatically detects and warns when travel time exceeds available time between stops
- Band & Fan Views: Two display modes - Band View for band members (with all details including departure times) and Fan View for fans (venue, date, doors open, and ticket purchase links)
- Past Event Overlay: In Band View and Fan View schedule cards, events in the past show a dark semi-transparent "EVENT PASSED" overlay; hover (desktop) or tap (touch devices) to temporarily reveal full card details
- Display options: Per-stop checkboxes (TBA, Show in Band View, Show in Fan View) when adding or editing each location; control which stops appear on the Band View and Fan View map and schedule.
- Gutenberg Blocks: Easy-to-use blocks for the WordPress block editor
- Mobile-First UX: Touch-friendly layouts for Band/Fan views and admin workflows, including phone-safe stop reordering and map actions
- Native Maps Integration: Click/tap on map markers to open locations in native map apps (Apple Maps on iOS, Google Maps on Android)
- Schedule Display: Easy-to-read schedule showing all stops with departure times, travel times, and distances
- Database Migrations: Automatic database schema updates when upgrading the plugin
- Data & Privacy: Erase all plugin data (IB Tour Manager → Settings → Data & Privacy) clears every tour, stop, setlist, setlist song, and cached venue. Database tables are kept; only rows are removed. Intended for data-erasure compliance (e.g. right to erasure) or starting with a blank slate. Settings (API keys, gas calculator, etc.) are not removed.
- Remove old tour timer tables: If you migrated from the previous Tour Timer plugin, an optional Remove old tour timer tables section appears under Settings (when applicable). It permanently drops the unused
tour_timer_*tables to free space; current IB Tour Manager data is not affected. Seedocs/indie-backline-tour-manager/legacy-tables-removal.md.
Release and QA
Plugin documentation lives in the ecosystem docs/indie-backline-tour-manager/ folder:
- Sell-ready checklist:
docs/indie-backline-tour-manager/sell-ready-checklist.md - QA automation plan:
docs/indie-backline-tour-manager/qa-automation-plan.md - Free + Add-on model:
docs/indie-backline-tour-manager/free-premium-maintenance.md– free plugin on WP.org, paid add-on on your store; add-on detection, settings registry, feature gating, no license server - TBA stops:
docs/indie-backline-tour-manager/tba-stops.md– per-stop TBA checkbox; only date required when checked; behavior in views and tour calculator - Gig flyers:
docs/indie-backline-tour-manager/gig-flyers.md– per-venue flyer image from Media Library; Fan View display and Band View thumbnail + download - Data & Privacy (erase all data):
docs/indie-backline-tour-manager/data-privacy-erase.md– Erase all plugin data (tours, stops, setlists, venue cache); tables kept, for compliance or reset - Remove legacy tour timer tables:
docs/indie-backline-tour-manager/legacy-tables-removal.md– Optional removal of oldtour_timer_*tables after migration; current data unchanged
Installation
- Upload the
indie-backline-tour-managerfolder to the/wp-content/plugins/directory - Activate the plugin through the 'Plugins' menu in WordPress
- Go to IB Tour Manager → Settings in the WordPress admin menu
- Enter your Google Maps API key
- Go to IB Tour Manager to create your first tour
- Start adding tour stops!
To erase all plugin data (tours, stops, setlists, venue cache) for data-privacy compliance or a full reset, use IB Tour Manager → Settings → Data & Privacy. See docs/indie-backline-tour-manager/data-privacy-erase.md for details. If you migrated from the old Tour Timer plugin and want to remove the unused legacy tables, see Settings → Remove old tour timer tables (when shown) and docs/indie-backline-tour-manager/legacy-tables-removal.md.
Google Maps API Setup
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the following APIs:
- Maps JavaScript API
- Geocoding API
- Directions API
- Places API (for address autocomplete and venue search)
- Create credentials (API Key)
- Copy the API key and paste it into IB Tour Manager → Settings
Note: Make sure to restrict your API key to your website domain for security.
Usage
Creating Tours
- Navigate to IB Tour Manager in the WordPress admin
- Click Add New Tour
- Enter a tour name (required) and optional description
- Click Save Tour
- The page will automatically refresh with your new tour selected and ready to use
- You can also select any tour from the dropdown to switch between tours
Adding Tour Stops
-
Select a tour from the dropdown (or create a new one)
-
Click Add New Stop (or click Edit on an existing stop to modify it)
-
Select the Type from the dropdown:
- Launching Point: Starting location (only one allowed per tour)
- Stop: Roadside attraction, gas station, etc.
- Venue: Concert venue or show location
- Ending Point: Ending location (only one allowed per tour)
-
TBA (optional): Check "TBA (to be announced)" if you know you have to stop here but don’t have all the details yet. When TBA is checked, only Date is required; all other fields (location name, address, times, etc.) are optional. Fill in whatever you know; anything you leave blank will show as “TBA” in Band View and Fan View. The tour calculator will include this stop in travel/departure times only if you add a location; otherwise it is skipped for route math.
-
Fill in the location information:
- Location Name (required unless TBA) - Click "Search" to find locations by name or address and auto-populate details
- Street Address (required unless TBA) - Auto-filled when using search
- City (required unless TBA) - Auto-filled when using search
- State (required unless TBA) - Auto-filled when using search
- ZIP Code (optional) - Auto-filled when using search
- Date (required) - Select the date for this stop
-
For Launching Points: No additional fields required
-
For Stops:
- Time Spent (minutes) (required unless TBA) - Estimated time spent at this location
-
For Venues:
- Load-in Time (required unless TBA) - When you need to arrive at the venue
- Sound Check Time (optional) - When sound check is scheduled
- Doors Open Time (optional) - When doors open to the public
- Play Time (required unless TBA) - When the show starts
- Buy Tickets URL (optional) - Link to ticket purchase page (displayed in Fan View)
- Gig Flyer (optional) - Select or upload a flyer image from the WordPress Media Library. The flyer is shown in Fan View and appears as a thumbnail with a download link in Band View. Images are stored in the standard Media Library so you can reuse them elsewhere.
- Setlist (optional) - Use the tour default setlist or set a custom setlist for this venue. Launching Point, Stop, and Ending Point types do not use setlists.
-
For Ending Point: Optional Arrive by time; the tour calculator uses it to compute when to leave the previous stop.
-
Click Save Stop (stop order is automatically assigned and can be adjusted via drag-and-drop or Move Up / Move Down controls for touch/mobile)
The plugin will automatically geocode the address to get latitude/longitude coordinates. Searched locations are cached to minimize API calls.
Note: The form fields change based on the selected type. Only one launching point is allowed per tour.
Location Search Feature
Instead of manually entering address information:
- Type the location name or address in the "Location Name" field
- Click the Search button
- Select a location from the search results
- All address fields will be automatically populated
- Previously searched locations are cached to minimize API calls
Displaying the Tour Map
Shortcodes
Band View (for band members - shows all details including departure times):
[ibl_tour_manager_band_view tour_id="1"]
Legacy shortcodes [tour_timer_internal] and [tour_timer_public] still work.
Fan View (for fans - shows only venues with date, doors open, and ticket purchase links):
[ibl_tour_manager_fan_view tour_id="1"]
Legacy shortcode [tour_timer_public] also works.
Both shortcodes support custom map height and optional width:
[ibl_tour_manager_band_view tour_id="1" height="800px"]
[ibl_tour_manager_fan_view tour_id="1" height="700px"]
[ibl_tour_manager_fan_view tour_id="1" height="300px" width="100%"]
Note: If you don't specify a tour_id, the first tour will be displayed.
In both Band View and Fan View, the schedule panel shows the tour name as the heading. If the tour has a description (set when creating or editing the tour), the description is shown directly below the tour name with no label—just the description text.
Display options (per stop)
When adding or editing a stop, the Display options section lets you set for that location:
For each stop type you can choose:
- Show in Band View – show this type in the Band View map and schedule list
- Show in Fan View – show this type in the Fan View map and schedule list
Stop types:
- Starting Location (Launching Point) – default: Band View ✓, Fan View ✗
- Venue – default: Band View ✓, Fan View ✓
- TBA – stops marked “TBA (to be announced)”; default: Band View ✓, Fan View ✗
- Stops – roadside stops (gas, etc.); default: Band View ✓, Fan View ✗
- Ending Location (Ending Point) – default: Band View ✓, Fan View ✗
These options apply to both the tour map and the schedule list. Route and departure-time calculations still use the full tour order; only the visible set is drawn and listed.
Gutenberg Blocks
- In the WordPress block editor, click the + button to add a block
- Search for "IB Tour Manager"
- Choose either:
- IB Tour Manager (Band View) - Full view with all details for band members
- IB Tour Manager (Fan View) - Public-facing view for fans
- In the block settings panel:
- Select a tour from the dropdown
- Optionally adjust the map height and width
- The block will display the tour map and schedule
View Types Explained
Band View (formerly "Internal View") shows stops that have Show in Band View checked (per stop). By default all stops are shown. It includes:
- Tour name and description: The schedule heading shows the tour name; if a tour description is set, it appears directly below the name (no "Description:" label)
- Departure time from previous location (highlighted, red if urgent)
- Load-in time
- Play time
- Doors open time (if set)
- Sound check time (if set)
- Travel time and distance
- Link to open in native map apps
- Impossible Schedule Warning: Red warning box if travel time exceeds available time between stops
- Route lines on the map connecting all stops
- Gig flyer (for venues): Thumbnail and “Download flyer” link when a flyer image is set
Fan View (formerly "Public View") shows stops that have Show in Fan View checked (per stop). By default only venues are shown in Fan View. It includes:
- Tour name and description: The schedule heading shows the tour name; if a tour description is set, it appears directly below the name (no "Description:" label)
- Venue name
- Address
- Date
- Doors open time (or show time if doors open not set)
- Buy Tickets link (if URL is provided)
- Gig flyer image (if a flyer was added for the venue – full image, clickable to open full size)
- Link to open in native map apps
- Map shows only venue pins (no route lines)
How It Works
-
Stop Types:
- Launching Point: Your starting location (e.g., home, rehearsal space). Only one allowed per tour. Requires only a date.
- Stop: An intermediate stop (e.g., gas station, roadside attraction). Requires a date and estimated time spent.
- Venue: An actual performance venue. Requires a date, load-in time, and play time. Can include a "Buy Tickets" URL.
- Ending Point: Your final destination. Only one allowed per tour. Requires only a date. Optional Arrive by time: when set, the tour calculator computes when to leave the previous stop so the band reaches the ending point by that time.
-
Stop Ordering: Stops are automatically ordered as they are added, but can be reordered via drag-and-drop in the admin interface.
-
Route Calculation: The plugin uses Google Maps Directions API to calculate the actual driving route between stops.
-
Travel Time: Real-time travel duration is calculated based on the route.
-
Departure Time: For each stop (except Launching Point), the plugin calculates when you need to leave the previous stop:
- For venues: Departure Time = Load-in Time - Travel Time - 30 minute buffer - Time spent at previous stop (if previous stop was a "Stop" type)
- For stops: Departure Time = Arrival Time - Travel Time - 30 minute buffer - Time spent at previous stop (if previous stop was a "Stop" type)
- For ending point: when an "Arrive by" time is set, Departure Time = Arrive by time - Travel Time - 30 minute buffer - Time spent at previous stop
- Time spent at "Stop" type locations is factored into the previous stop's effective departure time.
-
Impossible Schedule Detection: The plugin automatically checks if there's enough time between stops:
- Compares available time (Current Stop's Arrival Time - Previous Stop's End Time) with required time (Travel Time + 30 min buffer + Time spent at previous stop)
- Displays a prominent warning if travel time exceeds available time
- Shows exactly how many hours short the schedule is
-
Schedule Display: Shows all stops with relevant information based on the view type.
-
Urgent Warnings: Departure times less than 1 hour away are highlighted in red.
-
Venue Caching: To minimize Google Maps API calls, successfully searched venues and addresses are stored in a local database cache. Future searches will first check the cache.
Requirements
- WordPress 5.0 or higher
- PHP 7.0 or higher
- MySQL 5.6 or higher
- Google Maps API key with required APIs enabled
- jQuery (included with WordPress)
Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Technical Details
Database
The plugin creates two custom tables:
wp_ibl_tour_manager_tours:
- Tour information (name, description)
- Timestamps
wp_ibl_tour_manager_stops:
- Tour association (tour_id)
- Location information (name, address components, full address)
- Stop type (launching_point, stop, venue)
- Times (doors open, sound check, load-in, play time) - only for venues
- Time spent (in minutes) - only for stops
- Buy Tickets URL - only for venues
- flyer_image_id – WordPress attachment ID for gig flyer image (only for venues); image stored in standard Media Library
- Coordinates (latitude, longitude)
- Stop order for tour sequencing
wp_ibl_tour_manager_venue_cache:
- Cached venue/location information from Google Maps API searches
- Reduces API calls by storing previously searched locations
- Includes name, address, coordinates, and search query
Database Migrations
The plugin includes an automatic migration system that updates the database schema when new features are added. Migrations run automatically when:
- The plugin is activated
- The admin page is loaded (if version has changed)
This ensures your data is preserved when upgrading the plugin. The migration system handles:
- Adding new columns (stop_type, time_spent)
- Migrating from old column names (is_launching_point → stop_type)
- Making columns nullable when needed
- Creating new tables (venue_cache)
Files Structure
indie-backline-tour-manager/
├── ibl-tour-manager.php (Main plugin file)
├── includes/
│ ├── class-ibl-tour-manager-license.php
│ ├── class-ibl-tour-manager-features.php
│ ├── class-ibl-tour-manager-settings.php
│ ├── class-ibl-tour-manager-database.php
│ ├── class-ibl-tour-manager-logger.php
│ ├── class-ibl-tour-manager-admin.php
│ ├── class-ibl-tour-manager-frontend.php
│ └── class-ibl-tour-manager-blocks.php
├── templates/
│ ├── admin-page.php
│ ├── settings-page.php
│ └── frontend-display.php
├── assets/
│ ├── css/
│ │ ├── admin.css
│ │ ├── frontend.css
│ │ └── blocks.css
│ └── js/
│ ├── admin.js
│ ├── frontend.js
│ └── blocks.js
└── README.md
(Documentation for this plugin lives in the ecosystem docs/indie-backline-tour-manager/ folder.)
Shortcode Parameters
Band View Shortcode: [ibl_tour_manager_band_view]
tour_id(optional) - ID of the tour to display (default: first tour)height(optional) - Map height in CSS units (default: "420px", mobile-first)width(optional) - Map width in CSS units (e.g. "800px", "100%"); leave empty for default
Fan View Shortcode: [ibl_tour_manager_fan_view]
tour_id(optional) - ID of the tour to display (default: first tour)height(optional) - Map height in CSS units (default: "420px", mobile-first)width(optional) - Map width in CSS units (e.g. "800px", "100%"); leave empty for default
Block Attributes
Both blocks support:
tourId- ID of the tour to displayheight- Map height in CSS units (default: "420px", mobile-first)width- Map width in CSS units (optional; e.g. "800px", "100%")
Changelog
Version 1.3.7
- Event deletion: Deleting a tour stop (event) now removes it permanently from the database. The legacy migration from the old Tour Timer plugin now runs only once; it no longer re-imports data on every plugin update, so deleted stops stay deleted.
- Remove old tour timer tables: Under IB Tour Manager → Settings, an optional Remove old tour timer tables section appears when you have migrated from the previous plugin and the old
tour_timer_*tables still exist. You can permanently remove those unused tables to free space; your current tours and stops are not affected. Requires confirmation and capability checks. Seedocs/indie-backline-tour-manager/legacy-tables-removal.md.
Version 1.3.6
- Data & Privacy: New Erase all plugin data option under IB Tour Manager → Settings → Data & Privacy. Permanently removes all tours, stops, setlists, setlist songs, and cached venue data; database tables are not dropped so the plugin continues to work. Intended for data-erasure compliance (e.g. right to erasure) or starting with a blank slate. Requires confirmation checkbox and shows a browser confirm before submitting. Settings (API keys, gas calculator, etc.) are not changed.
Version 1.3.5
- Mobile-first update: Refined frontend and admin layouts for phone-first usability, including improved responsive spacing and form behavior on small screens.
- Touch-safe reordering: Added explicit stop move controls for mobile/touch workflows while preserving desktop drag-and-drop support.
- Map sizing defaults: Updated shortcode/block default map height to a more mobile-friendly value (
420px), while still honoring customheightandwidthvalues.
Version 1.3.4
- Past event indicator: Schedule cards in Band View and Fan View now detect when an event time has passed (using the viewer's local date/time) and show a dark semi-transparent EVENT PASSED overlay. On desktop, hovering the card hides the overlay; on touch devices, tapping the card toggles the overlay so viewers can still read details.
Version 1.3.3
- Setlists tab: Setlists created in a tour or venue editor now appear in the Setlists tab. All setlists (standalone, tour default, and venue override) are listed in one place; edits in the Setlists tab or in the tour/venue editor stay in sync (single source of truth). Tour/venue context is shown next to each setlist (e.g. "Tour: Summer 2025", "Venue: The Ritz").
Version 1.3.2
- Tour description in views: In Band View and Fan View, the tour description (if set) is displayed directly under the tour name in the schedule panel, with no "Description:" label—just the description text.
- Gig flyers: Add optional flyer image per venue (venue stops only). Select or upload from the WordPress Media Library. Flyers are stored as standard Media Library attachments for reuse elsewhere. Fan View: full flyer image is displayed (clickable to open full size). Band View: thumbnail and “Download flyer” link for easy access.
Version 1.3.1
- Display options (per stop): When adding or editing a stop, a Display options section includes TBA, Show in Band View, and Show in Fan View. Each location can be shown or hidden in Band View and Fan View independently. Defaults: Band View on for all; Fan View on for venues, off for other types.
Version 1.3.0
- Setlist library: Standalone Setlists page (IB Tour Manager → Setlists) to create, edit, archive, and delete setlists
- Tour integration: Load a library setlist into tour default; venue stops can use tour default or a custom setlist (free: 1 active setlist, Premium: unlimited)
- Setlist code cleanup: removed backwards-compatibility paths; single source of truth for setlist behavior
Version 1.2.0
- Setlists: Add tour-level and venue-level setlists with song ordering
- Audio attachments for full setlists and individual songs
- Admin tooling for setlist CRUD and drag-and-drop song ordering
Version 1.1.0
- Gas Calculator: Add EIA API integration with manual fallback price
- Vehicle MPG setting to estimate tour fuel costs
Version 1.0.0
- IB Tour Manager: Core tour creation and schedule calculations
- Maps display with routes and departure time warnings
Version 0.4.1
- Buy Tickets Feature: Added ticket purchase link field for venues
- Buy Tickets links now display in Fan View list and map popups
- Improved Buy Tickets link styling and visibility
- Enhanced debugging for ticket URL data flow
- Fixed edit modal population to include all fields (tours, stops, venues)
Version 0.4.0
- Added Ending Point stop type (only one allowed per tour)
- Fixed Band View to properly display all stops and ending points
- Fixed Fan View map to exclude launching points, stops, and ending points (venues only)
- Removed route lines from Fan View map (pins only)
- Added Buy Tickets link to map info windows
- Auto-assign stop order on creation (removed manual input)
- Improved database migration to support ending_point type
- Enhanced map info windows with view-specific content
Version 0.3.0
- Major Refactor: Changed from checkbox-based launching point to dropdown with 3 stop types
- Added Stop type for roadside attractions, gas stations, etc. (requires time spent)
- Added Launching Point type (only one allowed per tour, requires only date)
- Added Venue type (requires date and all times)
- Added venue/location cache table to minimize API calls
- Unified search button (removed separate address search)
- Added drag-and-drop reordering for stops
- Updated timing calculations to include time spent at stops
- Fixed validation to properly handle different stop types
- Improved form field visibility based on selected type
- Updated frontend display to show stop types and time spent
- Fixed activation errors with proper output buffering
Version 0.2.1 (Previous)
- Added sound check time field
- Changed to separate date and time inputs for better UX
- Added impossible schedule warning system
- Improved departure time calculation logic
- Enhanced tour creation with auto-refresh and confirmation
- Fixed edit stop button functionality
- Added comprehensive error handling and debugging
- Updated plugin author information
Support
For issues, questions, or feature requests, please visit:
- Website: https://a15ahosting.com
- Author: A15A Hosting
License
GPL v2 or later