Skip to main content
Create a calendar event

Authorizations

Authorization
string
header
required

A Tightknit admin API key, sent as Authorization: Bearer <key>.

Body

application/json
title
string
required

The event title.

Required string length: 1 - 200
start_date
string<date-time>
required

When the event starts.

end_date
string<date-time>
required

When the event ends. Must be at or after start_date.

slug
string

The URL segment of the event's page on the community site. Generated from the title when omitted. A taken slug gets a numeric suffix.

Maximum string length: 45
Pattern: ^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$
status
enum<string>

Where the event starts its life cycle. Defaults to draft. One of:

  • draft: saved but not live: not announced in Slack and not on the community site.
  • needs_approval: submitted for an admin to approve before it is published.
  • published: live right away, announced in its Slack channels and shown on the community site when publish_to_site is on.
Available options:
draft,
needs_approval,
published
description
string

The event description, as plain text. Read back as a rich text document.

Minimum string length: 1
recap
string

A recap written after the event, as plain text. Read back as a rich text document.

Minimum string length: 1
location
string

Where the event takes place, as free text.

Required string length: 1 - 400

The event's http(s) URL, such as a video-call or registration link.

Maximum string length: 1000

An http(s) link to the event's recording.

Maximum string length: 1000
cover_image_file_id
string

The id of a file uploaded with file_category calendar-event-cover, to use as the cover image.

Pattern: ^file_[a-zA-Z0-9]{12}$
host_profile_ids
string[]

The ids of the members who host the event. They must already be members.

Maximum array length: 10
Pattern: ^prof_[a-zA-Z0-9]{12}$
speaker_profile_ids
string[]

The ids of the members who speak at the event. They must already be members.

Maximum array length: 10
Pattern: ^prof_[a-zA-Z0-9]{12}$
external_speakers
string

Speakers who are not community members, as free text displayed with the event.

Required string length: 1 - 500
show_end_date
boolean

Whether the end date is displayed beside the start date in Slack and on the community site.

is_unlisted
boolean

Whether the event is hidden from event listings. An unlisted event with publish_to_site on is refused.

publish_to_site
boolean

Whether the event shows on the community site once published. Defaults to true, or false when unlisted.

allow_public_guest_list
boolean

Whether the attendee list and registrant count are shown to members who are neither admins nor the event owner.

enable_registration_button
boolean

Whether the event shows a registration button members click to sign up in Tightknit.

Whether the registration button sends members to the event link instead of registering them in Tightknit. Requires enable_registration_button and a link.

triggers_webhooks
boolean

Whether the event sends payloads to the community's subscribed webhooks when it is published, when it ends, and as members register and unregister. Off when not sent.

webhook_custom_metadata
string

Passed through as custom_metadata on the calendar_event.published, calendar_event.user_registered and calendar_event.user_unregistered webhook payloads so the receiver can match it to its own record. Reaches a receiver only while triggers_webhooks is on.

Required string length: 1 - 250
reminders_config
object[]

The reminders sent as Slack direct messages to the event's hosts, speakers and registrants. Defaults to 10 minutes before the start; [] sends none.

Maximum array length: 5
integrations
object

How the event connects to Slack and Luma.

Response

Success

object
enum<string>
required

Always event.

Available options:
event
id
string
required

Unique identifier for the object.

Example:

"cevt_4h2o89z6qlpw"

created_at
string<date-time>
required

When the object was created.

updated_at
string<date-time>
required

When the object was last changed.

title
string
required

The event title.

slug
string
required

The URL segment of the event's page on the community site.

status
enum<string>
required

Where the event is in its life cycle. One of:

  • draft: saved but not live. A published event moved back to draft keeps the Slack announcements it already had.
  • needs_approval: submitted and waiting for an admin to approve it. Visible only to its creator and admins.
  • published: live: announced in its Slack channels and, when publish_to_site is on, shown on the community site.
  • cancelled: called off. Visible only to its creator and admins.
Available options:
draft,
needs_approval,
published,
cancelled
start_date
string<date-time>
required

When the event starts.

end_date
string<date-time>
required

When the event ends.

show_end_date
boolean
required

Whether the end date is displayed beside the start date in Slack and on the community site. A hidden end date still ends the event.

description
object
required

The event description as a rich text document. Rendered on the events endpoints only; null when the event is nested under another object.

description_html
string | null
required

The event description as sanitized HTML. Rendered on the events endpoints only; null when the event is nested under another object.

recap
object
required

A recap written after the event, as a rich text document. Rendered on the events endpoints only; null when the event is nested under another object.

recap_html
string | null
required

The recap as sanitized HTML. Rendered on the events endpoints only; null when the event is nested under another object.

location
string | null
required

Where the event takes place, as free text. Null when not set.

The event's URL, such as a video-call or registration link. Null when not set.

A link to the event's recording. Null when not set.

external_speakers
string | null
required

Speakers who are not community members, as free text displayed with the event. Null when there are none.

webhook_custom_metadata
string | null
required

Passed through as custom_metadata on the calendar_event.published, calendar_event.user_registered and calendar_event.user_unregistered webhook payloads so the receiver can match it to its own record. Null when not set.

cover_image_file_id
string | null
required

The id of the event's cover image file. Null when the event has no cover image.

Example:

"file_2b3c4d5e6f7g"

is_unlisted
boolean
required

Whether the event is hidden from event listings.

publish_to_site
boolean
required

Whether the event shows on the community site. The site only shows published events, so on a draft this records where it goes once published.

allow_public_guest_list
boolean
required

Whether the attendee list and registrant count are shown to members who are neither admins nor the event owner, on the community site and in Slack.

enable_registration_button
boolean
required

Whether the event shows a registration button members click to sign up, with their attendance tracked in Tightknit.

Whether the registration button sends members to the event link instead of registering them in Tightknit, for sign-ups handled elsewhere.

triggers_webhooks
boolean
required

Whether the event sends payloads to the community's subscribed webhooks when it is published, when it ends, and as members register and unregister.

reminders_config
object[]
required

The reminders sent as Slack direct messages to the event's hosts, speakers and registrants. Only a published event sends them.

created_by_id
string | null
required

The id of the member who created the event. Null when no member is recorded as its creator.

Example:

"prof_5Yq7tVz2Hm3n"

integrations
object
required

What the event looks like in the services it is connected to.

cover_image_file
object | null

The cover image file. Present only when cover_image_file is expanded.

created_by
object | null

The member who created the event. Present only when created_by is expanded.

The tags on the event. Present only when tag_links is expanded.