Getting Started


This guide contains everything you need to either easily implement our reservation widget into your website, or create your own designed reservation experience. We believe that a beautiful reservation tool on your website will result in more online reservations. So your website deserves the best reservation experience, in order to turn visitors into guests.

Our widget has an iconic design and is fully customizable. It leans towards a minimalistic and neutral style. Our widget is completely white label, hence we do not show "powered by"-labels, links or logos.

Read more about how to use our widget - from straight and simple implementations to sophisticated and complicated reservation schemes with rules, options, selections, deposits, payments and more.

The reservation widget

Iframe and Javascript

We offer two implementation plans; iframe and Javascript.

  • Iframe is simple, fast and secure.
  • Javascript has more advanced functionalities.


The IFRAME is the most populair implementation. Responsive for mobile devices. Simple to use. Easy to customize. We recommend to use an iframe if you are satisfied with the settings below.

Language / Locale:
Font family:
Font color:
Background color:
Border color:
Base color:
Base text color:
Font color inactive/closed:
Link color:
Field color:
Hide company field:
Hide newsletter subscription:
Hide group reservation by email:
Hide group reservation by phone:

Reset to default

Paste this in the BODY of your page:

<iframe src="" width="500" height="500" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="true" style="max-width:100%"></iframe>


The most powerfull implementation

Craft a beautiful reservation experience. Change colors, fonts, size and language. Edit the text and translations. Implement (requiered) options, selections, events, campaigns, prepaid reservations, deposits, tickets, credit card holds, terms and conditiuons, required fields, extra contact fields like street address, birthday, and more.

Language / Locale:

Paste this in the HEAD of your page:

<script type="text/javascript" src=""></script>

Paste this in the BODY of your page:

<div id="etender-calendar-widget"></div>

Page Link

Just a link. Click here


Book Now Button

Get more reservations from Facebook. Read here how to add a call-to-action button to your Page

Go to Facebook and add a button to Your Page. Choose BOOK SERVICES. Choose BOOK NOW. Enter the website below:

Tip: use the reservation page of your website instead


Supported languages and locales

We support 19 languages and locales. If your language is not listed here, please contact us.

Text and Translations

Have the last word

All text and translations can be changed. We support 19 languages to change.

eTenderWidget.addLanguage("en", {
    "etender-label-change": "Change",
    "etender-label-restaurants-select": "Choose a restaurant:",
    "etender-label-partysize-select": "Select the party size",
    "etender-choose-partysize": "Make a choice",
    "etender-max-partysize-question": "More persons?",
    "etender-label-time-select": "Select the time",
    "etender-label-make-reservation": "Contact information",
    "etender-label-reservation-title": "Title",
    "etender-label-reservation-fullname": "Name",
    "etender-label-reservation-phone": "Phone",
    "etender-label-reservation-email": "Email",
    "etender-label-reservation-newslettersubscription": "Subscribe to newsletter?",
    "etender-label-reservation-company": "Company",
    "etender-label-reservation-address": "Address",
    "etender-label-reservation-postalcode": "Postal code",
    "etender-label-reservation-city": "City",
    "etender-label-reservation-country": "Country",
    "etender-label-reservation-birthdate": "Birthdate",
    "etender-reservation-creditcard-header": "Credit card",
    "etender-label-reservation-creditcard-number": "Credit card",
    "etender-label-reservation-creditcard-expiration": "Expiration",
    "etender-label-reservation-creditcard-expiration-month": "MM",
    "etender-label-reservation-creditcard-expiration-year": "YYYY",
    "etender-label-reservation-creditcard-cvv": "CVV",
    "etender-label-reservation-remarks": "Message",
    "etender-placeholder-reservation-remarks": "Message",
    "etender-button-post-reservation": "Make reservation",
    "etender-message-reservation-error": "There was an error creating your reservation. Please contact the restaurant or try again later.",
    "etender-message-reservation-success": "You will receive a confirmation email. Did you not receive anything? Then contact us.",
    "etender-tab-partysize-long": "Party size",
    "etender-tab-partysize-short": "Party size",
    "etender-label-persons-long": "persons",
    "etender-label-persons-short": "pers.",
    "etender-label-person-long": "person",
    "etender-tab-time": "Time",
    "etender-tab-date": "Date",
    "etender-titles": "Mr.,Mrs.",
    "etender-countries": "Netherlands,Belgium,Germany,France,Great Britain,United States",
    "etender-label-confirmation-page": "Thank you for your reservation",
    "etender-label-confirmation-page-error": "Something went wrong",
    "etender-label-max-partysize-page": "Contact us",
    "etender-label-max-partysize-page-infomessage": "For large groups please contact {0}.",
    "etender-label-prev": "Back",
    "etender-label-next": "Next",
    "etender-title-fixed-endtime": "Fixed end time",
    "etender-text-fixed-endtime": "Please note that your table is required to be returned by {0}.",
    "etender-title-cancellation": "Cancel reservation",
    "etender-text-cancellation": "Do you want to cancel your reservation?",
    "etender-btn-confirm-cancellation": "Cancel reservation",
    "etender-label-cancellation-page": "Cancellation processed",
    "etender-message-cancellation-success": "Your cancellation has been processed.",
    "etender-label-error": "Something went wrong",
    "etender-message-cancellation-error": "It is not possible to process your cancellation. Please contact us.",
    "etender-label-no-table-allocated-page-error": "No place available",
    "etender-message-no-table-allocated-error": "Unfortunately, there is no place for your party size. Please contact us.",
    "etender-label-reservation-not-found": "Not found",
    "etender-message-reservation-not-found": "The reservation is not found.",
    "etender-errormessage-reservation-fullname": "This name is invalid.",
    "etender-errormessage-reservation-phone": "This phone number is invalid.",
    "etender-errormessage-reservation-email": "This email address is invalid."

Replace a text string

<div id='etender-widget-texts'>
	<div data-language='en' data-key='etender-choose-partysize' data-value='Select your party size'></div>
	<div data-language='nl' data-key='etender-choose-partysize' data-value='Selecteer aantal personen'></div>


Process realtime conversions

A pagehook is a Javascript code that will be executed when a reservation is created or cancelled. You can use a pagehook to redirect the user to a custom URL or execute a script for site tracking. For example Google Analytics, Google Adwords or Facebook pixel.

Example 1

<script id="etender-confirmation-page-hook" type="text/template">

Example 2

<script id="etender-confirmation-page-hook" type="text/template">

Google Analytics

Get insights with Google Analytics

When a reservation is created or cancelled, Google Analytics will seamlessly track the conversion. See your customer engagement from Adwords and use powerfull marketing analytics solutions for your restaurant like Google Analytics 360, Google Tag Manager, Google Optimize and Google Data.


The original global site tag contains two scripts.

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=""></script>

 window.dataLayer = window.dataLayer || [];
 function gtag(){dataLayer.push(arguments);}
 gtag('js', new Date());
 gtag('config', 'UA-XXXXXXXXX-1');

The first script should be placed outside the pagehook. The second script should be placed inside the pagehook and omit the enclosing script tags.

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=""></script>

<script id="etender-confirmation-page-hook" type="text/template">
 window.dataLayer = window.dataLayer || [];
 function gtag(){dataLayer.push(arguments);}
 gtag('js', new Date());
 gtag('config', 'UA-XXXXXXXXX-1');