For AI agents: markdown of this page — /docs-content-en/entities/calendar-events/fields.md documentation index — /llms.txt

Event fields

GET /v1/calendar-events/fields

Returns the event field schema: type, readonly flag, available batch operations.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/calendar-events/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/calendar-events/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()

Response fields

The label and description field captions are returned in English. Request headers do not switch the language.

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata.fields Typeobject DescriptionThe event field schema: field name → type, readonly, label, description. Every field of the map is listed in the table below
Fielddata.relations Typeobject DescriptionEvent links to employees: owner, host, and attendee, all three pointing to users. owner and host carry includable: true
Fielddata.batch Typearray DescriptionEvent operations available in POST /v1/batch: create, update, delete
Fielddata.include Typearray DescriptionThe names the include parameter accepts in List events and Get an event: owner, host, attendee

Fields of the `data.fields` map

Field Type RO Description
Fieldid Typenumber ROyes DescriptionEvent ID
FieldparentId Typenumber ROyes DescriptionParent event ID (for recurring events, matches the id of the source event)
Fieldactive Typeboolean ROyes DescriptionWhether the event is active. Returned in the GET /v1/calendar-events list, absent from the GET /v1/calendar-events/:id response
Fielddeleted Typeboolean ROyes DescriptionDeletion flag
Fieldname Typestring RO DescriptionName
Fielddescription Typestring RO DescriptionDescription
Fieldtype Typestring RO DescriptionCalendar type: user, group, company_calendar
FieldownerId Typenumber RO DescriptionCalendar owner ID. Employee lookup: GET /v1/users
Fieldfrom Typedatetime RO DescriptionStart (ISO 8601)
Fieldto Typedatetime RO DescriptionEnd (ISO 8601)
FieldskipTime Typeboolean RO DescriptionAll-day event. When true, the duration is fixed at 24 hours
FielddurationSeconds Typenumber ROyes DescriptionEvent duration in seconds
Fieldimportance Typestring RO DescriptionImportance: high, normal, low
Fieldaccessibility Typestring RO DescriptionBusy status: busy, quest, free, absent
Fieldlocation Typestring RO DescriptionEvent location
Fieldcolor Typestring RO DescriptionEvent color (HEX)
FieldtextColor Typestring RO DescriptionEvent text color (HEX). Returned in the GET /v1/calendar-events list, absent from the GET /v1/calendar-events/:id response
FieldsectionId Typenumber RO DescriptionCalendar section ID
FieldisPrivate Typeboolean RO DescriptionPrivate event
FieldisMeeting Typeboolean RO DescriptionMeeting event with invitations. On POST and PATCH, pass it as true together with attendees; otherwise, the attendees are not stored
Fieldattendees Typenumber[] RO DescriptionArray of employee IDs to invite. List: GET /v1/users. Stored only together with isMeeting: true in the same request; without the flag it is silently ignored. Whether the IDs exist is not checked: any number becomes an attendee U<id>. CRM elements are linked with the crmFields field. Write-only — this field is not returned in event responses; attendees are available in attendeeList, attendeesCodes
FieldattendeesCodes Typestring[] ROyes DescriptionInternal Bitrix24 attendee codes (format U<id>)
FieldattendeeList Typearray ROyes DescriptionExtended attendee list: { id, entryId, status }, where status is Y (accepted), H (host), Q (tentative), N (declined)
Fieldremind Typearray RO DescriptionReminder settings
Fieldrrule Typeobject RO DescriptionRecurrence schedule of a recurring event: frequency (FREQ), interval (INTERVAL), days of the week (BYDAY), series boundary (UNTIL or COUNT). On read, BYDAY comes back as a dictionary object such as {"MO":"MO"}, and UNTIL is a date string in the Bitrix24 account's regional format that Bitrix24 fills in even when COUNT is set
FieldcrmFields Typestring[] RO DescriptionCRM elements the event is linked to: D_<id> deal, C_<id> contact, L_<id> lead, CO_<id> company. Element lists: GET /v1/deals, GET /v1/contacts, GET /v1/leads, GET /v1/companies. An event with no links returns []. Clearing every link with an empty array works on POST and PATCH; in a batch request an empty array is refused: POST /v1/batch — INVALID_PARAMS in data.errors under the call's id, POST /v1/calendar-events/batch — 400 BATCH_ITEM_VALIDATION for the whole batch (the name INVALID_PARAMS and the item index arrive inside message)
FieldcreatedBy Typenumber ROyes DescriptionEvent creator ID. Lookup: GET /v1/users
FielddateCreate Typestring ROyes DescriptionCreation date. A Bitrix24-formatted string that depends on the account's regional settings (for example 08.06.2026 17:29:51 or 06/08/2026 05:29:51 pm). This is not ISO 8601 — do not parse it with a fixed parser
FieldupdatedAt Typestring ROyes DescriptionLast modification date. A string in the same regional format as dateCreate. This is not ISO 8601
FieldmeetingStatus Typestring ROyes DescriptionParticipation status of the calendar owner: Y (accepted), H (host), Q (tentative), N (declined)
FieldmeetingHost Typenumber ROyes DescriptionMeeting organizer ID. Lookup: GET /v1/users. For an event in a group calendar that is not a meeting — type: group and isMeeting: false — the field holds the ID of the workgroup that owns the calendar, not an employee ID. The creator of such an event is in createdBy
FieldeventType Typestring ROyes DescriptionTechnical event type (for system events)
FieldsyncStatus Typestring ROyes DescriptionSynchronization status with external calendars
FieldrecurrenceId Typenumber ROyes DescriptionRecurring event series ID
FieldcollabId Typenumber ROyes DescriptionCollaboration ID (when external users participate)
FieldoccurrenceIndex Typenumber ROyes DescriptionZero-based index of the occurrence within an expanded recurring series. The rows of a series share one id — the id + occurrenceIndex pair uniquely identifies a row in the set
Fieldversion Typenumber ROyes DescriptionMonotonic change counter of the event — increases on every modification and does not depend on regional settings. Compare id + version pairs to find updated events without parsing dates

Unset scalar fields are returned as null, empty arrays as []. In a minimal event, for example, eventType, description, location, color, textColor, rrule, recurrenceId, syncStatus, collabId come back as null, while remind comes back as an empty array [].

The fields dateFrom / dateTo do not exist — the event start and end live in from / to. The original Bitrix24 names DATE_FROM / DATE_TO are accepted in select as aliases and map to the canonical from / to. An unknown name in select on this entity returns 400 UNKNOWN_SELECT_FIELD with the list of accepted names.

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true, "label": "Event ID", "description": "Unique identifier of the calendar event." },
      "name": { "type": "string", "readonly": false, "label": "Name", "description": "Name of the calendar event." },
      "type": { "type": "string", "readonly": false, "label": "Calendar type", "description": "Type of the event's calendar: personal, group, or company-wide calendar." },
      "ownerId": { "type": "number", "readonly": false, "label": "Calendar owner ID", "description": "Identifier of the calendar owner — an employee or a workgroup." },
      "from": { "type": "datetime", "readonly": false, "label": "Event start", "description": "Start date and time of the event in ISO 8601 format with timezone offset." },
      "to": { "type": "datetime", "readonly": false, "label": "Event end", "description": "End date and time of the event in ISO 8601 format with timezone offset." },
      "skipTime": { "type": "boolean", "readonly": false, "label": "All-day event", "description": "Indicates that the event lasts the whole day without a specific time." },
      "durationSeconds": { "type": "number", "readonly": true, "label": "Duration in seconds", "description": "Duration of the event in seconds." },
      "importance": { "type": "string", "readonly": false, "label": "Importance", "description": "Importance level of the event: high, normal, or low." },
      "accessibility": { "type": "string", "readonly": false, "label": "Busy status", "description": "Owner's busy status during the event: busy, tentative, free, or absent." },
      "sectionId": { "type": "number", "readonly": false, "label": "Calendar section ID", "description": "Identifier of the calendar section the event is recorded in." },
      "attendees": { "type": "array", "readonly": false, "label": "Invited attendees", "description": "Array of employee IDs invited to the event — write-only field; attendees are returned in the response via attendeeList and attendeesCodes." },
      "rrule": { "type": "object", "readonly": false, "label": "Recurrence rule", "description": "Recurrence schedule of a recurring event: frequency, interval, days of week, and series end condition." },
      "crmFields": { "type": "array", "readonly": false, "label": "CRM elements", "description": "CRM elements the event is linked to — an array of typed references: `D_<id>` deal, `C_<id>` contact, `L_<id>` lead, `CO_<id>` company. The value must be an array on create and update. An empty array clears every link, and omitting the field keeps the stored links; clearing works on POST and PATCH only — in a batch request an empty array is refused: `POST /v1/batch` answers `INVALID_PARAMS` in `data.errors` under this call's `id`, `POST /v1/calendar-events/batch` answers `400 BATCH_ITEM_VALIDATION` for the whole batch (the name `INVALID_PARAMS` and the item index arrive inside `message`). An event with no links reads back as `[]`. An unknown prefix, or a reference to a record that does not exist, is rejected." },
      "dateCreate": { "type": "string", "readonly": true, "label": "Creation date", "description": "Date and time the event was created, in a string format that depends on the portal's regional settings." },
      "updatedAt": { "type": "string", "readonly": true, "label": "Modification date", "description": "Date and time the event was last modified, in a string format that depends on the portal's regional settings." },
      "occurrenceIndex": { "type": "number", "readonly": true, "label": "Occurrence index", "description": "Zero-based index of this occurrence within an expanded recurring series. Recurring events are returned as one row per occurrence sharing the same id — the pair (id, occurrenceIndex) uniquely identifies a row." },
      "version": { "type": "number", "readonly": true, "label": "Change version", "description": "Monotonic change counter maintained by Bitrix24 — increases on every modification. Locale-independent change marker: diff (id, version) pairs to detect updated events without parsing dates." }
    },
    "relations": {
      "owner": { "type": "one", "entity": "users", "includable": true },
      "host": { "type": "one", "entity": "users", "includable": true },
      "attendee": { "type": "many", "entity": "users", "operations": [] }
    },
    "batch": ["create", "update", "delete"],
    "include": ["owner", "host", "attendee"]
  }
}

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'calendar' scope"
  }
}

Errors

HTTP Code Description
HTTP403 CodeSCOPE_DENIED DescriptionThe API key does not have the calendar scope
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no configured tokens
HTTP429 CodeRATE_LIMITED DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header

For the full list of common API errors, see Errors.

See also