Calendar

Set up the calendar

calendar_setup · Changes data · Markdown

Sets the business's calendar or a person's own: name, booking address, time zone, weekly hours, closed days, reminder emails and confirmation calls.

$0.001 a call

From your agent’s balance. A call that fails costs nothing.

An example

Take bookings Monday to Friday 10 to 7 and Saturday 10 to 4, Portland time, and close on Christmas Eve.

Your agent callscalendar_setup$0.001 a call

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "name": "Halverson Cycle & Repair",
  "address": "halverson-cycle",
  "timezone": "America/Los_Angeles",
  "hours": [
    {
      "day": "monday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "tuesday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "wednesday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "thursday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "friday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "saturday",
      "start": "10:00",
      "end": "16:00"
    }
  ],
  "date_exceptions": {
    "2026-12-24": []
  }
}
What comes back
{
  "calendar": {
    "name": "Halverson Cycle & Repair",
    "about": null,
    "timezone": "America/Los_Angeles",
    "hours": [
      {
        "day": "monday",
        "start": "10:00",
        "end": "19:00"
      },
      {
        "day": "tuesday",
        "start": "10:00",
        "end": "19:00"
      }
    ],
    "date_exceptions": {
      "2026-12-24": []
    },
    "address": "halverson-cycle",
    "booking_page": "https://cncto.co/book/halverson-cycle",
    "former_addresses": [
      "halverson-cycle-repair"
    ],
    "subscribe_ics": "https://api.conecto.chat/v1/calendar/2U2QwhtxClnMvn6djl-9r9WN9tUOQ099.ics",
    "connected_calendar": null,
    "show_people": true,
    "people": [],
    "reminder_emails": {
      "on": true,
      "hours_before": [
        24
      ],
      "how": "An email to each attendee who gave one, with the time, the place and links to reschedule or cancel. $0.002 each; paid accounts only."
    },
    "confirmation_calls": {
      "on": false,
      "hours_before": null,
      "how": "An automated call before each meeting whose attendee gave a phone number and agreed: a short menu in the business's language where 1 keeps the meeting, 2 cancels it and 3 sends a link to pick another time. No AI. Needs a rented phone number, and calls only landlines and mobiles in its country (the US and Canada count as one)."
    }
  }
}

Use it when

The business starts taking bookings, wants its own booking address (cncto.co/book/hansen-voss, like a Cal.com username), or its opening hours, holidays, reminders or confirmation calls change; or a person on the team gets a booking page of their own, with their own hours.

What it does

Set the business's calendar, or a person's own (person: like a Cal.com user, with their own booking page, hours, time zone and Google calendar): its name on booking pages, address, time zone, weekly hours, date exceptions (holidays, special hours), and for the business's calendar reminder emails and confirmation calls. Only the fields you pass change. The first call creates the calendar; then add meeting types with calendar_save_meeting_type.

What comes back

The calendar: name, address and booking page (with former addresses, which forward to it), time zone, weekly hours, date exceptions, iCal subscribe link, the connected Google calendar, and the reminder-email and confirmation-call settings. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
personstringSomeone on the account (admin_save_person), by email: sets up their own calendar and booking page instead of the business's. Up to 254 characters.
namestring1 to 120 characters.
aboutstringA line under the name on the booking page. Up to 300 characters.
addressstringThe booking page's address, like a Cal.com username: cncto.co/book/<address>. Lowercase letters, digits and hyphens, e.g. hansen-voss. The old address keeps working and forwards to the new one; no other business can take it. 3 to 50 characters.
timezonestringIANA time zone, e.g. Europe/Berlin. Up to 80 characters.
hoursarray of objectsWeekly hours; several ranges a day are fine. Up to 50 items.
hours[].dayRequiredstringOne of: monday,tuesday,wednesday,thursday,friday,saturday,sunday.
hours[].startRequiredstringMatches ^([01][0-9]|2[0-3]):[0-5][0-9]$|^24:00$.
hours[].endRequiredstringMatches ^([01][0-9]|2[0-3]):[0-5][0-9]$|^24:00$.
date_exceptionsobject{"2026-12-24": []} closes a day; {"2026-12-31": [{"start": "09:00", "end": "13:00"}]} sets its hours.
show_peoplebooleanThe business's booking page links the pages of its people who have meeting types (default true).
reminder_hoursarray of integersEmail each attendee this many hours before (default [24]; up to two, e.g. [24, 1]); [] turns it off. $0.002 per reminder sent, paid accounts only. A booking made later than that gets none. For every meeting of the business, its people's too. Up to 2 items. One of: 1,2,3,6,12,24,48,72.
confirmation_calls_hoursintegerCall attendees this many hours before (2-72); 0 turns the calls off. 0 to 72.
connected_calendar_idstringAfter the owner (or the person) connected Google Calendar: which of their calendars to use (ids from calendar_get_setup). Up to 1,024 characters.

The call

Over MCP, call calendar_setup on https://api.conecto.chat/mcp/calendar. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/calendar_setup \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Halverson Cycle & Repair","address":"halverson-cycle","timezone":"America/Los_Angeles","hours":[{"day":"monday","start":"10:00","end":"19:00"},{"day":"tuesday","start":"10:00","end":"19:00"},{"day":"wednesday","start":"10:00","end":"19:00"},{"day":"thursday","start":"10:00","end":"19:00"},{"day":"friday","start":"10:00","end":"19:00"},{"day":"saturday","start":"10:00","end":"16:00"}],"date_exceptions":{"2026-12-24":[]}}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400The hours or date exceptions are not valid, the time zone is unknown, confirmation_calls_hours is not 0 or 2 to 72, or connected_calendar_id is not one of the owner's calendars.Fix what the message names; calendar_get_setup lists the calendars to choose from.
not_connected409connected_calendar_id was given, but the owner has not connected Google Calendar yet.Send the owner the link from calendar_connect, then pick the calendar.
address_taken409The address is another calendar's, was ever another business's, or is kept for Conecto's own pages (book, api, admin ...).Pick another address, e.g. with the town or the trade added: hansen-voss-hamburg.
calendar_unavailable503Google did not answer when the calendars were listed.Call again in a few minutes; the rest of the setup was saved.
not_found404person is not on the account.Add them with admin_save_person first, then set up their calendar.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md