Events

Create event

Note about time slots: You'll only be able to create events that match an available time slot for the underlying scheduling link. You can use the Get available time slots endpoint to query for time slots.

Note about conferencing: For some conferencing providers (like Zoom), the meeting information is not guaranteed to appear in the response body. If our initial attempt to create the meeting room fails, we will retry and attach the information to event later.

post/v1/links/{link_id}/events

Request

Path parameters

link_idstring required

Request body

display_namestring required

The scheduler's full name.

emailstring email required

The scheduler's email address.

end_atstring date-time required
metadataobject
phone_numberstring nullable

The scheduler's phone number, formatted like +15555555555 (optional unless "Always gather phone number" is enabled in the scheduling link settings).

start_atstring date-time required
time_zonestring required

The scheduler's local Olson time zone.

Example request

{
  "display_name": "Jane Smith",
  "email": "jane@example.com",
  "end_at": "2024-01-20T14:30:00Z",
  "fields": [
    {
      "id": "field_123",
      "label": "Company",
      "type": "short_text",
      "value": "Example Corp"
    },
    {
      "id": "field_456",
      "label": "Company size",
      "options": [
        {
          "id": "opt_abc",
          "value": "1-10"
        }
      ],
      "type": "select"
    }
  ],
  "metadata": {
    "project_type": "Web Application",
    "source": "website"
  },
  "phone_number": "+15555555555",
  "start_at": "2024-01-20T14:00:00Z",
  "time_zone": "America/New_York"
}

Response

Success

canceled_atstring date-time nullable
rescheduled_atstring date-time nullable
locationstring nullable

The location on the calendar event: the event's location, or else the conferencing join URL or instructions.

buffer_beforeinteger required

Buffer before the event, in minutes

additional_infostring nullable
durationinteger required

Duration in minutes

uuidstring uuid required
reschedule_reasonstring nullable
summarystring required

Event title

original_end_atstring date-time nullable

Original end time (if rescheduled)

descriptionstring

The scheduling link's description at the time of booking, as HTML. Empty when there is no description.

idstring required
cancel_reasonstring nullable
is_group_sessionboolean nullable required

Whether this is a group session. null on some older events.

original_start_atstring date-time nullable

Original start time (if rescheduled)

start_atstring date-time required
urlstring uri required

Public URL for the event

maximum_group_sizeinteger nullable required

Maximum number of attendees for group session. null for events booked from a poll.

end_atstring date-time required
state'confirmed' | 'canceled' | 'awaiting_reschedule' | 'awaiting_checkout' | 'checkout_expired' | 'awaiting_approval' | 'declined' | 'tentative' required
buffer_afterinteger required

Buffer after the event, in minutes

metadataobject required

The custom metadata sent when the event was created.

created_atstring date-time required

Example response

{
  "canceled_at": null,
  "rescheduled_at": null,
  "location_settings": [
    {
      "instance_id": "1234567890",
      "type": "zoom"
    }
  ],
  "description_settings": {
    "include_attendees": true,
    "include_fields": false,
    "include_link_name": true
  },
  "location": "Zoom meeting",
  "buffer_before": 15,
  "additional_info": "Please prepare project overview",
  "duration": 30,
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "reschedule_reason": null,
  "conferencing": {
    "instructions": "Click the link to join",
    "join_url": "https://zoom.us/j/123456789",
    "meeting_id": "123456789",
    "type": "zoom"
  },
  "link": {
    "description": "<p>Discussing project requirements</p>",
    "id": "link_01J5KC2G3MHPCECSQ6KM6FMDPC",
    "name": "30 Minute Meeting",
    "private_name": null,
    "slug": "30min"
  },
  "poll": null,
  "summary": "30 Minute Meeting with John Doe",
  "original_end_at": null,
  "description": "<p>Discussing project requirements</p>",
  "id": "event_01KKGY70MFPCECSQ6KM6FMDPC3",
  "cancel_reason": null,
  "organizer": {
    "display_name": "John Doe",
    "email": "john@example.com",
    "fields": [],
    "first_name": "John",
    "id": "attendee_01J5KCPP3XKRFGT8V2WD9Y8H6X",
    "is_organizer": true,
    "last_name": "Doe",
    "marketing_opt_in": false,
    "phone_number": null,
    "response_status": "accepted",
    "time_zone": "America/New_York"
  },
  "is_group_session": false,
  "original_start_at": null,
  "start_at": "2024-01-20T14:00:00Z",
  "url": "https://savvycal.com/events/event_01KKGY70MFPCECSQ6KM6FMDPC3",
  "payment": {
    "amount_total": 1000,
    "state": "paid",
    "url": "https://dashboard.stripe.com/acct_XYZ/payments/xxxxxxxxx"
  },
  "maximum_group_size": 1,
  "end_at": "2024-01-20T14:30:00Z",
  "state": "confirmed",
  "attendees": [
    {
      "display_name": "John Doe",
      "email": "john@example.com",
      "fields": [],
      "first_name": "John",
      "id": "attendee_01J5KCPP3XKRFGT8V2WD9Y8H6X",
      "is_organizer": true,
      "last_name": "Doe",
      "marketing_opt_in": false,
      "phone_number": null,
      "response_status": "accepted",
      "time_zone": "America/New_York"
    },
    {
      "display_name": "Jane Smith",
      "email": "jane@example.com",
      "fields": [],
      "first_name": "Jane",
      "id": "attendee_01J5KCRR5ZKRFGT8V2WD9Y8H6X",
      "is_organizer": false,
      "last_name": "Smith",
      "marketing_opt_in": true,
      "phone_number": "+1234567890",
      "response_status": "accepted",
      "time_zone": "America/New_York"
    }
  ],
  "scheduler": {
    "display_name": "Jane Smith",
    "email": "jane@example.com",
    "fields": [],
    "first_name": "Jane",
    "id": "attendee_01J5KCRR5ZKRFGT8V2WD9Y8H6X",
    "is_organizer": false,
    "last_name": "Smith",
    "marketing_opt_in": true,
    "phone_number": "+1234567890",
    "response_status": "accepted",
    "time_zone": "America/New_York"
  },
  "scope": {
    "id": "scope_01J5KC4R7NHQFGT8V2WD9Y8H6X",
    "name": "Sales Team",
    "slug": "sales"
  },
  "buffer_after": 0,
  "metadata": {},
  "created_at": "2024-01-15T10:30:00Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.