Create event

POST/manage/events

Create an event in DRAFT state. The creator is automatically registered as ADMIN staff. No additional permission is required beyond being signed in. Organizers (EventOrganizer) are specified via `organizers`.

AuthLogin required

Request body

titlestringrequired

Event title (required); no length limit.

descriptionstring

Description in Markdown; no length limit.

languagesobject

Localized title / description.

eventTypestring

One of ONSITE / ONLINE / HYBRID (required on create).

timezonestring

IANA timezone (e.g. Asia/Tokyo).

schedulesobject[]

Array of per-day schedules; each has date (YYYY-MM-DD) plus startTime / endTime (HH:mm), with an optional doorTime. Times are interpreted in the event's timezone.

locationobject

Venue location.

onlineUrl / onlineDescriptionstring

Online URL (must be a valid URL) and description (up to 200 characters).

enabledTickets / enabledSideEventsboolean

Feature toggles for ticket sales and side events. These are the only feature toggles an event manager can change.

slugstring

3–200 characters; lowercase alphanumerics, hyphens and underscores only (^[a-z0-9-_]+$). Must be unique.

thumbnailUrl / mainImageUrlstring

Image URLs; must be valid URLs. Use a URL returned by the upload endpoints.

customStyle / customNavigationobject

Custom style / navigation.

organizerContactobject

Organizer contact.

tagsstring[]

Array of tag names.

organizersobject[]

Organizers (EventOrganizer); specify communityId or userId.

Object structures

schedules

One entry per event day. Date and time are specified separately, and times are interpreted in the event's timezone.

datestringrequired

Event date in YYYY-MM-DD format.

doorTimestring

Doors-open time in HH:mm format.

startTimestringrequired

Start time in HH:mm format.

endTimestringrequired

End time in HH:mm format.

[
  { "date": "2026-09-01", "doorTime": "09:30", "startTime": "10:00", "endTime": "18:00" }
]

location

Venue information. Pass a single object, or an array of objects for multiple venues.

name / titlestring

Venue name / display label.

displayTextstring

Display text.

placeIdstring

Google Places place ID.

zipCode / country / countryCode / state / city / address / buildingstring

Address components.

geoobject

Coordinates (lat / lng)

websiteUrl / telstring

Venue website and phone number.

descriptionstring

Additional notes about the venue.

primaryboolean

Whether this is the primary venue when several are listed.

{
  "name": "4S Hall",
  "displayText": "東京都渋谷区...",
  "countryCode": "JP",
  "geo": { "lat": 35.6595, "lng": 139.7005 },
  "primary": true
}

languages

Keyed by language code; each entry overrides the title / description shown for that language. Languages you omit fall back to the default fields.

<lang>object

Language code (ja, en, …)

<lang>.titlestring

Title shown in that language.

<lang>.descriptionstring

Description shown in that language.

{
  "ja": { "title": "オープニング基調講演", "description": "..." },
  "en": { "title": "Opening Keynote", "description": "..." }
}

contact / organizerContact

Contact details. Pass an array of objects (up to 10). A single object is also accepted for backwards compatibility.

labelstring

Display label (e.g. "Support")

emailstring

Email address.

urlstring

URL, e.g. a contact form.

x / instagram / facebook / youtubestring

Official social accounts.

languagesobject

Localized labels ({ [lang]: { label } })

[
  {
    "label": "お問い合わせ",
    "email": "contact@example.com",
    "languages": { "en": { "label": "Contact" } }
  }
]

Notes

enabledMeetings, enabledChat, enabledReferralTree (invitations) and enabledConferenceMode can only be turned on through the platform administration (admin) API. Values for them sent to this endpoint are ignored, and they are always false on create. The only feature toggles an event manager can change are enabledTickets and enabledSideEvents. Read the current values from GET /manage/events/:eventId.

Request
curl https://api.4s.link/manage/events \
-X POST \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"title": "4S Tech Conference 2026",
"eventType": "HYBRID",
"timezone": "Asia/Tokyo",
"schedules": [
{ "date": "2026-09-01", "startTime": "10:00", "endTime": "18:00" }
]
}'
Example response
{
"id": "e1f2a3b4-...",
"slug": "tech-conf-2026",
"title": "4S Tech Conference 2026",
"description": "...",
"state": "DRAFT",
"eventType": "HYBRID",
"timezone": "Asia/Tokyo",
"schedules": [
{ "date": "2026-09-01", "doorTime": "09:30", "startTime": "10:00", "endTime": "18:00" }
],
"location": { "displayText": "Tokyo, Japan" },
"thumbnailUrl": "https://.../thumb.png",
"organizers": [
{ "id": "eo1a2b3-...", "communityId": "c1a2b3c4-...", "userId": null }
],
"tags": []
}