Documentation

The export tool is located in Easy Booking > Reports > Bookings tab in your admin dashboard.

Export bookings

  • (Optional) Use the filters at the top of the page to filter bookings you wish to export and click on “Filter”.
  • Select the format you wish to export to (JSON, XML, CSV, iCal).
  • Click on “Export” and save the file.

Completed bookings will not be exported by default. You need to select “Completed” in the “Booking status” filter first.

By default, the following data is exported for each booking:

  • Product ID
  • Start date
  • End date
  • Quantity

There are filters available for each format in order to customize the exported data (see below).

Customize exported data

This is a developer level documentation and support is not provided for customizations. You can learn about action and filter hooks here. If you are not sure what to do, consider hiring a developer.

CSV

add_filter( 'easy_booking_csv_export_headers', 'wceb_custom_csv_headers', 10, 1 ); 

function wceb_custom_csv_headers( $headers ) {
    $headers = 'product_id, start_date, end_date, quantity'; // Default
    return $headers;
}
add_filter( 'easy_booking_csv_export_line', 'wceb_custom_csv_line', 10, 2 );

function wceb_custom_csv_line( $content, $booking ) {
    $content = $booking['product_id'] . ',' . $booking['start'] . ',' . $booking['end'] . ',' . $booking['qty']; // Default
    return $content;
}

JSON

add_filter( 'easy_booking_json_export', 'wceb_custom_json', 10, 2 );

function wceb_custom_json( $content, $bookings ) {
    $content = json_encode( $bookings ); // Default
    return $content;
}

XML

add_filter( 'easy_booking_xml_export_line', 'wceb_custom_xml_line', 10, 2 ); 

function wceb_custom_xml_line( $content, $booking ) {
    $content = '<booking product_id="' . $booking['product_id'] . '" start_date="' . $booking['start'] . '" end_date="' . $booking['end'] . '" qty="' . $booking['qty'] . '" />'; // Default
    return $content;
}

iCal

add_filter( 'easy_booking_ical_export_calendar', 'wceb_custom_ical_calendar', 10, 1 );

function wceb_custom_ical_calendar( $content ) {
    $site_name = get_bloginfo( 'name' );
    $timezone = get_option( 'timezone_string' );
    $content = 'BEGIN:VCALENDAR
PRODID:-//' . $site_name . '//Bookings//EN
VERSION:2.0
X-WR-TIMEZONE:' . $timezone; // Default
   
    return $content;
}
add_filter( 'easy_booking_ical_export_event', 'wceb_custom_ical_event', 10, 2 ); 

function wceb_custom_ical_event( $content, $booking ) {
    $content = 'BEGIN:VEVENT
DTSTART:' . wceb_get_date_for_ical( strtotime( $booking['start'] ) ) . '
DTEND:' . wceb_get_date_for_ical( strtotime( $booking['end'] ) ) . '
DTSTAMP:' . wceb_get_date_for_ical( time() ) . '
UID:' . $this->generate_uuid() . '
SUMMARY: #' . $booking['product_id'] . '
END:VEVENT'; // default
    
    return $content;
}