---
title: "POST /api/events"
method: POST
path: "/api/events"
tags: ["Create Event"]
---

# POST /api/events

`POST /api/events`

## Request

- Base URL: `https://addcal.co`
- URL: `https://addcal.co/api/events`
- Auth: none required

## Query parameters

- `with_html` boolean: Include HTML variants for calendar links in the response

## Request body

- object
  - `title` string, required: The title of the event. Must not be greater than 255 characters.
  - `description` string, nullable: A detailed description of the event.
  - `location` string, nullable: The location where the event will take place. Must not be greater than 255 characters.
  - `is_all_day` boolean: Whether this is an all-day event.
  - `is_virtual` boolean, nullable: Whether this is a virtual/online event.
  - `organiser_name` string, nullable: The name of the event organiser. Must not be greater than 255 characters.
  - `organiser_email` string, nullable: The email address of the event organiser. Must be a valid email address. Must not be greater than 191 characters.
  - `recurrence_rule` string, nullable: iCalendar RRULE string for recurring events (e.g. FREQ=DAILY;INTERVAL=1;COUNT=3).
  - `series_title` string, nullable: Title for the recurring event series. Defaults to the event title if not provided. Must not be greater than 255 characters.
  - `has_rsvp` boolean, nullable: Whether this event allows RSVP responses.
  - `date_start` string, required: The start date and time of the event. Must be a valid date.
  - `date_end` string, required: The end date and time of the event. If not provided, defaults to 1 hour after start time. Must be a valid date. Must be a date after or equal to <code>date_start</code>.
  - `timezone` string, nullable: The timezone for the event. Defaults to calendar timezone if not provided. Must be a valid time zone, such as <code>Africa/Accra</code>.
  - `busy_type` 'busy' | 'free', nullable: Whether the event shows as busy or free on calendars. Options: `busy`, or `free`, calendar default when `null`.
  - `reminder_before` integer, nullable: Minutes before the event to send a notification. Common values: 0, 5, 10, 15, 30, 60, 120, 1440 (1 day), etc. Must be at least 0.
  - `short_link` string, nullable: Custom short link for the event. Only available for subscribers. Must match the regex /^[a-zA-Z0-9-]+$/. Must not be greater than 50 characters.
  - `team_uid` string, nullable: The unique identifier of the team to create the event for. Defaults to current team or first available team.
  - `calendar_uid` string, nullable: The unique identifier of an existing calendar to create the event in.
  - `calendar_name` string, nullable: Name of the calendar to create or use. Cannot be used with calendar_uid. Must not be greater than 255 characters.

## Response `200`

- object
  - `data` object
    - `uid` string
    - `public_id` string
    - `calendar_uid` string
    - `short_link` string, nullable
    - `title` string
    - `internal_name` string, nullable
    - `is_draft` boolean
    - `description` string
    - `location` string
    - `is_all_day` boolean
    - `has_rsvp` boolean
    - `has_calendar_invites` boolean
    - `rsvp_limit` string, nullable
    - `is_recurring` boolean
    - `recurrence_rule` string, nullable
    - `recurrence_text` string, nullable
    - `date_start` string
    - `date_end` string
    - `timezone` string
    - `busy_type` string, nullable
    - `reminder_before` string, nullable
    - `date_range_formatted` string
    - `public_url` string
    - `embed_url` string
    - `location_url` string, nullable
    - `image_url` string, nullable
    - `timezone_readable` string
    - `calendar` object
      - `uid` string
      - `public_id` string
      - `short_link` string, nullable
      - `name` string
      - `internal_name` string, nullable
      - `description` string
      - `timezone` string
      - `week_begins` integer
      - `public_url` string
      - `created_at` string
      - `updated_at` string
    - `created_at` string
    - `updated_at` string
  - `links` object
    - `event_page` string
    - `auto` string
    - `google` string
    - `apple` string
    - `outlook` string
    - `outlook_web` string
    - `yahoo` string
    - `office365` string
    - `ics` string
  - `html` object
    - `single-button` string
    - `icon-buttons-single-row` string
    - `icons` string
    - `dot-sep` string
    - `space-sep` string

## Other responses

- `409`: When the team's event limit has been exceeded

---

[API](https://skmtc.dev/addcal/apis/addcal-api-documentation.md) · [All operations](https://skmtc.dev/addcal/apis/addcal-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/addcal/apis/addcal-api-documentation/revisions/addd0607e492?raw)
