Skip to content

Scheduling

VibeTesting supports scheduled test execution — run your tests at a specific future time, or set up recurring schedules so your app is tested automatically on a daily or weekly cadence.


Key capabilities

Capability Description
One-time scheduling Schedule a test run for a specific date and time
Recurring schedules Repeat daily or weekly with a configurable number of occurrences
Relative timing Schedule runs relative to now (e.g., "run in 30 minutes")
End-date boundaries Define a recurring window with an end date
Timezone-aware All schedules respect your timezone (IANA format, e.g. America/New_York, Asia/Jerusalem)
Both execution modes Works with exploration and guided test runs
Email reports Optionally receive an email report after each scheduled run
Easy cancellation Cancel a specific schedule, a suite's schedule, or all active schedules

How to schedule tests

Via the AI chat

Tell the assistant when you want tests to run. The assistant confirms details before creating the schedule.

Examples:

  • "Schedule my login tests for tomorrow at 9 AM, repeating daily for 5 days."
  • "Run my checkout suite every night at 2 AM and email me the report."
  • "Run these tests in 30 minutes."
  • "Schedule suite onboard-1 to run every night until Saturday."

Via the API

Use the /api/external/run-tests/ or /api/external/run-suite/ endpoints with scheduling parameters. This is ideal for CI/CD integration.

curl -X POST "https://app.vibetesting.me/api/external/run-tests/" \
  -H "Authorization: api-key YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "execution_type": "guided",
    "tests": [
      {"name": "teacher signup", "steps": "signup as a teacher, log out and signin with the new details. Verify success signin"},
      {"name": "teacher wrong credentials", "steps": "signin as a teacher with wrong credentials. Verify unsuccessful signin"}
    ],
    "login": {"login_needed": true, "identifier": "user@ex.com", "password": "secret"},
    "general_instructions": "Focus on checkout, search. Focus on error handling",
    "flows_count": 3,
    "max_steps_per_flow": 15,
    "should_send_report": false,
    "should_stop_existing": false,
    "allow_parallel": false,
    "schedule_at": "2026-04-04T02:00:00+03:00",
    "repeat": "weekly",
    "repeat_count": 4,
    "timezone": "Asia/Jerusalem"
  }'

Scheduling parameters:

  • schedule_at — ISO 8601 datetime to schedule the run instead of starting immediately (e.g. 2026-04-04T02:00:00+03:00)
  • repeat — recurrence interval: once, daily, or weekly
  • repeat_count — number of occurrences for a recurring schedule
  • timezone — IANA timezone string (e.g. Asia/Jerusalem, America/New_York). Defaults to the user's configured timezone

Response — scheduled run

{
  "status": "success",
  "schedule_id": "....",
  "execution_ids": [123, 124, 125, 126],
  "message": "..."
}

Response — failure

{
  "status": "fail",
  "reason": "..."
}

See the External API reference for the full parameter list and all response formats.


How it works

  1. When you create a schedule, execution entries are pre-created with a SCHEDULED status — visible in your Inventory.
  2. At the scheduled time, the run automatically starts and transitions to PROCESSING.
  3. Credits are validated upfront before the schedule is created.
  4. Scheduled runs don't count toward the parallel execution limit until they actually start.
  5. Remaining occurrences count down automatically; the schedule deactivates when complete.

Cancellation

You can cancel schedules at any time:

  • Cancel a specific schedule
  • Cancel all schedules for a suite
  • Cancel all active schedules

Cancelled schedules mark any pending executions as SCHEDULE_CANCELED.

To cancel, ask the assistant (e.g., "Cancel all my scheduled runs") or use the External API stop-execution endpoint with schedule_id and cancel_scheduled: true:

curl -X POST "https://app.vibetesting.me/api/external/stop-execution/" \
  -H "Authorization: api-key YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule_id": "SCHEDULE_UUID",
    "cancel_scheduled": true
  }'

Response

{
  "status": "success",
  "schedule_id": "....",
  "canceled_execution_count": 4,
  "message": "..."
}