Gmail Send-Later Scheduler
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script adds a "Send Later" button to Gmail's compose window, allowing you to schedule emails to be sent automatically at a future time. When composing an email, click the "Send Later" button next to the standard Send button to open a date/time picker. Select the desired send time, and the email is saved locally. The script runs a background check every 30 seconds (configurable) to see if any scheduled emails are due. When a scheduled time arrives, the script automatically opens a new compose window, populates it with the saved recipient, subject, and body, and triggers the send action. You can view, manage, and cancel scheduled emails from the dashboard in the settings panel. All scheduled emails are persisted across browser sessions using GM_setValue.
WHERE IT RUNS
The script runs on Gmail (mail.google.com). It works on the compose window in both the main Gmail interface and the popup compose view. It supports both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable send-later scheduler" toggle enables or disables the script.
- The "Scheduled Emails" list shows all pending and sent scheduled emails.
- Adjust the check interval (seconds) to control how often the script checks for due emails.
- Click "Refresh list" to update the scheduled emails display.
When composing an email, click the "Send Later" button next to the Send button. Select a future date and time, then click "Schedule." The email will be sent automatically at the scheduled time.
TECHNICAL SECTION — REAL MECHANISM
The script detects Gmail compose windows by looking for elements like .AD, .aoD, .aZm, and [role="dialog"]. It finds the Send button using selectors like div[role="button"][data-tooltip*="Send"] and div[role="button"][aria-label*="Send"], then injects a "Send Later" button next to it. When the button is clicked, a date/time picker is created as a modal overlay. The script extracts the email fields (To, Subject, Body) from the compose window using selectors like input[name="to"], input[name="subject"], and .Am (the body editor). Scheduled emails are stored as an array of objects with fields: id, to, subject, body, scheduledTime (timestamp), and sent (boolean). The background check runs on a setInterval at the configured interval, comparing the current time against the scheduledTime of each pending email. When a match is found, the email is marked as sent, and GM_openInTab is used to open a new compose window with the email content pre-filled using the Gmail compose URL parameters (view=cm, fs=1, to=, su=, body=). A GM_notification is shown to confirm the send.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings and scheduled emails save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. Gmail frequently updates its interface, which may affect the selectors used to find compose windows and send buttons. If the "Send Later" button stops appearing, please check for script updates. The script opens a new compose window to send scheduled emails—this requires the Gmail page to be open in your browser. The script does not work when Gmail is closed or when you are offline. Scheduled emails are stored locally in your browser; clearing your browser data or GM settings will remove them. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.