Create a calendar

Create a calendar. Integration fields can't be set through the API.

POST https://api.centerfy.ai/webhooks/inbound/calendars

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Body parameters

NameTypeRequiredDefaultDescription
namestringYes—Calendar name.
descriptionstring | nullNo—Description.
colorstringNo—Hex colour in #RRGGBB form, e.g. #3B82F6.
is_defaultbooleanNo—Make this the default calendar. Setting true clears the flag on every other calendar in the sub-account.
is_activebooleanNo—Whether the calendar accepts bookings. Defaults to true.
booking_duration_minutesintegerNo—Length of a booking in minutes; 1–1440. Defaults to 30.
meeting_interval_minutesinteger | nullNo—Minutes between slot start times; 1–1440.
minimum_scheduling_notice_minutesintegerNo—How far ahead a booking must be made, in minutes; minimum 0. Defaults to 0.
date_range_daysintegerNo—How many days ahead can be booked; minimum 1. Defaults to 30.
pre_buffer_minutesintegerNo—Free time kept before each booking; minimum 0. Defaults to 0.
post_buffer_minutesintegerNo—Free time kept after each booking; minimum 0. Defaults to 0.
max_bookings_per_dayinteger | nullNo—Daily booking cap; minimum 1. null for no cap.
max_bookings_per_slotintegerNo—Bookings allowed in the same slot; minimum 1. Defaults to 1.
confirmation_typestringNo—What the public booking page does after booking. One of show_details, redirect. Defaults to show_details.
confirmation_redirect_urlstring | nullNo—http(s) URL to send people to; required when confirmation_type is redirect.

Request body

{
  "name": "Consultations",
  "description": "30-minute intro call",
  "color": "#3B82F6",
  "booking_duration_minutes": 30,
  "minimum_scheduling_notice_minutes": 60,
  "post_buffer_minutes": 10,
  "is_default": true
}

Example

curl -X POST "https://api.centerfy.ai/webhooks/inbound/calendars" \
  -H "x-api-key: $CENTERFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Consultations",
  "description": "30-minute intro call",
  "color": "#3B82F6",
  "booking_duration_minutes": 30,
  "minimum_scheduling_notice_minutes": 60,
  "post_buffer_minutes": 10,
  "is_default": true
}'
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.calendars.create({
  "name": "Consultations",
  "description": "30-minute intro call",
  "color": "#3B82F6",
  "booking_duration_minutes": 30,
  "minimum_scheduling_notice_minutes": 60,
  "post_buffer_minutes": 10,
  "is_default": true
});
console.log(result);
centerfy calendars create '{"name":"Consultations","description":"30-minute intro call","color":"#3B82F6","booking_duration_minutes":30,"minimum_scheduling_notice_minutes":60,"post_buffer_minutes":10,"is_default":true}'

MCP tool: centerfy_calendars_create (see MCP server)

Response

{
  "status": "success",
  "calendar": {
    "id": "4e5f6a7b-8c9d-4e0f-9a1b-2c3d4e5f6a7b",
    "name": "Consultations",
    "description": "30-minute intro call",
    "color": "#3B82F6",
    "is_default": true,
    "is_active": true,
    "booking_duration_minutes": 30,
    "booking_location_type": "phone_call",
    "meeting_interval_minutes": null,
    "minimum_scheduling_notice_minutes": 60,
    "date_range_days": 30,
    "pre_buffer_minutes": 0,
    "post_buffer_minutes": 10,
    "max_bookings_per_day": null,
    "max_bookings_per_slot": 1,
    "confirmation_type": "show_details",
    "confirmation_redirect_url": null,
    "user_id": null,
    "calendar_integration_id": null,
    "is_hubspot_calendar": false,
    "hubspot_scheduler_id": null,
    "hubspot_scheduler_slug": null,
    "is_salesforce_calendar": false,
    "salesforce_calendar_id": null,
    "created_at": "2026-10-01T10:00:00.000Z",
    "updated_at": "2026-10-01T10:00:00.000Z"
  }
}

Errors

  • 400 — if name is empty, a field is out of range, confirmation_redirect_url isn’t an http(s) URL, or confirmation_type is redirect without a confirmation_redirect_url.

Notes

Returns 201.

© 2026 Centerfy AI. All rights reserved.