Use case
Turn GPU machines and dev VMs on for the workday, off overnight.
GPU minutes are expensive. A two-dollar-per-hour pod that runs 24/7 is around 1,440 USD a month; a pod that runs 8 hours on weekdays is around 336 USD. Crontap fires the start and stop APIs so you do not have to remember.
Free plan · no credit card required
The problem
Why this is painful without the right tool
- Weekend-only billing on a team machine is the difference between keeping the pod and killing it.
- Your developers forget to stop their AWS dev box on Friday at 17:55, so it bills until Monday.
- Scheduled stop is not a first-class feature on every vendor (Runpod, Paperspace, vast.ai), and the workarounds vary per platform.
- A single dashboard that shows 'all machines on right now' across vendors does not exist; you click through three consoles to audit cost.
The fix
How Crontap solves it
Two schedules per machine: one starts it, one stops it. Different cron expressions, same URL shape, same auth header. Crontap stores the vendor API token (or a shared secret on a thin internal route that wraps the vendor call) and fires on local time. Failures alert to email / webhook (Slack / Discord / Telegram) so a stop that did not stop pages you before the weekend bill grows.
0 9 * * 1-5The mechanics are mechanical: each vendor exposes a start and a stop API. For AWS, that is the EC2 start-instance and stop-instance API (or a thin internal route that wraps it behind your own bearer token). For Runpod, it is the GraphQL pods endpoint with the appropriate mutation. For Paperspace and vast.ai, the same shape applies. Crontap fires the URL on the cadence; the URL handles the vendor specifics.
For multi-pod teams, one schedule per pod per direction (start plus stop) gives you a clean dashboard: a name, a cron, a timezone, a last-status indicator. The schedules live next to each other in one Crontap dashboard, so a missed stop is obvious before the bill arrives.
For thin internal routes, the cleanest pattern is a tiny backend endpoint that takes a pod ID and a direction, looks up the vendor and the credentials server-side, and hits the right API. Crontap calls that one endpoint with a JSON payload like {"pod":"a1","action":"start"}; the route handles the vendor diversity. Lower auth surface, uniform alerting, and a single rate-limit budget.
FAQ
Common questions
- Does Crontap need my AWS IAM keys?
- Send them in an Authorization header on the schedule. The roadmap includes encrypted-at-rest header storage; for now, treat the headers like any other secret. Most teams prefer the thin-internal-route pattern: AWS credentials live in your backend, Crontap only knows the bearer token your backend expects.
- What if the stop API is flaky?
- Crontap retries on 5xx and alerts if retries exhaust. That is not a replacement for cloud-native shutdown hooks on critical workloads; for a model-training pod with hours of state in memory, a missed stop should still fail loudly so somebody intervenes. For a dev box, the retry plus the failure alert is usually enough.
- Can I do weekend-only run?
- Yes. Cron expressions like 0 9 * * 6,0 (start on Saturday and Sunday at 09:00) plus 0 22 * * 6,0 (stop at 22:00 those same days) cover it. For more complex patterns (every other Tuesday, end of the month), the cron expression supports it; Crontap parses and renders the next runs so you can verify before saving.
- What's the shortest interval Crontap supports?
- Every 1 minute on paid plans. Free tier available for slower cadences. For pod start/stop you almost never want minute cadence; daily or weekly is the typical pattern. The minute floor matters for the health-check schedule that you might pair alongside, so the dashboard catches a stuck stop quickly.
Adjacent use cases
Ready to fix it?
Point Crontap at any URL. Pick any cron. Done.
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
Free forever tier ・ No credit card required
/wp-cron.php?doing_wp_cron=1
Schedule
"every 5 minutes"
Next
in 23s