How to Send Automatic Email Reminders from a Date Column in Google Sheets (2026)

A column of due dates, renewal dates or follow-ups is easy to keep in Google Sheets. Getting an email a week before each one is not built in. Here is what native features can do, then a free script that does it properly.

What Google Sheets can do natively

The free fix: a daily Apps Script

  1. Name a tab Reminders with columns: Task, Email, Due date (formatted as a date), Days before, Sent.
  2. Open Extensions › Apps Script, paste this, and save:
/**
 * Daily email reminders from a date column.
 * Columns: A Task | B Email | C Due date | D Days before (e.g. 7) | E Sent
 * Set a time-driven trigger: Triggers > Add trigger > sendReminders > Time-driven > Day timer.
 */
function sendReminders() {
  const sh = SpreadsheetApp.getActive().getSheetByName('Reminders');
  const rows = sh.getDataRange().getValues();
  const today = new Date(); today.setHours(0, 0, 0, 0);
  const tz = Session.getScriptTimeZone();

  for (let r = 1; r < rows.length; r++) {
    const [task, email, due, daysBefore, sent] = rows[r];
    if (!email || !(due instanceof Date) || sent) continue;   // skip blanks and already-sent rows
    const remindOn = new Date(due); remindOn.setHours(0, 0, 0, 0);
    remindOn.setDate(remindOn.getDate() - (Number(daysBefore) || 0));
    if (today < remindOn) continue;
    if (MailApp.getRemainingDailyQuota() < 1) break;          // stop before hitting the Gmail quota
    MailApp.sendEmail(email,
      'Reminder: ' + task + ' due ' + Utilities.formatDate(due, tz, 'MMM d, yyyy'),
      task + ' is due on ' + Utilities.formatDate(due, tz, 'EEEE, MMM d, yyyy') + '.');
    sh.getRange(r + 1, 5).setValue('Sent ' + Utilities.formatDate(new Date(), tz, 'yyyy-MM-dd'));
  }
}
  1. Run sendReminders once by hand to approve permissions.
  2. In Triggers (clock icon), add a time-driven Day timer trigger, for example 7–8 am.

The Sent column is what prevents duplicate emails: once a row is sent, it is skipped. Clear the cell to send again, or use a separate column per reminder step if you want 30, 14 and 7 days (see our renewal alerts guide).

Quotas and caveats

Want reminders without maintaining a script? SheetReminders (disclosure: we make it) is a Google Sheets add-on that watches date columns and sends scheduled email reminders before, on or after each date, for example 30, 14 and 7 days before a renewal or due date. Sheet data stays inside your Google account and it uses narrow scopes. 14-day free trial, no credit card required. It is live on the Google Workspace Marketplace.
See SheetReminders
Short on time? Watch the 50-second version

Related Google Sheets guides

Third-party details come from each vendor's own site and Google Workspace Marketplace listing, checked November 5, 2026. Not affiliated with Google, New Visions, Digital Inspiration, Tofu Labs or any other vendor named here. Google Sheets, Google Docs and Google Drive are trademarks of Google LLC. Features and prices change, so verify before you buy. Questions or corrections: hello@loomwise.app.