{"id":155,"date":"2026-03-19T08:07:23","date_gmt":"2026-03-19T08:07:23","guid":{"rendered":"https:\/\/medlearn.imperial.ac.uk\/innovation\/book-quest-headset\/"},"modified":"2026-04-09T13:55:48","modified_gmt":"2026-04-09T13:55:48","slug":"book-quest-headset","status":"publish","type":"page","link":"https:\/\/medlearn.imperial.ac.uk\/innovation\/book-quest-headset\/","title":{"rendered":"Book a Quest Headset"},"content":{"rendered":"\n<style>\n.bk-wrap{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;max-width:680px;margin:0 auto;padding:40px 24px 60px;}\n.bk-hero{background:linear-gradient(135deg,#001E45 0%,#003E74 100%);border-radius:12px;padding:36px 32px;margin-bottom:32px;color:#fff;}\n.bk-hero h1{font-size:clamp(20px,3vw,28px);font-weight:700;margin:0 0 10px 0;color:#fff;}\n.bk-hero p{font-size:15px;line-height:1.6;margin:0;color:rgba(255,255,255,0.82);}\n.bk-avail{display:flex;align-items:center;gap:10px;margin-top:18px;background:rgba(255,255,255,0.1);border-radius:8px;padding:10px 14px;}\n.bk-avail-dot{width:10px;height:10px;background:#4CAF92;border-radius:50%;flex-shrink:0;}\n.bk-avail-text{font-size:13px;color:#ffffff;}\n.bk-card{background:#fff;border:1px solid #e0e7ef;border-radius:12px;padding:32px;box-shadow:0 2px 12px rgba(0,30,69,0.07);}\n.bk-fieldset{border:none;padding:0;margin:0 0 24px 0;}\n.bk-label{display:block;font-size:13px;font-weight:600;color:#003E74;margin-bottom:6px;letter-spacing:0.2px;}\n.bk-label span{color:#cc0000;margin-left:2px;}\n.bk-input{width:100%;box-sizing:border-box;border:1px solid #d0d9e6;border-radius:6px;padding:10px 12px;font-size:14px;color:#222;background:#fafcff;transition:border-color 0.15s;}\n.bk-input:focus{outline:none;border-color:#003E74;background:#fff;}\n.bk-input.error{border-color:#cc0000;background:#fff8f8;}\ntextarea.bk-input{resize:vertical;min-height:90px;}\n.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}\n.bk-slider-wrap{display:flex;align-items:center;gap:16px;}\n.bk-slider{flex:1;-webkit-appearance:none;height:6px;background:#e0e7ef;border-radius:3px;outline:none;}\n.bk-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:#003E74;border-radius:50%;cursor:pointer;}\n.bk-slider::-moz-range-thumb{width:20px;height:20px;background:#003E74;border-radius:50%;cursor:pointer;border:none;}\n.bk-slider-val{min-width:44px;text-align:center;font-size:18px;font-weight:700;color:#003E74;background:#f0f4f8;border-radius:6px;padding:4px 8px;}\n.bk-hint{font-size:12px;color:#888;margin-top:4px;}\n.bk-divider{border:none;border-top:1px solid #e8edf3;margin:28px 0;}\n.bk-submit{width:100%;background:#003E74;color:#fff;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background 0.15s;}\n.bk-submit:hover{background:#00285a;}\n.bk-submit svg{flex-shrink:0;}\n.bk-note{font-size:12px;color:#888;text-align:center;margin-top:14px;line-height:1.5;}\n.bk-success{display:none;background:#f0faf5;border:1px solid #4CAF92;border-radius:10px;padding:28px 32px;text-align:center;margin-top:20px;}\n.bk-success h3{color:#003E74;font-size:20px;margin:0 0 10px 0;}\n.bk-success p{color:#555;font-size:14px;line-height:1.6;margin:0;}\n.bk-err-msg{color:#cc0000;font-size:12px;margin-top:4px;display:none;}\n@media(max-width:600px){\n  .bk-wrap{padding:20px 16px 40px;}\n  .bk-hero{padding:24px 20px;}\n  .bk-card{padding:22px 18px;}\n  .bk-row{grid-template-columns:1fr;}\n}\n\n.bk-auth-gate{background:#f7f9fc;border:1px solid #dde4ef;border-radius:12px;padding:60px 40px;text-align:center;max-width:480px;margin:60px auto;}\n.bk-auth-gate h2{color:#001E45;font-size:22px;font-weight:700;margin:0 0 14px;}\n.bk-auth-gate p{color:#555;font-size:15px;line-height:1.6;margin:0 0 28px;}\n.bk-auth-btn{display:inline-block;background:#003E74;color:#fff;font-size:14px;font-weight:700;padding:13px 30px;border-radius:6px;text-decoration:none;letter-spacing:0.3px;}\n.bk-auth-btn:hover{background:#001E45;}\n.bk-checking{text-align:center;padding:80px 24px;font-size:15px;color:#999;font-style:italic;}<\/style>\n\n<div class=\"bk-wrap\">\n\n  <div class=\"bk-hero\">\n    <h1>Book a Quest Headset Session<\/h1>\n    <p>Reserve one or more of the Faculty of Medicine&#8217;s 20 Meta Quest headsets for your teaching session, workshop, or project. Headsets are available for staff and postgraduate use.<\/p>\n    <div class=\"bk-avail\">\n      <div class=\"bk-avail-dot\"><\/div>\n      <div class=\"bk-avail-text\"><strong>20 headsets available<\/strong> \u00b7 Stored at RCS1 Basement \u00b7 Subject to availability<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"bk-card\" id=\"bk-form-wrap\">\n    <form id=\"bk-form\" novalidate>\n\n      <div class=\"bk-row\">\n        <div class=\"bk-fieldset\">\n          <label class=\"bk-label\" for=\"bk-name\">Your name <span>*<\/span><\/label>\n          <input class=\"bk-input\" type=\"text\" id=\"bk-name\" name=\"name\" placeholder=\"Dr Jane Smith\" required>\n          <div class=\"bk-err-msg\" id=\"err-name\">Please enter your name<\/div>\n        <\/div>\n        <div class=\"bk-fieldset\">\n          <label class=\"bk-label\" for=\"bk-email\">Your email <span>*<\/span><\/label>\n          <input class=\"bk-input\" type=\"email\" id=\"bk-email\" name=\"email\" placeholder=\"j.smith@imperial.ac.uk\" required>\n          <div class=\"bk-err-msg\" id=\"err-email\">Please enter a valid email<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\" for=\"bk-dept\">Department \/ Group <span>*<\/span><\/label>\n        <input class=\"bk-input\" type=\"text\" id=\"bk-dept\" name=\"department\" placeholder=\"e.g. School of Medicine, DML, Bioengineering\" required>\n        <div class=\"bk-err-msg\" id=\"err-dept\">Please enter your department<\/div>\n      <\/div>\n\n      <hr class=\"bk-divider\">\n\n      <div class=\"bk-row\">\n        <div class=\"bk-fieldset\">\n          <label class=\"bk-label\" for=\"bk-date-start\">Start date <span>*<\/span><\/label>\n          <input class=\"bk-input\" type=\"date\" id=\"bk-date-start\" name=\"date_start\" required>\n          <div class=\"bk-err-msg\" id=\"err-date-start\">Please select a start date<\/div>\n        <\/div>\n        <div class=\"bk-fieldset\">\n          <label class=\"bk-label\" for=\"bk-date-end\">End date <span>*<\/span><\/label>\n          <input class=\"bk-input\" type=\"date\" id=\"bk-date-end\" name=\"date_end\" required>\n          <div class=\"bk-err-msg\" id=\"err-date-end\">End date must be on or after start date<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\" for=\"bk-location\">Location \/ Venue <span>*<\/span><\/label>\n        <input class=\"bk-input\" type=\"text\" id=\"bk-location\" name=\"location\" placeholder=\"e.g. RCS1.11, ICTEM Simulation Lab, Hammersmith\" required>\n        <div class=\"bk-err-msg\" id=\"err-location\">Please enter the venue<\/div>\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\">Number of headsets needed <span>*<\/span><\/label>\n        <div class=\"bk-slider-wrap\">\n          <input class=\"bk-slider\" type=\"range\" id=\"bk-qty\" name=\"quantity\" min=\"1\" max=\"20\" value=\"5\" oninput=\"document.getElementById('bk-qty-val').textContent=this.value\">\n          <div class=\"bk-slider-val\" id=\"bk-qty-val\">5<\/div>\n        <\/div>\n        <div class=\"bk-hint\">Maximum 20 headsets available per booking<\/div>\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\" for=\"bk-participants\">Approximate number of participants<\/label>\n        <input class=\"bk-input\" type=\"number\" id=\"bk-participants\" name=\"participants\" min=\"1\" max=\"200\" placeholder=\"e.g. 30\">\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\" for=\"bk-purpose\">Intended use \/ purpose <span>*<\/span><\/label>\n        <textarea class=\"bk-input\" id=\"bk-purpose\" name=\"purpose\" placeholder=\"Briefly describe how you plan to use the headsets \u2014 e.g. anatomy teaching, VR simulation exercise, research pilot...\" required><\/textarea>\n        <div class=\"bk-err-msg\" id=\"err-purpose\">Please describe the intended use<\/div>\n      <\/div>\n\n      <div class=\"bk-fieldset\">\n        <label class=\"bk-label\" for=\"bk-notes\">Additional notes or requirements<\/label>\n        <textarea class=\"bk-input\" id=\"bk-notes\" name=\"notes\" placeholder=\"e.g. Setup support needed, specific apps required, accessibility needs...\"><\/textarea>\n      <\/div>\n\n      <button type=\"submit\" class=\"bk-submit\">\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"><path d=\"M2 9l13 0M9 2l7 7-7 7\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        Send Booking Request\n      <\/button>\n      <p class=\"bk-note\">Clicking &#8220;Send Booking Request&#8221; will open your email client with all details pre-filled, ready to send to the Innovation team. Bookings are confirmed by reply email.<\/p>\n\n    <\/form>\n\n    <div class=\"bk-success\" id=\"bk-success\">\n      <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" style=\"margin-bottom:14px;\"><circle cx=\"24\" cy=\"24\" r=\"22\" fill=\"#4CAF92\" fill-opacity=\"0.15\" stroke=\"#4CAF92\" stroke-width=\"2\"\/><path d=\"M15 24l6 6 12-12\" stroke=\"#4CAF92\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n      <h3>Request sent!<\/h3>\n      <p>Your booking request has been sent to the Innovation team. You should receive a confirmation within 1\u20132 working days.<br><br>If you need urgent assistance, email <a href=\"mailto:a.cowell@ic.ac.uk\" style=\"color:#003E74;\">a.cowell@ic.ac.uk<\/a> directly.<\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n(function(){\n  \/\/ Set min date to today\n  var today = new Date().toISOString().split('T')[0];\n  document.getElementById('bk-date-start').min = today;\n  document.getElementById('bk-date-end').min = today;\n\n  document.getElementById('bk-date-start').addEventListener('change', function(){\n    document.getElementById('bk-date-end').min = this.value;\n  });\n\n  function showErr(id, show) {\n    var el = document.getElementById(id);\n    if (el) el.style.display = show ? 'block' : 'none';\n  }\n  function setError(fieldId, errId, hasErr) {\n    var f = document.getElementById(fieldId);\n    if (f) { if (hasErr) f.classList.add('error'); else f.classList.remove('error'); }\n    showErr(errId, hasErr);\n  }\n\n  document.getElementById('bk-form').addEventListener('submit', function(e){\n    e.preventDefault();\n    var valid = true;\n\n    var name = document.getElementById('bk-name').value.trim();\n    var email = document.getElementById('bk-email').value.trim();\n    var dept = document.getElementById('bk-dept').value.trim();\n    var dateStart = document.getElementById('bk-date-start').value;\n    var dateEnd = document.getElementById('bk-date-end').value;\n    var location = document.getElementById('bk-location').value.trim();\n    var qty = document.getElementById('bk-qty').value;\n    var participants = document.getElementById('bk-participants').value.trim();\n    var purpose = document.getElementById('bk-purpose').value.trim();\n    var notes = document.getElementById('bk-notes').value.trim();\n\n    setError('bk-name','err-name', !name); if (!name) valid=false;\n    setError('bk-email','err-email', !email || !\/S+@S+.S+\/.test(email)); if (!email || !\/S+@S+.S+\/.test(email)) valid=false;\n    setError('bk-dept','err-dept', !dept); if (!dept) valid=false;\n    setError('bk-date-start','err-date-start', !dateStart); if (!dateStart) valid=false;\n    var endInvalid = !dateEnd || (dateStart && dateEnd < dateStart);\n    setError('bk-date-end','err-date-end', endInvalid); if (endInvalid) valid=false;\n    setError('bk-location','err-location', !location); if (!location) valid=false;\n    setError('bk-purpose','err-purpose', !purpose); if (!purpose) valid=false;\n\n    if (!valid) return;\n\n    \/\/ Format dates nicely\n    var fmt = function(d){ if(!d) return ''; var p=d.split('-'); return p[2]+'\/'+p[1]+'\/'+p[0]; };\n    var dateRange = dateStart===dateEnd ? fmt(dateStart) : fmt(dateStart)+' to '+fmt(dateEnd);\n\n    var body = 'QUEST HEADSET BOOKING REQUEST\n'\n      + '='.repeat(40) + '\n\n'\n      + 'Name: ' + name + '\n'\n      + 'Email: ' + email + '\n'\n      + 'Department: ' + dept + '\n\n'\n      + 'BOOKING DETAILS\n'\n      + '-'.repeat(30) + '\n'\n      + 'Dates: ' + dateRange + '\n'\n      + 'Location: ' + location + '\n'\n      + 'Headsets requested: ' + qty + ' of 20\n'\n      + (participants ? 'Participants: ' + participants + '\n' : '')\n      + '\nINTENDED USE\n'\n      + '-'.repeat(30) + '\n'\n      + purpose + '\n'\n      + (notes ? '\nADDITIONAL NOTES\n' + '-'.repeat(30) + '\n' + notes + '\n' : '')\n      + '\n' + '='.repeat(40) + '\n'\n      + 'Sent via the Innovation Headset Booking Form';\n\n    var subject = 'Quest Headset Booking Request \u2014 ' + dateRange + ' \u2014 ' + name;\n\n    var mailto = 'mailto:a.cowell@ic.ac.uk'\n      + '?subject=' + encodeURIComponent(subject)\n      + '&#038;body=' + encodeURIComponent(body)\n      + '&#038;cc=' + encodeURIComponent(email);\n\n    window.location.href = mailto;\n\n    \/\/ Show success message after short delay\n    setTimeout(function(){\n      document.getElementById('bk-form').style.display = 'none';\n      document.getElementById('bk-success').style.display = 'block';\n    }, 800);\n  });\n})();\n<\/script>\n<script>\n(function(){\n  var wrap = document.querySelector('.bk-wrap');\n  if (!wrap) return;\n  wrap.style.display = 'none';\n  var loader = document.createElement('div');\n  loader.className = 'bk-checking';\n  loader.textContent = 'Checking Imperial credentials\u2026';\n  wrap.parentNode.insertBefore(loader, wrap);\n  fetch('\/innovation\/wp-json\/wp\/v2\/users\/me', {credentials:'include'})\n    .then(function(r){\n      loader.remove();\n      if (r.ok) {\n        wrap.style.display = '';\n      } else {\n        var container = document.createElement('div');\n        container.className = 'bk-wrap';\n        container.innerHTML = '<div class=\"bk-auth-gate\">' +\n          '<div style=\"width:56px;height:56px;border-radius:50%;background:#e8eef6;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;\">' +\n          '<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\" stroke=\"#003E74\" stroke-width=\"1.8\"\/><path d=\"M8 11V7a4 4 0 1 1 8 0v4\" stroke=\"#003E74\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg>' +\n          '<\/div>' +\n          '<h2>Imperial Login Required<\/h2>' +\n          '<p>This booking form is available to Imperial College London staff and students only. Please log in with your Imperial credentials to continue.<\/p>' +\n          '<a href=\"\/innovation\/wp-login.php?redirect_to=' + encodeURIComponent(window.location.href) + '\" class=\"bk-auth-btn\">Log in with Imperial &rarr;<\/a>' +\n          '<\/div>';\n        wrap.parentNode.insertBefore(container, wrap);\n      }\n    })\n    .catch(function(){ loader.remove(); wrap.style.display = ''; });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Book a Quest Headset Session Reserve one or more of the Faculty of Medicine&#8217;s 20 Meta Quest headsets for your teaching session, workshop, or project. Headsets are available for staff [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-155","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/pages\/155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":4,"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/pages\/155\/revisions"}],"predecessor-version":[{"id":253,"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/pages\/155\/revisions\/253"}],"wp:attachment":[{"href":"https:\/\/medlearn.imperial.ac.uk\/innovation\/wp-json\/wp\/v2\/media?parent=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}