Skip to main content
skill CX Codex

crontap-replace-vercel-cron — Claude Code skill: replace Vercel Cron

Moves a Vercel Cron schedule to Crontap while keeping the deployed HTTP route, timezone intent, and rollback plan. Use it for external scheduling.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Crontap/skills --skill crontap-replace-vercel-cron -a claude-code
Open on GitHub

What crontap-replace-vercel-cron does

This skill moves the schedule from vercel.json to Crontap while Vercel remains the runtime. It checks the production hostname and route method, adds a dedicated secret header, tests the live request, and preserves the original UTC meaning unless a local IANA timezone is chosen.

The workflow uses create_schedule, pause_schedule, and resume_schedule. Before those tools run, it offers MCP at https://mcp.crontap.com/mcp or a raw API path using $CRONTAP_CLIENT_ID and $CRONTAP_API_KEY; raw API access requires Ultra. The endpoint should return 401 without the secret, and queued work needs an idempotency key for its logical schedule period.

After the cutover, the skill checks the resolved timezone, upcoming runs, and first history entry. The old Vercel schedule must be disabled, since two active clocks can trigger duplicate side effects. Rollback pauses Crontap, restores the Vercel schedule, and then deploys the change.

What it helps with

  • move a schedule out of vercel.json
  • secure a cron endpoint with a secret header
  • verify the first external run and its side effect
  • prepare a rollback to Vercel Cron
  • prevent duplicate runs during cutover

Example prompts for the agent

  • Move the schedule in vercel.json to Crontap and keep the current HTTP route.
  • Check the production endpoint, add header authentication, and plan the cutover.
  • Show the rollback steps for Vercel Cron and verify the first Crontap run.

How to install crontap-replace-vercel-cron

1Skills CLI (Vercel)

npx skills add Crontap/skills --skill crontap-replace-vercel-cron -a claude-code

2Manually: put the files in place

~/.claude/skills/crontap-replace-vercel-cron/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/crontap-replace-vercel-cron/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about crontap-replace-vercel-cron

How do I install crontap-replace-vercel-cron in Claude Code?

Run npx skills add Crontap/skills --skill crontap-replace-vercel-cron -a claude-code, then use ~/.claude/skills/crontap-replace-vercel-cron/SKILL.md.

What does crontap-replace-vercel-cron do?

It moves a Vercel Cron schedule to Crontap while retaining the route, request protection, timezone intent, and rollback path. It also checks the first run and makes sure both schedulers are not active.

What access does the skill need?

Connect MCP at https://mcp.crontap.com/mcp, or configure $CRONTAP_CLIENT_ID and $CRONTAP_API_KEY. The raw API route requires Ultra.

Source text

SKILL.md · MIT
---
name: crontap-replace-vercel-cron
description: >
  Move a Vercel Cron schedule to Crontap while keeping the existing protected
  HTTP route, timezone intent, and rollback path. Use when a user wants an
  external scheduler for a Vercel deployment or has outgrown native cron limits.
license: MIT
metadata:
  version: "1.0.0"
  group: patterns-migrations
  order: 8
  title: Replace Vercel Cron
  summary: Move a Vercel cron to a protected endpoint with finer timing, pause controls, and searchable run history.
  bestFor: Protected routes, faster cadences, and safe cutovers
  guide: https://crontap.com/blog/vercel-cron-hourly-limit-and-how-to-beat-it
  guideTitle: Vercel Cron limits and alternatives
  tools: create_schedule,pause_schedule,resume_schedule
---

# Replace Vercel Cron

Keep Vercel as the runtime and move only the clock. Crontap calls the deployed
route over HTTPS.

## Prerequisites

Before using the required tools, check whether they are available. If any are
missing, stop and offer the user exactly two choices:

1. Connect Crontap MCP at `https://mcp.crontap.com/mcp`. MCP access works on
   every Crontap tier.
2. Configure `$CRONTAP_CLIENT_ID` and `$CRONTAP_API_KEY` for the raw API. Raw
   API access requires Ultra.

Do not silently choose a path or continue until the user selects one.

- Read the existing `vercel.json` cron path and expression.
- Confirm the production hostname and route method.
- Protect the route with a dedicated secret header.
- Make the handler idempotent before cutover.

## Cutover workflow

1. Add or verify route authentication in the Vercel application.
2. Test the protected production route with a controlled request.
3. Choose a cutover time and explain the brief overlap or gap risk.
4. Remove or disable the `vercel.json` schedule.
5. Create the matching Crontap schedule immediately.
6. Verify the resolved timezone, next runs, and first history entry.
7. Keep a rollback plan: pause Crontap, restore the Vercel cron, then deploy.

Do not leave both clocks enabled. Two schedulers can create duplicate side
effects even when both are operating correctly.

## MCP examples

Create the replacement:

```json
{
  "tool": "create_schedule",
  "arguments": {
    "url": "https://app.example.com/api/cron/daily-report",
    "cron": "0 9 * * 1-5",
    "timezone": "UTC",
    "method": "GET",
    "headers": {
      "Authorization": "Bearer <secret-from-secure-store>"
    },
    "label": "Vercel daily report"
  }
}
```

Pause for rollback or maintenance:

```json
{
  "tool": "pause_schedule",
  "arguments": {
    "scheduleId": "<schedule-id>"
  }
}
```

Resume the same configuration:

```json
{
  "tool": "resume_schedule",
  "arguments": {
    "scheduleId": "<schedule-id>"
  }
}
```

Confirm the selected ID before pause or resume.

## Protected route pattern

Compare the request authorization header with a server-only environment
variable. Return 401 before performing work when it does not match. Do not use
a secret in the query string or route path.

If the route queues work, persist the logical schedule period as an idempotency
key before enqueueing. Return success only after the queue accepts the job.

## REST fallback

REST creation requires Ultra API access:

```bash
curl --fail-with-body https://api.crontap.com/v1/schedule \
  -X POST \
  -H "ClientId: $CRONTAP_CLIENT_ID" \
  -H "ApiKey: $CRONTAP_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
    "url": "https://app.example.com/api/cron/daily-report",
    "interval": "0 9 * * 1-5",
    "timezone": "UTC",
    "verb": "GET",
    "headers": {
      "Authorization": "Bearer <secret-from-secure-store>"
    },
    "label": "Vercel daily report"
  }'
```

Use MCP for non-Ultra accounts.

## Verification

- Confirm the old Vercel schedule is absent from the deployed configuration.
- Confirm only one Crontap schedule targets the route.
- Verify a 401 without the secret and success with the secret.
- Inspect the first real run and the application-level side effect.

## Safety and plan limits

- Never paste the production route secret into the skill, repository, or chat.
- Pause before restoring the old scheduler during rollback.
- Preserve the original cadence's UTC semantics unless the user explicitly
  chooses a local IANA timezone.
- On a cap or cadence error, present the returned four-option ladder and
  smallest viable option.

## Troubleshooting

- A Vercel 401 means the configured schedule header and route secret differ.
- A 404 often means the route is not deployed on the hostname being called.
- Duplicate output means both clocks are active or endpoint idempotency failed.
- A timeout may require durable queueing instead of long synchronous work.

## References

- [Crontap Agent Skills catalogue](https://crontap.com/skills)
- [Vercel Cron limits and alternatives](https://crontap.com/blog/vercel-cron-hourly-limit-and-how-to-beat-it)
- [Vercel Cron alternative](https://crontap.com/use-cases/vercel-cron-alternative)
- [Cron troubleshooting](https://crontap.com/guides/cron-troubleshooting)
- [Cron job monitoring](https://crontap.com/cron-job-monitoring)

© Crontap · MIT · Crontap/skills

Similar skills

All skills for Backend and APIs →

From the same set6

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor