H
HykeCal
For developers

Build on HykeCal

A plain HTTP API — no SDK required. Public endpoints are CORS-open, so you can call them straight from browser JS in any project. A typed npm client exists for convenience, not as a requirement.

Public endpoints

No auth. Safe to call from browser code. Rate-limited per IP — booking creation: 5/hour, slot lookups: 60 per 10 minutes. A 429means back off, not that something's broken.

GET/api/v1/event-typesActive event types.
GET/api/v1/event-types/:slug/slots?from=&to=Available UTC instants in a range (max 31 days).
POST/api/v1/bookingsCreate a booking.
DELETE/api/v1/bookings/:id?token=Cancel your own booking.

Owner-authenticated endpoints

Session cookie or Authorization: Bearer <HYKECAL_API_KEY>. Server-to-server only — never expose your API key in browser JS.

GET/POST/api/v1/admin/event-typesList / create event types.
PATCH/DELETE/api/v1/admin/event-types/:idUpdate / delete.
GET/api/v1/admin/availabilityWeekly rules + date overrides.
PUT/api/v1/admin/availability/weeklyReplace the weekly grid.
GET/DELETE/api/v1/admin/bookings[/:id]List / owner-cancel.

Example: fetch available slots

hykecal-client

import { createHykeCalClient } from "hykecal-client";

const hykecal = createHykeCalClient({
  baseUrl: "https://hykecal.vercel.app",
});

const slots = await hykecal.getSlots(
  "15-min-call",
  new Date(),
  new Date(Date.now() + 14 * 864e5),
);

Plain fetch

const res = await fetch(
  "https://hykecal.vercel.app/api/v1" +
  "/event-types/15-min-call/slots" +
  "?from=2026-09-01T00:00:00Z" +
  "&to=2026-09-14T00:00:00Z"
);
const { slots } = await res.json();

Example: create a booking

curl -X POST https://hykecal.vercel.app/api/v1/bookings \
  -H "Content-Type: application/json" \
  -d '{
    "eventTypeSlug": "15-min-call",
    "start": "2026-09-01T14:00:00.000Z",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  }'
# -> 201 { "id": "...", "cancelUrl": "..." }
# -> 409 if that slot's gone by the time this arrives

Full reference and error handling: see the hykecal-client README or the docs.