Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesYou can schedule the workflow with Google Apps Script, but Apps Script does not itself render a webpage as a browser screenshot. Use an external screenshot-rendering service: a time-driven trigger calls it with UrlFetchApp, receives image bytes, and saves them as a file in Google Drive. Set the schedule to India Standard Time (Asia/Kolkata) and account for triggers running within a time window rather than at an exact minute.
How the workflow fits together
Google documents UrlFetchApp as a way to fetch resources and communicate with other hosts over the internet; its reference does not document visual browser rendering. So the division of work is:
As an Amazon Associate I earn from qualifying purchases.
- An installable time-driven trigger runs your Apps Script function.
- The function sends the target URL to a separate screenshot renderer using
UrlFetchApp.fetch(). - The renderer returns an image response, which the script converts to a blob and saves in a Drive folder.
The renderer is an external dependency. Before relying on one, check its current API, authentication method, supported viewport and full-page behavior, output formats, limits, data handling, price, and availability in India. Google’s documentation does not endorse a particular renderer.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Set up the Apps Script project and Drive folder
- Create an Apps Script project and choose the account that should own the trigger. That account will need permission to call the renderer and write to the destination folder.
- Create or select a Drive folder for the captures. Copy its folder ID from its URL and provide it to the script as a configuration value.
- Set the Apps Script project timezone to
Asia/Kolkataif the schedule should follow India time. If the project is linked to a spreadsheet, check the spreadsheet timezone separately; it can differ from the script timezone. - Store the renderer endpoint and API credential as configuration or script properties rather than embedding a secret in code shared with others. Use the renderer’s documented authentication scheme.
Google’s UrlFetchApp reference identifies https://www.googleapis.com/auth/script.external_request as the scope used for external requests. Apps Script usually detects required scopes automatically unless the project’s scopes have been explicitly configured. Drive access also requires authorization. A standard Google Cloud project may need the Drive API enabled, and a Workspace administrator can disable Drive SDK access for users.
#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Write the capture function
This is a storage-and-request integration outline, not tested, provider-independent runnable code. Replace the configuration values and adapt the request method, payload, authentication, and response handling to the renderer’s current documentation. The example assumes the renderer returns image bytes directly in a successful response.
const RENDERER_ENDPOINT = 'REPLACE_WITH_RENDERER_ENDPOINT';
const TARGET_URL = 'https://example.com';
const DESTINATION_FOLDER_ID = 'REPLACE_WITH_DRIVE_FOLDER_ID';
function captureAndSave() {
const response = UrlFetchApp.fetch(RENDERER_ENDPOINT, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + getApiKey() },
payload: JSON.stringify({ url: TARGET_URL }),
muteHttpExceptions: true
});
const status = response.getResponseCode();
if (status < 200 || status >= 300) {
throw new Error('Renderer returned HTTP ' + status + ': ' + response.getContentText());
}
const contentType = (response.getHeaders()['Content-Type'] || '').toLowerCase();
if (!contentType.startsWith('image/')) {
throw new Error('Expected an image response; received ' + (contentType || 'no Content-Type'));
}
const extension = contentType.includes('webp') ? 'webp'
: contentType.includes('jpeg') ? 'jpg'
: contentType.includes('png') ? 'png'
: 'image';
const stamp = Utilities.formatDate(new Date(), 'Asia/Kolkata', 'yyyy-MM-dd_HH-mm-ss');
const image = response.getBlob().setName('example-' + stamp + '.' + extension);
DriveApp.getFolderById(DESTINATION_FOLDER_ID).createFile(image);
}
function getApiKey() {
const key = PropertiesService.getScriptProperties().getProperty('RENDERER_API_KEY');
if (!key) throw new Error('Set RENDERER_API_KEY in Script Properties');
return key;
}
The response validation matters: without it, an error page or JSON error body could be stored with an image filename. Some services return a job ID or JSON containing a download URL rather than image bytes; in that case, implement the provider’s documented job polling or download flow before creating the Drive file. Confirm the response’s actual MIME type and supported format rather than assuming PNG.
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Drive’s Apps Script service can create a file from a blob using DriveApp.getFolderById(...).createFile(blob). For shared-drive-specific behavior, use the advanced Drive service where required. See Google’s DriveApp reference and advanced services guide.
Schedule the capture in India
- In the Apps Script editor, open Triggers (the clock icon) and choose Add Trigger.
- Select
captureAndSaveas the function to run and choose Time-driven as the event source. - Choose the cadence and time window that fit your need. Ensure the trigger uses the project’s
Asia/Kolkatatimezone, or set the project timezone accordingly. - Save the trigger and complete the authorization prompts for external requests and Drive.
Google describes time-driven triggers as running from as frequently as every minute to as infrequently as monthly. That does not make them exact cron jobs: a recurring 9 a.m. trigger may be assigned a time between 9 and 10 a.m. and then keep that timing. The nearMinute() option is documented with a plus-or-minus 15-minute window. If a capture must happen at an exact instant, this trigger mechanism is not a guarantee of that timing.
Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Triggers run as the user who created them. If that account loses authorization or access to the destination folder, unattended captures can fail.
Track outcomes without exposing secrets
Check the Apps Script execution history after setup and after changes. For ongoing monitoring, record the target URL, capture timestamp, result status, and any renderer error in a log or tracking sheet. Do not log API keys or authorization headers. Consider how retries could create duplicate Drive files, and use a stable naming or tracking scheme if duplicate captures would be a problem.
Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Limits that affect capture frequency
Google’s quota table, last updated September 3, 2026 UTC, lists the following Apps Script limits. Google notes that quotas can change without notice, so verify the live table for the account you use before relying on a capture schedule or processing many URLs.
| Limit | Consumer accounts | Workspace accounts |
|---|---|---|
| Maximum execution time per run | 6 minutes | 6 minutes |
| Total trigger runtime per day | 90 minutes | 6 hours |
| Triggers per user per script | 20 | 20 |
These limits apply to the Apps Script execution, not just the renderer’s capture time. A slow endpoint, a large response, or extra processing can consume the available run time. The renderer may also impose its own request, size, or concurrency limits; check those separately.
Best Value
- [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
- 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
- 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
- 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
- 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
Troubleshooting common failures
- Authorization or scope error: Run the function manually once and accept the required permissions. If scopes are explicitly listed in the manifest, ensure external request and Drive access are included.
- HTTP error from the renderer: Check the endpoint, request method, payload field names, credential format, account limits, and the renderer’s current API documentation. Keep the error status and message, but remove secrets before logging.
- Saved file is not an image: The service may return JSON, HTML, or an asynchronous job response rather than image bytes. Inspect the status and content type, then implement the provider’s documented polling or download step.
- File creation fails: Confirm the trigger owner can access the folder, the folder ID is correct, and the account has Drive authorization. Shared drives may require the advanced Drive service.
- Trigger runs at an unexpected local time: Check both the script timezone and any linked spreadsheet timezone. Remember that trigger execution is approximate, not minute-exact.
- Captures stop after working initially: Review execution history and authorization, confirm the trigger owner still has Drive access, and check current Apps Script and renderer quotas.
Or skip the browser setup
Apps Script still schedules and stores the capture, while ScreenshotNeo supplies the rendered image through one GET request. Its API call can be made from Apps Script with UrlFetchApp.fetch(); use the ScreenshotNeo API documentation for request options and response handling.
const response = UrlFetchApp.fetch('https://api.screenshotneo.com/v1/shot?access_key=YOUR_API_KEY&url=https%3A%2F%2Fexample.com');
const image = response.getBlob().setName('example-' + new Date().toISOString() + '.webp');
DriveApp.getFolderById(DESTINATION_FOLDER_ID).createFile(image);
- Cookie banners are accepted and removed before capture; the service also removes known consent platforms, newsletter popups, and chat widgets. Each cleanup step can be turned off.
- Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed; response headers identify the page verdict and billing status.
- An MCP server provides screenshot, page-info, and PDF tools for AI agents and MCP clients.
- The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.
Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Can an Apps Script time-driven trigger run every minute?
Google documents time-driven triggers as available as frequently as every minute, subject to the account’s current quotas and trigger timing behavior.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can I save the screenshot as a PDF instead of an image?
Yes, if the external renderer returns PDF bytes; adapt the response validation and filename to PDF, and confirm the renderer supports the page and output options you need.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




