Skip to main content
Manage all your business travel in one place with New Expensify’s comprehensive trip management features.

My Trips

Access all your trips from the My Trips page:
// Source: src/pages/Travel/MyTripsPage.tsx
function MyTripsPage({route}: MyTripsPageProps) {
    const policyID = route.params?.policyID;
    const {translate} = useLocalize();

    return (
        <AccessOrNotFoundWrapper policyID={policyID}>
            <ScreenWrapper
                includeSafeAreaPaddingBottom={false}
                shouldEnablePickerAvoiding={false}
                shouldEnableMaxHeight
                testID="MyTripsPage"
                shouldShowOfflineIndicatorInWideScreen
            >
                <HeaderWithBackButton
                    title={translate('travel.header')}
                    shouldShowBackButton
                />
                <ManageTrips policyID={policyID} />
            </ScreenWrapper>
        </AccessOrNotFoundWrapper>
    );
}
The My Trips page shows all bookings for the selected workspace. Switch workspaces to view trips for different companies or teams.

Trip Categories

Trips are organized by status:
  • Upcoming: Future trips that haven’t started yet
  • Active: Trips currently in progress
  • Past: Completed trips
  • Cancelled: Trips that were cancelled

Trip Details

View comprehensive details for each trip:

Flight Details

For flight reservations:
// Source: src/pages/Travel/FlightTripDetails.tsx
function FlightTripDetails({reservation, prevReservation, personalDetails}: FlightTripDetailsProps) {
    const styles = useThemeStyles();
    const {translate} = useLocalize();

    const startDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.start.date));
    const endDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.end.date));
    const flightDuration = reservation.duration ? DateUtils.getFormattedDuration(translate, reservation.duration) : '';
    const flightRouteDescription = `${reservation.start.cityName} (${reservation.start.shortName}) ${translate('common.conjunctionTo')} ${reservation.end.cityName} (${reservation.end.shortName})`;

    const displayName = personalDetails?.displayName ?? reservation.travelerPersonalInfo?.name;

    return (
        <>
            <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>{flightRouteDescription}</Text>
            
            <MenuItemWithTopDescription
                description={`${translate('travel.flight')} ${CONST.DOT_SEPARATOR} ${flightDuration}`}
                title={`${reservation.company?.longName} ${CONST.DOT_SEPARATOR} ${reservation.route?.airlineCode}`}
                copyable
                interactive={false}
            />
            
            <MenuItemWithTopDescription
                description={translate('travel.flightDetails.takeOff')}
                titleComponent={<Text style={[styles.textLarge, styles.textHeadlineH2]}>{startDate.hour}</Text>}
                helperText={`${reservation.start.longName} (${reservation.start.shortName})`}
                interactive={false}
            />
            
            <MenuItemWithTopDescription
                description={translate('travel.flightDetails.landing')}
                titleComponent={<Text style={[styles.textLarge, styles.textHeadlineH2]}>{endDate.hour}</Text>}
                helperText={`${reservation.end.longName} (${reservation.end.shortName})`}
                interactive={false}
            />
        </>
    );
}
Flight Information Includes:
  • Route (origin to destination)
  • Airline and flight number
  • Flight duration
  • Departure date and time
  • Arrival date and time
  • Airport terminals
  • Seat number
  • Cabin class
  • Record locator (confirmation)
  • Passenger details

Hotel Details

For hotel reservations:
// Source: src/pages/Travel/HotelTripDetails.tsx
function HotelTripDetails({reservation, personalDetails}: HotelTripDetailsProps) {
    const styles = useThemeStyles();
    const {translate} = useLocalize();

    const checkInDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.start.date));
    const checkOutDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.end.date));
    const displayName = personalDetails?.displayName ?? reservation.travelerPersonalInfo?.name;

    return (
        <>
            <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>
                {Str.recapitalize(reservation.start.longName ?? '')}
            </Text>
            
            <MenuItemWithTopDescription
                description={translate('common.address')}
                title={StringUtils.removeDoubleQuotes(reservation.start.address)}
                copyable
                interactive={false}
            />
            
            <MenuItemWithTopDescription
                description={translate('travel.hotelDetails.checkIn')}
                titleComponent={<Text style={[styles.textLarge, styles.textHeadlineH2]}>{checkInDate.date}</Text>}
                interactive={false}
            />
            
            <MenuItemWithTopDescription
                description={translate('travel.hotelDetails.checkOut')}
                titleComponent={<Text style={[styles.textLarge, styles.textHeadlineH2]}>{checkOutDate.date}</Text>}
                interactive={false}
            />
        </>
    );
}
Hotel Information Includes:
  • Hotel name
  • Full address
  • Check-in date
  • Check-out date
  • Room type
  • Cancellation policy
  • Confirmation number
  • Guest information

Rental Car Details

For rental car reservations:
// Source: src/pages/Travel/CarTripDetails.tsx
function CarTripDetails({reservation, personalDetails}: CarTripDetailsProps) {
    const styles = useThemeStyles();
    const {translate} = useLocalize();

    const pickUpDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.start.date));
    const dropOffDate = DateUtils.getFormattedTransportDateAndHour(new Date(reservation.end.date));
    const displayName = personalDetails?.displayName ?? reservation.travelerPersonalInfo?.name;

    return (
        <>
            <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>{reservation.vendor}</Text>
            
            <MenuItemWithTopDescription
                description={translate('travel.carDetails.pickUp')}
                titleComponent={
                    <Text style={[styles.textLarge, styles.textHeadlineH2]}>
                        {pickUpDate.date} {CONST.DOT_SEPARATOR} {pickUpDate.hour}
                    </Text>
                }
                helperText={reservation.start.location}
                interactive={false}
            />
            
            <MenuItemWithTopDescription
                description={translate('travel.carDetails.dropOff')}
                titleComponent={
                    <Text style={[styles.textLarge, styles.textHeadlineH2]}>
                        {dropOffDate.date} {CONST.DOT_SEPARATOR} {dropOffDate.hour}
                    </Text>
                }
                helperText={reservation.end.location}
                interactive={false}
            />
        </>
    );
}
Rental Car Information Includes:
  • Rental company
  • Pick-up date, time, and location
  • Drop-off date, time, and location
  • Car type and model
  • Cancellation policy
  • Confirmation number
  • Driver information

Trip Summary

View a complete summary of your trip:
// Source: src/pages/Travel/TripSummaryPage.tsx
// Displays:
// - All flight segments
// - Hotel stays
// - Rental car periods
// - Total trip cost
// - Itinerary overview
1

Access Trip Summary

Navigate to My Trips and select a trip
2

View All Segments

See all flights, hotels, and cars in chronological order
3

Review Costs

Check total trip expenses and individual booking costs
4

Share Itinerary

Export or share trip details with colleagues

Modifying Trips

Change your travel plans:

Change Flight

  1. Open flight details
  2. Select “Modify Flight”
  3. Choose new flight (subject to airline policies)
  4. Pay any change fees or fare differences
  5. Receive updated confirmation

Change Hotel

  1. Review cancellation policy
  2. Cancel existing booking (if allowed)
  3. Book alternative hotel
  4. Update expense report

Change Rental Car

  1. Check modification policy
  2. Modify dates or vehicle type
  3. Confirm changes
  4. Receive updated confirmation
Change fees and policies vary by provider. Non-refundable bookings may not be changeable without penalties.

Cancelling Trips

Cancel bookings when plans change:
1

Review Policy

Check the cancellation policy for each booking
2

Calculate Refund

Determine if you’ll receive a full refund, partial refund, or credit
3

Cancel Booking

Cancel through the trip details page
4

Confirm Cancellation

Receive cancellation confirmation
5

Update Expenses

Expense report automatically updated with cancellation

Trip Alerts

Receive real-time notifications about your trips:
  • Flight Delays: Notified of delays as they occur
  • Gate Changes: Updated gate information
  • Cancellations: Immediate notification of cancellations
  • Check-in Reminders: Reminders to check in for flights
  • Weather Alerts: Travel advisories for destinations
Enable push notifications in your device settings to receive trip alerts on mobile.

Trip Documents

Access all trip-related documents:
  • Boarding Passes: Digital boarding passes for flights
  • Hotel Vouchers: Hotel confirmation vouchers
  • Rental Agreements: Car rental agreements
  • Receipts: All booking receipts
  • Itinerary: Complete trip itinerary

Sharing Trips

Share trip information with others:
  1. Email Itinerary: Send trip details via email
  2. Calendar Integration: Add to calendar app
  3. Share with Colleagues: Share with team members
  4. Print: Print trip documents

Expense Integration

Trips automatically integrate with expenses:

Automatic Expense Creation

  • Each booking creates an expense
  • Receipts automatically attached
  • Expenses added to appropriate report
  • Category and description pre-filled

Expense Status

  • Pending: Trip not yet completed
  • Ready to Submit: Trip completed, expense ready
  • Submitted: Included in submitted report
  • Approved: Expense approved
  • Reimbursed: Reimbursement processed

Travel Preferences

Set your travel preferences:
  • Seat Preferences: Window, aisle, or no preference
  • Meal Preferences: Dietary restrictions and preferences
  • Loyalty Programs: Frequent flyer and hotel reward numbers
  • TSA PreCheck/Global Entry: Expedited security
  • Special Assistance: Wheelchair, special needs
  • Communication: Email and SMS preferences

Past Trips

Review and reference past trips:
  • View completed trip details
  • Access receipts and confirmations
  • Review expenses
  • Rebook similar trips
  • Track travel patterns

Trip Analytics

For workspace admins:
  • Total travel spend by employee
  • Most frequent routes
  • Average booking costs
  • Policy compliance rates
  • Preferred vendors
  • Travel trends over time

Mobile Features

Manage trips on mobile:
  • Offline Access: View trip details without internet
  • Check-in: Mobile check-in for flights
  • Boarding Passes: Digital boarding passes in wallet
  • Maps: Navigate to hotels and rental car locations
  • Contacts: Quick access to hotel and airline contacts

Best Practices

  1. Review Before Travel: Check all details before departure
  2. Save Documents: Download boarding passes and confirmations
  3. Enable Alerts: Turn on notifications for trip updates
  4. Check Policies: Review cancellation and change policies
  5. Update Preferences: Keep traveler profile current
  6. Monitor Expenses: Verify expenses are created correctly
  7. Keep Records: Retain all trip documentation

Troubleshooting

If trips aren’t showing:
  • Verify you’re viewing the correct workspace
  • Check that booking was completed successfully
  • Refresh the My Trips page
  • Contact Concierge if trip is confirmed but not showing
If you can’t modify a trip:
  • Review the change policy for the booking
  • Check if the booking is non-refundable
  • Contact the provider directly for assistance
  • Work with Concierge for complex changes
If not receiving trip alerts:
  • Verify notification settings are enabled
  • Check device notification permissions
  • Ensure contact information is correct
  • Test with a demo booking
If expense wasn’t automatically created:
  • Verify trip was booked through Expensify
  • Check that payment was processed
  • Manually create expense if needed
  • Contact Concierge for assistance

Support

For trip management help:
  • Contact Expensify Concierge from the trip details page
  • Review booking confirmations for provider contact info
  • Check the Travel Help Center for guides
  • Contact Spotnana support for booking-specific issues

Build docs developers (and LLMs) love