下記手順で無料で予約フォームが作成できます。

まずはグーグルカレンダーを追加で作成します。

※Googleカレンダーの画面からマイカレンダーを選択し、Reservationという名前の新しいカレンダーを作成する。

① スプレッドシートをデータベース化します。
こちらを参照
今回はシート名を「DATA」とします。

② スプレッドシートにリンクする内容を記載
A,B,C,D,F,G,H,I,J,Kの1行目に
data,year,month,day,time1,time2,time3,company,mail,tel,text
と記入します。

③ HTMLを作成する。
予約フォーム

<!DOCTYPE html>
<html>
<head>
<title>予約フォーム</title>

<script type="text/javascript">

function validateForm(){

var flag = 0;
if(document.getElementById("time1").value==""){ 
flag = 1;
}
else if(document.getElementById("time2").value==""){ 
flag = 1;
}
else if(document.getElementById("time3").value==""){ 
flag = 1;
}
else if(document.getElementById("company").value==""){ 
flag = 1;
}
else if(document.getElementById("mail").value==""){ 
flag = 1;
}
if(flag){
   alert("必須項目に未入力がありました"); // 入力漏れがあれば警告ダイアログを表示
 }else{ 
   location.href="thanks.html"

 }  

}
</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" rel="stylesheet" />

</head>
<body>

<iframe src="form.html" javascript:refresh(); id="fake-target" name="fake-target" style="width:0px; height:0px; border:0px;">
</iframe>

<table border="0" cellspacing="0" cellpadding="0" class="mailform">
<tbody>

<form id="formID" action="https://script.google.com/macros/s/AKfycbzP4pcgTcIQNeXmC5vuANSnCEqHnX39Xvjuh-rYd-BIHVya0HM0/exec" method="post" target="fake-target">

<tr>
<th>ご希望日<span>*</span>
</th>
<td><input type="text" name="data" id="datepicker">
</td></tr>
<script type="text/javascript">
$(function(){
$("#datepicker").datepicker();
});
</script>
<tr>

   <th>ご希望時間<span>*</span>
   </th>
   <td>

<select name="time1" id="time1" class="required" data-inline="1">

   <option value="" label="--">--</option>
   <option value="10" label="10">10</option>
   <option value="11" label="11">11</option>
   <option value="12" label="12">12</option>
   <option value="13" label="13">13</option>
   <option value="14" label="14">14</option>
   <option value="15" label="15">15</option>
   <option value="16" label="16">16</option>
   <option value="17" label="17">17</option>
   <option value="18" label="18">18</option>
   <option value="19" label="19">19</option>
   <option value="20" label="20">20</option>
   <option value="21" label="21">21</option>
   <option value="22" label="22">22</option>
   <option value="23" label="23">23</option>

</select>:

<select name="time2" id="time2" class="required" data-inline="1">

   <option value="" label="--">--</option>
   <option value="0" label="00">00</option>
   <option value="5" label="05">05</option>
   <option value="10" label="10">10</option>
   <option value="15" label="15">15</option>
   <option value="20" label="20">20</option>
   <option value="25" label="25">25</option>
   <option value="30" label="30">30</option>
   <option value="35" label="35">35</option>
   <option value="40" label="40">40</option>
   <option value="45" label="45">45</option>
   <option value="50" label="50">50</option>
   <option value="55" label="55">55</option>

</select></td></tr>
<tr>

   <th>ご相談時間<span>*</span>
   </th>
   <td>

<select name="time3" id="time3" class="required" data-inline="1">

   <option value="" label="--">--</option>
   <option value="10" label="10">10</option>
   <option value="20" label="20">20</option>
   <option value="30" label="30">30</option>
   <option value="40" label="40">40</option>
   <option value="50" label="50">50</option>
   <option value="60" label="60">60</option>
   <option value="70" label="70">70</option>
   <option value="80" label="80">80</option>
   <option value="90" label="90">90</option>
   <option value="100" label="100">100</option>
   <option value="110" label="110">110</option>
   <option value="120" label="120">120</option>
   <option value="130" label="130">130</option>
   <option value="140" label="140">140</option>
   <option value="150" label="150">150</option>
   <option value="160" label="160">160</option>
   <option value="170" label="170">170</option>
   <option value="180" label="180">180</option>

</select></td></tr>
<tr>

   <th>会社名(お名前)<span>*</span>
   </th>
   <td>

<input type="text" name="company" id="company" value="" title="" class=" required"></td></tr>
<tr>

   <th>メールアドレス<span>*</span>
   </th>
   <td>

<input type="text" name="mail" id="mail" value="" title="" class="mmail required"></td></tr>
<tr>

   <th>電話番号
   </th>
   <td>

<input type="text" name="tel" id="tel" value="" title="" class="phone"></td></tr>
<tr>

   <th>コメント
   </th>
   <td>

<textarea name="text" id="text" cols="30" rows="5" class="" title=""></textarea></td></tr>
<tr>

   <th>*は必須項目です。<span>*</span>
   </th>
   <td>

<button onClick="setTimeout('javascript:validateForm();', 500)">送信</button></td></tr>


</form>
</tbody>
</table>
</body>
</html>

まずはスプレッドシートと連動していることを確かめて下さい。
上記コードは私自身サーバー上では試してないのでうまくいくかわかりません。
違うページ(HTML)で作成したソースの余計な部分を削除して公開してます。
日付入力にカレンダーから選択するようにしてるのですが、
グーグルサイトだとフォーム機能はオフにされてます。

④ データベースからカレンダーに登録する。
スプレッドシートのスクリプトエディタに下記スクリプトを追加

Calendar
function sendThingToCalendar(e) {

 //var time = e.values[0];
 //var thing = e.values[1];
 try{
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
            clear();  
   //最後の行番号を取得
   var num_row = sheet.getLastRow();
 
 if(sheet.getRange(num_row,2).getValue() == "undefined"){ 
       
 var rangeToCopy = sheet.getRange(num_row-1,2);
 var targetToCopy = sheet.getRange(num_row,2);
 rangeToCopy.copyTo(targetToCopy);
   
 var rangeToCopy = sheet.getRange(num_row-1,3);
 var targetToCopy = sheet.getRange(num_row,3);
 rangeToCopy.copyTo(targetToCopy);
   
 var rangeToCopy = sheet.getRange(num_row-1,4);
 var targetToCopy = sheet.getRange(num_row,4);
 rangeToCopy.copyTo(targetToCopy);    
  
     var data = sheet.getRange(num_row,1).getValue();    
     var year = sheet.getRange(num_row,2).getValue();
     var month = sheet.getRange(num_row,3).getValue();
     var day = sheet.getRange(num_row,4).getValue();
     var hour = sheet.getRange(num_row,5).getValue();
     var min = sheet.getRange(num_row,6).getValue();
     var time = sheet.getRange(num_row,7).getValue();
     var thing = sheet.getRange(num_row,8).getValue();
   
   var all = year+'/'+month+'/'+day+' '+hour+':'+min
   
   var cals = CalendarApp.getCalendarsByName("Reservation");
   var stime = new Date(all);
   var etime = new Date(all);
        etime.setMinutes(etime.getMinutes()+time);
       var r = cals[0].createEvent(thing, stime, etime);
   

sendMailFromForm();

   
 } 
 }catch(e){
   Browser.msgBox(e);
 }

}

⑤ 予約申込時にカレンダーに予定を登録する。
フォーム送信ではないので、フォーム送信時にスクリプトを実行させるトリガーが使用できません。
そのため時間でスクリプトを実行します。
スクリプトトリガーで1分毎に実行を選択します。

⑥ スプレッドシートに数式を代入
このままだと1分間隔で予定が登録されてしまうので、2行目にあらかじめ数式を入れておいて、3行目から実行させるようにする。
2行目のB,C,Dに=year(A2),=month(A2),=day(A2)を記入する。
つまり、B,C,Dに数字が記入されている場合はスクリプトを実行しません。
”undefined”が入力されたときにひとつ上の行の数式をコピペしてカレンダーに登録させます。

⑦ 必要事項を記入していない場合に値を削除する。
必要事項を記入していなくてもスプレッドシートに反映されるので、その場合は再入力を要請させ、入力済みのデータは一度削除するためのスクリプトを記入。
※0の場合空白とみなされて削除されてしまうため、
スプレッドシートのtimeの列は表示形式を「文字列を書式なしテキスト」とする。

function clear()
function clear(){

 
   var ss = SpreadsheetApp.getActiveSpreadsheet();

 var sheet = ss.getSheetByName('DATA');

 var i = sheet.getLastRow();
 
       if((sheet.getRange(i,1).getValue() == "") ||
          (sheet.getRange(i,5).getValue() == "") ||
          (sheet.getRange(i,6).getValue() == "") ||
          (sheet.getRange(i,7).getValue() == "") ||
          (sheet.getRange(i,8).getValue() == "") ||
          (sheet.getRange(i,9).getValue() == "")
          ){ 
 
 try{
   sheet.getRange('A'+i+':'+'K'+i).clear();
 }catch(e){
   Browser.msgBox(e);
 }}

}

⑧ メール送信
予約をしていただいた方に返信メールを送信するため下記スクリプトを追加。
Mail
sendMailFromForm();

   
 } 
 }catch(e){
   Browser.msgBox(e);
 }

}

function sendMailFromForm() {

   Logger.log('sendMailFromForm() debug start');
   //------------------------------------------------------------
   // 設定エリアここから
   //------------------------------------------------------------
   // 件名、本文、フッター
   var subject = "[ご予約]"; 
   var body
       = "この度はご予約頂き誠にありがとうございました。\n"
       + "予定変更等ございましたら下記までご連絡お願い致します。\n\n"
       + "------------------------------------------------------------\n";
   var footer
       = "------------------------------------------------------------\n\n"       
       +"このメールに心当たりの無い場合は、お手数ですが\n"
       +"下記連絡先までお問い合わせください。\n\n"
       +"この度はご予約重ねてお礼申し上げます。\n\n";
   var footer1
       = "------------------------------------------------------------\n\n"
       +"traderstrust\n"
       +"〒100-0000 東京都港区六本木\n"
       +"TEL / 03-0000-0000 FAX / 03-0000-0000\n"
       +"Mail : traders.trust.ltd@gmail.com\n"
       +"http://google-tokyo.info\n\n"
       + "------------------------------------------------------------\n";
   // 入力カラム名の指定
   var NAME_COL_NAME = 'company';
   var MAIL_COL_NAME = 'mail';
   var SUBJ_COL_NAME = 'subject';
   // メール送信先
   var admin = "traders.trust.ltd@gmail.com"; // 管理者(必須)
   var cc    = "";    // Cc:
   var bcc   = admin; // Bcc:
   var reply = admin; // Reply-To:
   var to    = "";    // To: (入力者のアドレスが自動で入ります)
   //------------------------------------------------------------
   // 設定エリアここまで
   //------------------------------------------------------------
   try{
       // スプレッドシートの操作
       var sh   = SpreadsheetApp.getActiveSheet();
       var rows = sh.getLastRow();
       var cols = sh.getLastColumn();
       var rg   = sh.getDataRange();
       Logger.log("rows="+rows+" cols="+cols);
       // メール件名・本文作成と送信先メールアドレス取得
       for (var j = 1; j <= cols; j++ ) {
           var col_name  = rg.getCell(1, j).getValue();    // カラム名
           var col_value = rg.getCell(rows, j).getValue(); // 入力値
           body += "【"+col_name+"】\n";
           body += col_value + "\n\n";
           if ( col_name === NAME_COL_NAME ) {
               body = col_value+" 様\n\n"+body;
           }
           if ( col_name === MAIL_COL_NAME ) {
               to = col_value;
           }
           if ( col_name === SUBJ_COL_NAME ) {
               subject += col_value;
           }
       }
       body += footer+footer1;
       // 送信先オプション
       var options = {};
       if ( cc )    options.cc      = cc;
       if ( bcc )   options.bcc     = bcc;
       if ( reply ) options.replyTo = reply;
       // メール送信
       if ( to ) {
           MailApp.sendEmail(to, subject, body, options);
       }else{
           MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
       }
   }catch(e){
       MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
   } 

}

作成した予約フォームを公開してるのでお試しください。
予約フォーム