Shift handover form with a morning email

Staff fill in a short Google Form at the end of each shift. Every morning the GM gets one email with the last 24 hours of notes. It runs on free Google tools and a short Apps Script. About 25 minutes.

3 min read · Checked

The four steps in 30 seconds

The steps from this guide, 30 seconds, no sound. The example subject line is illustrative.
Transcript of the video
  1. 0:00

    SHIFT HANDOVER

    Shift handover, in one morning email

    Google Forms, Sheets and Apps Script. Free. About 25 minutes.

  2. 0:02

    1

    A short form for every shift

    forms.google.com > Blank form

    QUESTIONS

    Shift

    Your name

    Arrivals and VIPs

    In-house issues

    Maintenance needed

    Guest feedback

    For the next shift

  3. 0:06

    2

    Link it to a Google Sheet

    Responses > Link to Sheets

    Every handover lands as a new row.

  4. 0:10

    3

    Paste the morning-email script

    Extensions > Apps Script

    The full script is in the guide. Add the GM's email address.

  5. 0:14

    4

    Run it every morning

    Triggers > Add Trigger > Day timer

    EXAMPLE

    Subject

    Handover notes, last 24 hours

    No notes that day, no email.

  6. 0:19

    What this does not do

    It reports only what staff typed.

    It does not read your property system.

    No guest personal details. Room numbers are enough.

  7. 0:23

    Numbers from your PMS are a different job.

    That's the one we build.

    Still copying the same numbers into reports every morning? Vivified Tech builds the software that takes over repetitive hotel admin. Free assessment.

    vivifiedtech.com/guides

    Link in the post.

Step 1: Build the form

  1. Go to forms.google.com and create a blank form named "Shift handover".
  2. Add these questions in this order: Shift (dropdown: Morning, Afternoon, Night), Your name, Arrivals and VIPs to watch, In-house issues, Maintenance needed (room and problem), Guest feedback, For the next shift. Make the first two required.
  3. Keep guest personal details out of the form. Room numbers are enough.

Step 2: Link the form to a Google Sheet

  1. Open Responses, click Link to Sheets and create the spreadsheet. See Google's steps. Every submitted handover then lands as a new row.
  2. In the spreadsheet, check the response tab is called Form responses 1. Under File, Settings, set your time zone.

Step 3: Paste the morning-email script

  1. Open Extensions, then Apps Script. Delete the sample code and paste this:
Apps Script
function sendMorningHandover() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Form responses 1');
  const rows = sheet.getDataRange().getValues();
  const headers = rows.shift();
  const since = new Date(Date.now() - 24 * 60 * 60 * 1000);
  const timeZone = ss.getSpreadsheetTimeZone();
  const recent = rows.filter(
    (row) => row[0] instanceof Date && row[0] >= since
  );
  if (recent.length === 0) return;
  const body = recent
    .map((row) => {
      const when = Utilities.formatDate(row[0], timeZone, 'EEE HH:mm');
      const lines = [row[1] + ' shift, ' + row[2] + ' (' + when + ')'];
      for (let i = 3; i < headers.length; i++) {
        if (row[i]) lines.push(headers[i] + ': ' + row[i]);
      }
      return lines.join('\n');
    })
    .join('\n\n');
  MailApp.sendEmail({
    to: 'gm@yourhotel.com',
    subject: 'Handover notes, last 24 hours',
    body: body
  });
}
  1. Replace the address in to with the GM's email address. Separate several addresses with commas.
  2. Click Run, approve the permissions, then check your inbox. Google warns that the app is unverified because you wrote it. Choose Advanced, then go to the project.

Step 4: Run it every morning

  1. In Apps Script, open Triggers (the clock icon) and click Add Trigger.
  2. Choose sendMorningHandover, event source Time-driven, type Day timer, and the hour window just before the GM starts.
  3. Save. Google picks a time inside that hour and keeps it the same each day.

Details and limits

Checked on 2026-10-22. Limits change, so re-check the linked pages.

What it does

A form puts the same questions in front of every shift. Handover notes usually live in a notebook, a chat group or someone's memory. Google Forms, Sheets and Apps Script are free with a Google account. Nothing here needs a paid plan or a trial.

Each morning the GM gets one plain email with every shift's notes from the last 24 hours: arrivals to watch, in-house issues, rooms that need maintenance, guest feedback and anything for the next shift. The subject line in the script is Handover notes, last 24 hours; change it in subject if you like. If nobody filled in the form, no email is sent.

For instant alerts without code, open Responses, then the three-dot menu, then Get email notifications for new responses. Google sends one email per submission to the form owner. The script above sends a single morning email instead.

What it can't do

  • The email only reports what staff typed. It does not read your property system or check the notes against it.
  • It does not filter what staff type. Ask staff to write room numbers and leave out guest names and contact details.
  • If someone renames or reorders the questions, the email changes with them. If you add questions at the end, they appear automatically.
  • It does not bring in numbers such as arrivals, occupancy or pickup. Someone still has to type them.

Limits

  • Apps Script allows a consumer Google account 100 email recipients a day and 90 minutes of trigger runtime a day. Workspace accounts get 1,500 recipients and 6 hours. A script like this uses seconds. See the quotas page.
  • From September 2026 a form is limited to 1 GB and 500,000 responses, per Google's help page. A hotel will not get near that.

When this stops being enough

When you want the numbers themselves in the email, such as arrivals, occupancy or pickup, pulled straight from your property management system, a form can't help, because someone still has to export them. Doing that every day without a person is the kind of work we build.

See this in practice in the hotel data pipeline case study, or read how the no-build-fee model works.

Sources

  1. Choose where to save form responses (Google Docs Editors Help)
  2. View and manage form responses, including email notifications and limits (Google Docs Editors Help)
  3. Quotas for Google services (Apps Script)
  4. Installable triggers (Apps Script)

Related guides

Have a task like this?

Tell us the repetitive task and we'll say honestly whether we can automate it.

Get a free assessment