The scheduling API for developers
Schedule anything.
Once or
on repeat
Schedule an HTTP request with a timestamp or cron expression. Use your backend to create schedules for your app and your users.
10,000 events / month free. Then pay as you go.
import { cuey } from "cuey";
await cuey.schedule({
webhook_url: "https://your.app/api/remind",
method: "POST",
scheduled_at: new Date(
Date.now() + 15 * 60 * 1000
).toISOString(),
payload: { user_id: "user_123" },
});[01] how it works
Schedule a call to your endpoint.
Run a task once.
Send a reminder or expire a trial. Set a timestamp and a webhook URL.
Schedule a webhook →Repeat on a schedule.
Send a weekly digest or run a daily cleanup. Set a cron expression and a timezone.
Build a cron expression →Let users set the time.
Create a schedule when a user saves their preferences. Update it when they edit their preferences.
Add user-defined schedules →[02] integration
Use your existing backend.
Use the TypeScript SDK or send an HTTP request from any language. Your endpoint can run on Vercel, Supabase, AWS, or your own server.
[03] pricing
Pay for the requests you run.
10,000 free.
Events per month. Then $0.0001 per event.
Unlimited cron schedules. Usage-based billing.
One-off events and cron executions share the same allowance.
| events / month | cost / month |
|---|---|
| 10,000 | $0 |
| 50,000 | $4 |
| 100,000 | $9 |
| 500,000 | $49 |
| 1,000,000 | $99 |
[04] FAQ
Questions about Cuey
How is this different from a cron in my deployment?
You create Cuey schedules through an API at runtime. That lets your application schedule a one-off event or create a recurring job for each user, without changing your deployment configuration.
Does Cuey send emails or push notifications?
Cuey calls your HTTP endpoint. Your endpoint sends the email or push notification using your existing provider.
Can I change or cancel a schedule?
Yes. Update or delete pending one-off events, and update, pause, or delete recurring schedules through the API.
What happens if my endpoint fails?
Configure retry attempts and backoff. Inspect event status and response details in the dashboard. Make your handler idempotent so repeated deliveries are safe.
Get started