Self-Hosted Appointment Scheduling

A complete appointment scheduling system you can host yourself. Full API access, no monthly fees, complete control over your data.

Everything You Need

Powerful features for seamless appointment scheduling

Smart Scheduling

Automatic slot generation with conflict detection. Set your availability once, let the system handle the rest.

Timezone Aware

Automatic timezone conversion for hosts and clients. Never miss a meeting due to timezone confusion.

Multiple Event Types

Create different meeting types with custom durations, buffers, and descriptions for any scenario.

Secure by Design

JWT authentication, password hashing, and input validation. Your data stays on your server.

API First

Complete REST API for all operations. Integrate with any website, app, or workflow.

Self-Hosted

Deploy anywhere - your server, cloud, or container. No vendor lock-in, no monthly fees.

Simple API Integration

Only 2 APIs needed - Book demo and Get booked slots

API 1: Book Demo

// POST /api/book-demo
// Book a demo using date + slot_number

const booking = await fetch('https://calender.axiever.com/api/book-demo', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_TOKEN'
  },
  body: JSON.stringify({
    date: '2026-01-10',
    email: 'client@example.com',
    slot_number: 5  // Slot 5 = 13:00-14:00
  })
});

// Response:
// {
//   "success": true,
//   "booking_id": 123,
//   "date": "2026-01-10",
//   "slot_number": 5,
//   "start_time": "13:00",
//   "end_time": "14:00"
// }

API 2: Get Booked Slots

// GET /api/booked-slots?date=2026-01-10
// Get booked slot numbers for a date

const response = await fetch(
  'https://calender.axiever.com/api/booked-slots?date=2026-01-10',
  {
    headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
  }
);

// Response:
// {
//   "date": "2026-01-10",
//   "booked_slots": [2, 5, 7],
//   "total_slots": 8,
//   "available_slots": [1, 3, 4, 6, 8]
// }

Slot Mapping (9AM-5PM = 16 slots, 30 min each):

Slot 1
09:00-09:30
Slot 2
09:30-10:00
Slot 3
10:00-10:30
Slot 4
10:30-11:00
Slot 5
11:00-11:30
Slot 6
11:30-12:00
Slot 7
12:00-12:30
Slot 8
12:30-13:00

... and so on up to Slot 16 (16:30-17:00)