<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2005/10/profile">
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />

  <title>OpenOffice.org Conference 2008</title>
  <link rel="stylesheet" type="text/css" href="../marketing.css" />
  <link rel="stylesheet" type="text/css" href="ooocon.css" />
  <script language="JavaScript" type="text/javascript" src="ooocon.js">
</script>
</head>

<body>
  <div id="MyContent">
    <div id="title">
      <a href="/conference/index.html"><img style=
      "border: 0px solid; margin-left: 25px; float: left;" src=
      "images/oooconlogo.gif" alt="OpenOffice.org Conference logo" /></a>

      <h3>OpenOffice.org Conference (OOoCon 2008)</h3>

      <p>5th-7th November 2008<br />
      Beijing, China<br />
      <!--
    <a href="attendees.html#register"><span class="register">Register Now</span></a>
--></p>

      <div id="midtabs">
        <ul>
          <li><a href="index.html">Home</a></li>

          <li><a href="news.html">News</a></li>

          <li><a href="venue.html">Venue</a></li>

          <li><a href="hotels.html">Hotels</a></li>

          <li class="th"><a href="travel.html">Travel</a></li>
          <!-- <li><a href="programme.html">Programme</a></li> -->

          <li id="progroot">
            <a onmouseover="dropdown('prog','visible');" onmouseout=
            "dropdown('prog','hidden');" href="programme.html">Programme</a>

            <ul id="progmenu" class="subtabs" onmouseover=
            "dropdown('prog','visible');" onmouseout=
            "dropdown('prog','hidden');">
              <li style="display: none;" id="fixfox"><a href=
              "programme.html">Programme</a></li>

              <li><a href="programme/wednesday.html">Wednesday</a></li>

              <li><a href="programme/thursday.html">Thursday</a></li>

              <li><a href="programme/friday.html">Friday</a></li>
            </ul>
          </li><!--
          <li><a href="speakers.html">Speakers</a></li>

          <li><a href="attendees.html">Attendees</a></li>
-->

          <li><a href="cfp/index.html">Speakers</a></li>

          <li><a href="sponsors.html">Sponsors</a></li>
        </ul>
      </div>
    </div><br style="clear: left;" />
    <br />
    <a id="registration" name="registration"></a>

    <h2>Travel from the Airport to the Hotel</h2>

    <p>We have prepared <a href="to_hotel/OOoCon2008-AirportToHotel.htm"
    target="_blank">a document</a> (<em>opens in a new window</em>) to help
    you to get from the airport to your hotel. Most important, the hotel name
    and address in Chinese, so you can point your finger on it.</p>

    <h2>Registration</h2>

    <p>If you are planning to attend the Conference, please register. By
    registering now, you help the organisers prepare for your arrival and
    tailor the Conference to your needs and expectations.</p>
    <!---They can also
    organise hotel accomodation for you, and book you a space on one of the
    optional free tourist trips.</p>

<p><b>If you need help for a hotel reservation, please register before September 26.</b> After this date, we will not be able to guarantee the <a href="http://marketing.openoffice.org/ooocon2008/hotels.html">discounted prices for hotel rooms</a>. The normal hotel prices are more than double our special discounted rates.</p>
-->

    <p>Registration is free, but we will be happy to accept donations to the
    OpenOffice.org project on your arrival in Beijing. On arrival at the
    Conference, please go to the welcome desk to collect your conference
    material including maps, programmes, etc.</p>

    <p>To register, you will need to tell us your name and email address.
    Optionally, you may tell us your Job Title/Organisation (for your badge),
    and which Conference themes you are most likely to attend. 
    <!-- , and whether you
    would like to book on any of the optional free tourist trips.</p>

    <p>If you want us to try and book your hotel accomodation, you also need
    to tell us your arrival and departure dates, and the maximum price per
    night in Euro you would like to pay. We also need to know your
    nationality and country of residence.</p>
--></p>

    <p><strong>If you have this information ready and would like to register
    now, please go to the <a href=
    "http://survey.services.openoffice.org/forms/public/survey.php?name=OOoCon_2008_Registration_late">
    OOoCon Registration site</a></strong></p>.

    <h2>Registration FAQs</h2>

    <p>Q: I have joined the 'pre-registration survey'. Do I now need to
    register?<br />
    A: Yes please, the pre-registration was needed to get first estimates of
    the number of attendees we can expect. As well, we wanted to kick-off the
    visa process early.</p>

    <p>Q: I am a speaker at the OOoCon. Do I need to register?<br />
    A: Yes please, registration will ask for some additional information.</p>

    <p>Q: I was informed, that I will receive a travel subsidy to be able to
    join OOoCon in Beijing. Do I need to register?<br />
    A: Yes, the registration will ask for some additional information.</p>

    <p>Q: I was informed, that I will receive a travel subsidy to be able to
    join the OOoCon in Beijing and sent a note, that I will be able to take
    advantage of the bursary. Do I need to register?<br />
    A: Yes, the registration for the OOoCon and confirming the acceptance of
    the bursary are two different things.</p><!--
    <p>Q: I was informed, that I will receive a travel subsidy to be able to
    join the OOoCon in Beijing, but the registration form is asking for my
    room price limit. What shall I do?<br />
    A: Just leave this information open, the form can be submitted without
    choosing a room price limit.</p>

    <p>Q: I do not yet know my exact travel dates. Shall I wait with the
    registration until I can state them clearly?<br />
    A: No, to get the mainly the visa process going, we would like to ask
    anyone to register as early as possible. For the travel dates, please
    enter the arrival and departure days, that you are planning for.</p>

    <p>Q: Is the tourist tour on Saturday and Sunday the same or are these
    different ones?<br />
    A: Both dates will have different programs. The sites planned to visit so
    far are: Great Wall, Forbidden City, Summer Palace, Lama Temple, Temple
    of Heaven. That's definitely too much for one day.</p>
-->

    <h2>Visas</h2>

    <p>Applying for a Visa is mandatory. Regulations vary from country to
    country. Please contact the Chinese Embassy or Consulate responsible in
    your country.</p>

    <p>Vaccinations are not required to our knowledge, but to be on the safe
    side, you should also contact the Chinese Embassy in your country.</p>

    <p>Some selected links: <a href=
    "http://www.fmprc.gov.cn/ce/cede/det/">Germany</a>, <a href=
    "http://www.amb-chine.fr/">France</a>, <a href=
    "http://www.fmprc.gov.cn/ce/ceat/det/">Austria</a>, <a href=
    "http://www.fmprc.gov.cn/ce/ceit/ita/">Italy</a>, <a href=
    "http://www.china-embassy.org/eng/">USA</a>, <a href=
    "http://www.chinese-embassy.org.uk/eng/">UK</a>, <a href=
    "http://www.embchina.org.br/por/default.htm">Brasil</a>, <a href=
    "http://www.chinaembassy.org.in/eng/">India</a>, <a href=
    "http://vn.china-embassy.org/vn/default.htm">Vietnam</a>, <a href=
    "http://www.china-embassy.or.jp/jpn/">Japan</a>, <a href=
    "http://www.chinaemb.or.kr/kor/">Korea</a>, <a href=
    "http://cb2.mofcom.gov.cn/index.shtml">Cambodia</a>.</p>

    <p>For the latest information on visas, please <a href=
    "http://wiki.services.openoffice.org/wiki/OOoCon_2008_Visa_Procedures">check
    our Wiki</a>.</p>

    <h2>Travel costs</h2>

    <p>Price reference by recent samples: Europe 600 € – 1000 €, US/Canada
    East coast 1000 € - 1300 €, US/Canada West coast 800 € - 1200 €, Cape
    Town 800 € - 1400 €, Tokyo 400 € - 600 €, Sydney 1000 € - 1400 €.</p>

    <p>The organizers will also do their best to organize discounted group
    flights from Europe.</p>

    <p><em>Update 25th August: negotiations for discounted flight tickets are
    now ended without any results. We were not able to provide accurate data
    about number and origin of the attendees to the air lines in order to
    raise their interest and get good quotations. Meanwhile the situation has
    changed significantly and that's the good news. Several airlines have
    regular offers now, that are at the level the organisers had planned to
    reach with the negotiations, means between 500 and 600 Euro. Price tips
    for the moment are Finnair (499), Air France (555), British Airways (575)
    and KLM (580). Lufthansa is quite expensive in the moment, but typically
    they have better offers about four weeks before traveling: take this
    advice at your own risk! For Air China prices, try their European call
    center at 00800 86 100 999.</em></p>

    <h2>Help with travel and accomodation</h2>

    <p>The organizers will offer financial assistance to significant
    contributors to the Community who would not be able to attend OOoCon in
    Beijing by their own means. The final extent of this programme will
    depend on the generosity of the conference sponsors, but premilinary
    plans are to offer free hotel accomodation in a conference hotel plus a
    500 € travel subsidy.</p>
  </div>
</body>
</html>
