Set up the calendar
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.
{
"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": []
}
}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.
- For one kind of meeting with its own length, place or hours, use
calendar_save_meeting_type.
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
| Name | Type | What it is |
|---|---|---|
person | string | Someone 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. |
name | string | 1 to 120 characters. |
about | string | A line under the name on the booking page. Up to 300 characters. |
address | string | The 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. |
timezone | string | IANA time zone, e.g. Europe/Berlin. Up to 80 characters. |
hours | array of objects | Weekly hours; several ranges a day are fine. Up to 50 items. |
hours[].dayRequired | string | One of: monday,tuesday,wednesday,thursday,friday,saturday,sunday. |
hours[].startRequired | string | Matches ^([01][0-9]|2[0-3]):[0-5][0-9]$|^24:00$. |
hours[].endRequired | string | Matches ^([01][0-9]|2[0-3]):[0-5][0-9]$|^24:00$. |
date_exceptions | object | {"2026-12-24": []} closes a day; {"2026-12-31": [{"start": "09:00", "end": "13:00"}]} sets its hours. |
show_people | boolean | The business's booking page links the pages of its people who have meeting types (default true). |
reminder_hours | array of integers | Email 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_hours | integer | Call attendees this many hours before (2-72); 0 turns the calls off. 0 to 72. |
connected_calendar_id | string | After 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:
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.
| Code | When | What to do |
|---|---|---|
invalid_input400 | The 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_connected409 | connected_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_taken409 | The 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_unavailable503 | Google did not answer when the calendars were listed. | Call again in a few minutes; the rest of the setup was saved. |
not_found404 | person is not on the account. | Add them with admin_save_person first, then set up their calendar. |
More Calendar tools
All 13 tools- Get the calendar setup
calendar_get_setupThe calendar's settings, booking page, iCal link, connected Google calendar, meeting types, and its people's own calendars.Free* - Connect Google Calendar
calendar_connectA link that opens a page naming the business, where the owner, or a person for their own page, connects Google Calendar in one click.Free* - Save a meeting type
calendar_save_meeting_typeCreates or changes a kind of meeting people can book, on the business's calendar or a person's, taken by one host, a round robin or everyone.$0.001 a call - List meeting types
calendar_list_meeting_typesEvery meeting type people can book, the business's and each person's own, with its hosts and booking page.Free* - Find free times
calendar_find_timesFree start times for a meeting type between two dates, in the time zone you ask for.Free* - Book a meeting
calendar_bookBooks a free time for someone, who gets a confirmation email with an invite and a link to change it.$0.01 a call - List bookings
calendar_list_bookingsBookings between two times (from now on by default), soonest first, with each one's hosts, guests and confirmation call.Free* - Move a meeting
calendar_moveMoves a booking to another free time and sends the attendee an updated invite.$0.01 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md