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, orweekly - 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¶
- When you create a schedule, execution entries are pre-created with a SCHEDULED status — visible in your Inventory.
- At the scheduled time, the run automatically starts and transitions to PROCESSING.
- Credits are validated upfront before the schedule is created.
- Scheduled runs don't count toward the parallel execution limit until they actually start.
- 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": "..."
}