ScreenshotNeo

BlogHow-to

How to Schedule Website Screenshots Only on Weekdays

Schedule weekday screenshots by excluding Saturday and Sunday in your scheduler or automation. Choose the right timezone and confirm whether you need images or change alerts.

By the ScreenshotNeo team4 October 202610 min read

To schedule website screenshots only on weekdays, configure the scheduler to run Monday through Friday and explicitly exclude Saturday and Sunday. Check which timezone controls the schedule. If you need a saved image on each run, use a scheduled screenshot workflow; if you need alerts when a page changes, use a visual-monitoring service with weekday scheduling.

1. Choose the outcome: screenshots or change monitoring

These workflows are related but produce different results:

  • Screenshot archive: creates and saves an image on each scheduled run. A scheduled automation paired with a webpage-to-image action is a documented no-code pattern.
  • Visual monitoring: checks a page for changes and reports them. It may show comparisons or alerts, but that does not by itself guarantee a separate daily screenshot archive.

Before configuring anything, decide where each image or alert should go, which URL to capture, what time it should run, and which timezone defines the weekday boundary.

2. Set weekday-only monitoring in Visualping

Visualping documents an Advanced Scheduling setting for monitors. This is a close fit when you want scheduled page checks and visual change alerts.

  1. Open the monitor’s settings and go to Schedule.
  2. Choose a predefined schedule or configure the active days individually.
  3. Enable Monday, Tuesday, Wednesday, Thursday, and Friday. Disable Saturday and Sunday.
  4. Set the time window. Visualping’s documentation says the same time range applies to all active days and currently allows one schedule block per day.
  5. Confirm the timezone. A Business workspace with an explicit timezone setting uses the workspace timezone; other plans inherit the user’s timezone.
  6. Save the schedule and verify the monitor’s next run in its schedule view.

Visualping describes its service as scheduled webpage checks that compare page versions and detect visual, text, and code changes. Treat it as monitoring: the scheduling documentation does not establish that every check creates a distinct daily screenshot archive. Check the current plan and workspace settings for the options available to your account.

3. Build a weekday screenshot workflow with Zapier

For a no-code image archive, use a schedule trigger and a webpage-to-image action, then send the resulting image to a storage or notification step. Zapier’s integration catalog documents a Schedule by Zapier plus HTML to Image workflow pattern. Its documented example is daily, so configure the weekday restriction yourself.

  1. Create a Zap with Schedule by Zapier as the trigger and select a daily schedule.
  2. Set Trigger on weekends? to No.
  3. Check the Zapier account timezone. The Schedule trigger uses that timezone.
  4. Add the webpage-to-image action and provide the page URL and any image options that action supports.
  5. Add an action to save or deliver the generated image, such as sending it to a destination supported by your connected apps.
  6. Run the Zap’s available setup checks, then review its run history after the first scheduled execution.

If your schedule setup does not expose the weekend control, Zapier’s filter documentation describes excluding weekends with two AND-connected conditions: the day must not be Saturday, and it must not be Sunday. Place the filter before the screenshot action so a weekend run stops before generating an image.

Zapier says a scheduled Zap is not guaranteed to trigger at the exact selected minute and should run within a few minutes. Allow for that delay when naming files or coordinating downstream tasks. Do not use this route for a hard real-time capture deadline.

Weekday filter logic

Use the scheduler’s own weekend control when available. If using a filter, the intended logic is:

Continue only if:
  day_of_week is not Saturday
  AND
  day_of_week is not Sunday

Make sure both conditions use the same timezone as the schedule. A timezone mismatch near midnight can make a run appear to fall on the wrong calendar day.

4. Consider Distill for scheduled checks

Distill is another monitoring option. Its documentation describes local monitor time slots where you can choose a start time, end time, and specific weekdays, such as Monday through Friday. Its cron schedule is documented as an Enterprise-plan feature.

Use this route when scheduled webpage checking matches your need, and confirm the monitor type and plan before relying on the setting. The cited documentation does not establish Distill as a general-purpose screenshot archive workflow.

5. Capture screenshots yourself with a scheduled script

If you need control over the saved files and schedule, run a browser capture script from a weekday scheduler. This example uses Playwright with Node.js. It checks the machine’s local weekday and exits on weekends, so a mistakenly configured weekend cron run will not capture an image.

Install Node.js, then install Playwright and its Chromium browser:

npm init -y
npm install playwright
npx playwright install chromium

Save this as weekday-shot.mjs. Set TARGET_URL and optionally OUTPUT_DIR in the environment before running it.

import { chromium } from 'playwright';
import { mkdir } from 'node:fs/promises';
import path from 'node:path';

const target = process.env.TARGET_URL;
if (!target) throw new Error('Set TARGET_URL to the page to capture');

const now = new Date(); // Uses the machine's local timezone.
const day = now.getDay(); // Sunday = 0, Saturday = 6.
if (day === 0 || day === 6) {
  console.log('Weekend: skipping capture');
  process.exit(0);
}

const outputDir = process.env.OUTPUT_DIR ?? './screenshots';
await mkdir(outputDir, { recursive: true });
const stamp = now.toISOString().replaceAll(':', '-');
const outputFile = path.join(outputDir, `shot-${stamp}.png`);

const browser = await chromium.launch({ headless: true });
try {
  const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });
  page.setDefaultNavigationTimeout(60_000);
  const response = await page.goto(target, { waitUntil: 'networkidle', timeout: 60_000 });
  if (!response) throw new Error('Navigation returned no main document response');
  if (!response.ok()) throw new Error(`Page returned HTTP ${response.status()}`);
  await page.screenshot({ path: outputFile, fullPage: true });
  console.log(`Saved ${outputFile}`);
} finally {
  await browser.close();
}

Run it manually to confirm the browser can reach the page:

TARGET_URL=https://example.com node weekday-shot.mjs

The script’s weekday check uses the operating system’s local timezone. For a business timezone different from the machine’s timezone, set the machine timezone appropriately or replace the check with an explicit timezone-aware weekday calculation. The filename uses UTC for stable sorting; the weekday decision still uses local time.

Schedule the script on Linux with cron

For a run at 09:00 Monday through Friday in the cron host’s configured timezone, edit the crontab with crontab -e and add a line like this, replacing paths and the URL:

0 9 * * 1-5 TARGET_URL=https://example.com OUTPUT_DIR=/srv/shots /usr/bin/node /opt/weekday-shot.mjs >> /var/log/weekday-shot.log 2>&1

Cron day-of-week values commonly use 1–5 for Monday through Friday, but check the cron implementation on your host. Cron uses the host’s timezone unless configured otherwise. Ensure the Node executable and script paths are absolute, and that the job’s user can write to the output directory.

Schedule with another task runner

On Windows, create a Task Scheduler task with a weekly trigger set for Monday through Friday and configure the action to run Node with the script path. On macOS or Linux, use the system scheduler available in your environment. In each case, confirm the scheduler timezone, provide environment variables explicitly, and keep the script’s weekend guard as a second check.

6. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. A single GET request returns an image or PDF. The following cURL call creates an image; put it behind your weekday scheduler or automation to capture only Monday through Friday. See the ScreenshotNeo API documentation for request options.

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://example.com \
  -o shot.webp

For a script-driven schedule, the same API can be called from Python:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com"},
    timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Or from Node.js:

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com',
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

Replace YOUR_API_KEY with your key and store it in a secret or environment variable rather than committing it to source control. ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card.

7. Scheduling options at a glance

Route Best fit Weekday control Timezone to check
Visualping Change monitoring and alerts Enable weekdays and disable weekends in Advanced Scheduling Business workspace setting when explicit; otherwise user timezone
Zapier plus webpage-to-image action No-code scheduled image creation Weekend trigger setting or a weekday filter Zapier account timezone
Distill Scheduled webpage checks Local monitor time slots support selected weekdays; cron schedule is Enterprise-only Confirm the monitor’s configured schedule context
Playwright plus system scheduler Custom image files and capture behavior Scheduler weekdays plus script guard Host or task scheduler timezone
ScreenshotNeo API plus scheduler Managed screenshot capture called from your chosen schedule Set weekdays in the external scheduler or automation The scheduler’s timezone

8. Reliability, performance, and cost

  • Timezone and daylight saving: A weekday schedule is defined by a timezone. Record the intended timezone and verify behavior around daylight-saving changes and midnight boundaries.
  • Timing: Zapier documents that a scheduled trigger may run a few minutes away from the selected minute. Leave downstream processes a margin.
  • Retries and duplicates: A scheduler or network retry can produce more than one image. Use timestamps in filenames and, for an archive, choose a retention policy. Do not assume a run is exactly once unless your workflow provides that guarantee.
  • Slow or dynamic pages: Browser capture may wait on network activity that never becomes idle, including analytics or long polling. If that happens, use an appropriate readiness condition or fixed wait for the page instead of waiting indefinitely; keep a timeout.
  • Storage: Estimate image volume from five scheduled runs per week and the average image size. Keep only the resolution and retention period you need.
  • Service cost: Check current plan limits and charges for the scheduler, monitoring service, and image action you select. The documented Distill cron option is Enterprise-only. ScreenshotNeo’s free tier is 1,000 shots per month and paid plans start at $5 for 3,000; yearly billing gives two months free, and every feature is on every plan.

9. Troubleshooting

Symptom Likely cause Fix
A screenshot appears on Saturday or Sunday The scheduler includes weekends, the filter is missing, or the scheduler and filter use different timezones Disable both weekend days in the schedule or add both weekday filter conditions. Align their timezone and keep the script guard enabled.
No screenshot is created The scheduled workflow is disabled, a required connection expired, the script cannot run, or the output directory is not writable Review the scheduler’s run history or logs, reauthorize connections, use absolute executable and script paths, and check directory permissions.
The run happens at an unexpected hour The account, workspace, host, or task runner uses a different timezone Check the controlling timezone in the product settings and host configuration. Compare a test run with that timezone’s local clock.
The capture is blank or incomplete The page is still loading, requires interaction, or renders content after initial navigation Wait for a meaningful selector or a short bounded delay before capture. Check whether the page requires authentication or blocks automated browsers.
The script times out at network idle The page keeps network requests open Use a page readiness condition or a bounded wait appropriate to the site, and retain a navigation timeout so a run cannot hang.
Zapier runs a few minutes late Scheduled triggers are not guaranteed at the exact selected minute Allow a few minutes of tolerance. For workflows requiring a precise execution time, choose a scheduler whose documented timing guarantees meet that requirement.
Multiple files are saved for one date A retry or duplicate trigger ran more than once, or filenames lack enough precision Include a timestamp in the filename and inspect run history. If downstream processing is involved, make it safe to handle duplicate files.
The schedule option is unavailable The feature depends on plan, workspace configuration, or monitor type Check the current product documentation and plan. Distill identifies its cron tab as Enterprise-only; Visualping scheduling can depend on plan and workspace settings.

10. FAQ

Does a weekday schedule mean exactly five captures every week?

It is intended to run Monday through Friday, but service delays, disabled workflows, errors, and holidays can affect the actual number. Review execution history if completeness matters.

Can I run only from 9 a.m. to 5 p.m.?

Visualping documents a time window for active days and currently one schedule block per day. Other schedulers may express a window as multiple runs or a recurring trigger; check their current controls.

Should I use a monitor or a screenshot API?

Use a monitor when you need change detection and alerts. Use an image-producing workflow or screenshot API when you need a file on each scheduled run.

Can an AI agent take the scheduled screenshot?

ScreenshotNeo’s MCP server includes screenshot and page-information tools for MCP clients. The weekday schedule still needs to be configured in the scheduler or automation that invokes the capture.