Show HN: Kalendis – Scheduling API (keep your UI, we handle timezones/DST)

Show HN (score: 5)
Found: October 07, 2025
ID: 1765

Description

API/SDK
Show HN: Kalendis – Scheduling API (keep your UI, we handle timezones/DST) Kalendis is an API-first scheduling backend. You keep your UI; we handle the gnarly parts (recurrence, time zones, DST, conflict-safe bookings).

What it does:

• MCP tool: generates typed clients and API route handlers (Next.js/Express/Fastify/Nest) so you can scaffold calls straight from your IDE/agent tooling.

• Availability engine: recurring rules + one-off exceptions/blackouts, returned in a clean, queryable shape.

• Bookings: conflict-safe endpoints for creating/updating/canceling slots.

Why we built it:

We kept rebuilding the same "hard parts" of scheduling: time zones/DST edge cases, recurring availability, conflict-aware booking, etc. We wanted a boring, reliable backend so we could ship product features without adopting a hosted scheduling UI.

How it's helped:

We stopped re-implementing DST/recurrence math and shipped booking flows faster.

One small team (just 2 developers) built a robust booking platform for their business using Kalendis—they kept full control of their UX without spending lots of cycles on scheduling infrastructure.

The MCP generator cut the glue code: drop in a typed client or route, call the API, move on.

Some tech details:

• REST API with ISO-8601 timestamps and IANA time zones

• Recurring availability + one-off exceptions (designed to compose cleanly)

• Focused scope: users, availability, exceptions, bookings (not a monolithic suite)

MCP integration:

MCP server exposes tools like generate-frontend-client, generate-backend-client, generate-api-routes, and list-endpoints.

Add to your MCP settings:

{ "mcpServers": { "kalendis": { "command": "npx", "args": ["-y", "@kalendis/mcp"] } } }

How to try it:

Create a free account → get an API key. (https://kalendis.dev)

Hit an endpoint:

curl -H "x-api-key: $KALENDIS_API_KEY" \ "https://api.kalendis.dev/v1/availability/getAvailability?userId=<user-id>&start=2025-10-07T00:00:00Z&end=2025-10-14T00:00:00Z&includeExceptions=true"

What feedback would be most useful:

Gaps in the endpoint surface (what's missing for your use case?).

Features that would benefit this service integration in your app.

MCP generator output—anything you'd want it to emit differently?

Happy to answer questions and post example snippets in the thread. Thanks for taking a look!

— Dave (Kalendis)

More from Show

Show HN: A terminal spreadsheet editor with Vim keybindings

Show HN: A terminal spreadsheet editor with Vim keybindings While speccing out this spreadsheet tool, I realized that I never had to think about the keybindings. It all just came naturally from Vim. Normal&#x2F;insert&#x2F;visual modes, hjkl navigation, dd&#x2F;yy&#x2F;p, :w, :q. The usual muscle memory works.<p>It supports CSV&#x2F;TSV import and export, and a native .cell format that preserves formulas. The formula engine handles SUM, AVERAGE, COUNT, MIN, MAX, and IF with range references.<p>The codebase is a Cargo workspace: a pure cell-sheet-core library (no TUI dependency) and a cell-sheet-tui crate on top of ratatui. Early days, but it&#x27;s usable.<p>To try it out: cargo install cell-sheet-tui<p>Feedback of any kind is greatly appreciated!

No other tools from this source yet.