Skip to main content
Call this API to create an event.

API call description

  • Each event attendee operation supports up to 500 users, and an event supports up to 5,000 attendees in total.
  • To add or remove event attendees, we recommend using the Add event attendee and Remove event attendee APIs.

Request

Basic information

FieldValue
HTTP URLhttps://api.dingtalk.io/v1.0/calendar/users/{userId}/calendars/{calendarId}/events
HTTP MethodPOST
Supported app typesappType-Internal app appType-Third-party enterprise app appType-Third-party personal app
Required permissionspermission-Calendar.Event.Write-Write permission for events in the Calendar app

Request header

NameTypeRequiredDescription
x-client-tokenStringNoIdempotency check. - The same x-client-token represents the same request. - Expires after 1 day.
x-acs-dingtalk-access-tokenStringYesThe access credential for calling this API. Obtain it as follows: - For an internal app, call the Obtain the access token of an internal app API. - For a third-party enterprise app, call the Obtain the access token of an authorized enterprise (Marketplace app) API. - For a third-party personal app, call the Obtain the user token API.

Path parameter

NameTypeRequiredDescription
userIdStringYesThe unionId of the event organizer. - For internal apps and third-party enterprise apps, call the Query user details API to obtain the unionid value. - For third-party personal apps, call the Obtain the profile of a user in Contacts API to obtain the unionId value.
calendarIdStringYesThe ID of the calendar to which the event belongs. Always set to primary, which represents the user’s main calendar.

Request body

NameTypeRequiredDescription
summaryStringYesThe event title. Maximum 2,048 characters.
descriptionStringNoThe event description. Maximum 5,000 characters.
startObjectYesThe event start time.
dateStringNoThe event start date in yyyy-MM-dd format. - Required for all-day events. - Must be left blank for non-all-day events.
dateTimeStringNoThe event start time in ISO-8601 date-time format. - Must be left blank for all-day events. - Required for non-all-day events.
timeZoneStringNoThe time zone of the event start time, in TZ database name format. - Must be left blank for all-day events. - Required for non-all-day events.
endObjectNoThe event end time.
dateStringNoThe event end date in yyyy-MM-dd format. - For all-day events: - Required. - Set the end date to T+1. For example, for an all-day event on 2024-06-01 with a start date of 2024-06-01, set the end date to 2024-06-02. - Must be left blank for non-all-day events.
dateTimeStringNoThe event end time in ISO-8601 date-time format. - Must be left blank for all-day events. - Required for non-all-day events.
timeZoneStringNoThe time zone of the event end time. Must be the same as the time zone of the start time, in TZ database name format. - Must be left blank for all-day events. - Required for non-all-day events.
isAllDayBooleanNoWhether the event is all-day. - true: Yes. - false: No.
recurrenceObjectNoThe event recurrence rule.
patternObjectNoThe recurrence pattern.
typeStringNoThe recurrence pattern type. - daily: Repeats every interval days. - weekly: Repeats on the daysOfWeek of every interval weeks. - absoluteMonthly: Repeats on day dayOfMonth of every interval months. - relativeMonthly: Repeats on daysOfWeek of the index week of every interval months. - absoluteYearly: Repeats every interval years.
dayOfMonthIntegerNoWhen type is set to absoluteMonthly, specifies the day of the month.
daysOfWeekStringNoLowercase English words to specify the day of the week. Separate multiple values with commas.
indexStringNoWhen type is set to relativeMonthly, specifies which week of the month. - first: First week. - second: Second week. - third: Third week. - fourth: Fourth week. - last: Last week.
intervalIntegerNoThe recurrence interval. The unit varies depending on the type. For example: - When type is daily, indicates an interval of N days. - When type is absoluteYearly, indicates an interval of N years.
firstDayOfWeekStringNoThe first day of the week. Valid values: sunday, monday, tuesday, wednesday, thursday, friday, saturday. Default value: “sunday”.
rangeObjectNoThe recurrence range.
typeStringNoThe recurrence range type. - noEnd: Never ends. - endDate: Ends on the specified date. - numbered: Ends after the specified number of occurrences.
endDateStringNoThe recurrence end date. endDate and numberOfOccurrences cannot be set at the same time.
numberOfOccurrencesIntegerNoThe number of recurrences. endDate and numberOfOccurrences cannot be set at the same time.
attendeesArrayNoThe list of event attendees. Supports up to 500 attendees.
idStringNoThe user’s unionId. - For internal apps and third-party enterprise apps, call the Query user details API to obtain the unionid value. - For third-party personal apps, call the Obtain the profile of a user in Contacts API to obtain the unionId value.
isOptionalBooleanNoWhether the attendee is optional. - true: Yes. - false: No.
locationObjectNoThe event location.
displayNameStringNoThe name of the event location.
remindersArrayNoEvent reminders. Multiple reminders can be added. - If not specified, the default reminder time is 15 minutes before the event starts. - Passing an empty array means no reminders will be created.
methodStringNoThe reminder method. - dingtalk: In-DingTalk reminder.
minutesIntegerNoSends a reminder N minutes before the event starts.
onlineMeetingInfoObjectNoCreates an online meeting along with the event.
typeStringNoThe online meeting type. - dingtalk: DingTalk Video Meeting.
extraMap<String, String>NoExtension capability switches in JSON format. Optional. The attributes are defined as follows. - noPushNotification: Whether to send DingTalk push notifications to associated users when creating the event. - true: Do not send. - false: Send. - noChatNotification: Whether to send a direct message card to attendees when creating the event. - true: Do not send. - false: Send.
uiConfigsArrayNoUI configuration that controls the display of components on the event details page.
uiNameStringNoThe component name. Valid values (continuously updated): - updateEventButton: Edit event button. - deleteEventButton: Delete event button. - transferEventButton: Transfer event button. - attendee: Attendees section. - comment: Event comments section.
uiStatusStringNoThe component status. Valid values: - hide: Hidden. - disable: Disabled (supported in the new details page; not supported in older versions, where the component will be hidden). Button components: cannot be clicked. Section components: cannot be interacted with. For example, if the comments section is set to disable, comments cannot be written, but existing comments remain visible. - enable: Available (default state).
richTextDescriptionObjectNoThe rich text description.
textStringNoThe rich text description content.

Request example

HTTP
POST /v1.0/calendar/users/iiiP35sJadba8aBSgjrwPRKgiEiF/calendars/primary/events HTTP/1.1
Host:api.dingtalk.io
x-client-token:******
x-acs-dingtalk-access-token:cnNTbW1YbU9sL2p6aFJZdEgvdlQrQT01
Content-Type:application/json

{
  "summary" : "test event",
  "description" : "something about this event",
  "start" : {
    "date" : "2021-09-20",
    "dateTime" : "2021-09-20T10:15:30+08:00",
    "timeZone" : "Asia/Shanghai"
  },
  "end" : {
    "date" : "2020-09-21",
    "dateTime" : "2021-09-20T10:15:30+08:00",
    "timeZone" : "Asia/Shanghai"
  },
  "isAllDay" : false,
  "recurrence" : {
    "pattern" : {
      "type" : "daily",
      "dayOfMonth" : 1,
      "daysOfWeek" : "monday",
      "index" : "last",
      "interval" : 1,
      "firstDayOfWeek" : "monday"
    },
    "range" : {
      "type" : "endDate",
      "endDate" : "2021-12-31T10:15:30+08:00",
      "numberOfOccurrences" : 5
    }
  },
  "attendees" : [ {
    "id" : "iiiP35sJxxx",
    "isOptional" : false
  } ],
  "location" : {
    "displayName" : "dingtalk"
  },
  "reminders" : [ {
    "method" : "dingtalk",
    "minutes" : 15
  } ],
  "onlineMeetingInfo" : {
    "type" : "dingtalk"
  },
 "extra" : {
    {"noChatNotification": "true", "noPushNotification": "true" }
  },
  "uiConfigs" : [ {
    "uiName" : "updateEventButton",
    "uiStatus" : "hide"
  } ],
  "richTextDescription" : {
    "text" : "<div class=\\\"__aliyun_email_body_block\\\"><div  style=\\\"clear:both;\\\"><span  style=\\\"text-decoration:line-through;\\\">Sample strikethrough text</span></div><div  style=\\\"clear:both;\\\"><span  style=\\\"color:#ff0000;\\\">Sample red text</span></div><div  style=\\\"clear:both;\\\"><span  style=\\\"text-decoration:underline;\\\">Sample underlined text</span></div><div  style=\\\"clear:both;\\\"><span  style=\\\"font-weight:700;\\\">Sample bold text</span></div><div  style=\\\"clear:both;\\\"><span  style=\\\"font-weight:700;font-style:italic;\\\">Sample bold italic text</span></div></div>"
  }
}
Java
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * Initialize the account Client with a Token
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dingtalkcalendar_1_0.Client createClient() throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
        config.protocol = "https";
        config.regionId = "central";
        return new com.aliyun.dingtalkcalendar_1_0.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.dingtalkcalendar_1_0.Client client = Sample.createClient();
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventHeaders createEventHeaders = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventHeaders();
        createEventHeaders.xAcsDingtalkAccessToken = "<your access token>";
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRichTextDescription richTextDescription = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRichTextDescription()
                .setText("<div class=\"__aliyun_email_body_block\"><div  style=\"clear:both;\"><span  style=\"text-decoration:line-through;\">Sample strikethrough text</span></div><div  style=\"clear:both;\"><span  style=\"color:#ff0000;\">Sample red text</span></div><div  style=\"clear:both;\"><span  style=\"text-decoration:underline;\">Sample underlined text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;\">Sample bold text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;font-style:italic;\">Sample bold italic text</span></div></div>");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestUiConfigs uiConfigs0 = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestUiConfigs()
                .setUiName("updateEventButton")
                .setUiStatus("hide");
       java.util.Map<String, String> extra = TeaConverter.buildMap(
                new TeaPair("noChatNotification", "true"),
                new TeaPair("noPushNotification","true")
        );
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestOnlineMeetingInfo onlineMeetingInfo = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestOnlineMeetingInfo()
                .setType("dingtalk");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestReminders reminders0 = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestReminders()
                .setMethod("dingtalk")
                .setMinutes(15);
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestLocation location = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestLocation()
                .setDisplayName("dingtalk");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestAttendees attendees0 = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestAttendees()
                .setId("iiiP35sJxxx")
                .setIsOptional(false);
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrenceRange recurrenceRange = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrenceRange()
                .setType("endDate")
                .setEndDate("2021-12-31T10:15:30+08:00")
                .setNumberOfOccurrences(5);
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrencePattern recurrencePattern = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrencePattern()
                .setType("daily")
                .setDayOfMonth(1)
                .setDaysOfWeek("monday")
                .setIndex("last")
                .setInterval(1)
                .setFirstDayOfWeek("monday");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrence recurrence = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestRecurrence()
                .setPattern(recurrencePattern)
                .setRange(recurrenceRange);
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestEnd end = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestEnd()
                .setDate("2020-09-21")
                .setDateTime("2021-09-20T10:15:30+08:00")
                .setTimeZone("Asia/Shanghai");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestStart start = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest.CreateEventRequestStart()
                .setDate("2021-09-20")
                .setDateTime("2021-09-20T10:15:30+08:00")
                .setTimeZone("Asia/Shanghai");
        com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest createEventRequest = new com.aliyun.dingtalkcalendar_1_0.models.CreateEventRequest()
                .setSummary("test event")
                .setDescription("something about this event")
                .setStart(start)
                .setEnd(end)
                .setIsAllDay(false)
                .setRecurrence(recurrence)
                .setAttendees(java.util.Arrays.asList(
                    attendees0
                ))
                .setLocation(location)
                .setReminders(java.util.Arrays.asList(
                    reminders0
                ))
                .setOnlineMeetingInfo(onlineMeetingInfo)
                .setExtra(extra)
                .setUiConfigs(java.util.Arrays.asList(
                    uiConfigs0
                ))
                .setRichTextDescription(richTextDescription);
        try {
            client.createEventWithOptions("iiiP35sJadba8aBSgjrwPRKgiEiF", "primary", createEventRequest, createEventHeaders, new com.aliyun.teautil.models.RuntimeOptions());
        } catch (TeaException err) {
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err contains the code and message attributes, which help locate the issue
            }

        } catch (Exception _err) {
            TeaException err = new TeaException(_err.getMessage(), _err);
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err contains the code and message attributes, which help locate the issue
            }

        }        
    }
}
Python
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys

from typing import List

from alibabacloud_dingtalk.calendar_1_0.client import Client as dingtalkcalendar_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.calendar_1_0 import models as dingtalkcalendar__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient

class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> dingtalkcalendar_1_0Client:
        """
        Initialize the account Client with a Token
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config()
        config.protocol = 'https'
        config.region_id = 'central'
        return dingtalkcalendar_1_0Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        create_event_headers = dingtalkcalendar__1__0_models.CreateEventHeaders()
        create_event_headers.x_acs_dingtalk_access_token = '<your access token>'
        rich_text_description = dingtalkcalendar__1__0_models.CreateEventRequestRichTextDescription(
            text='<div class="__aliyun_email_body_block"><div  style="clear:both;"><span  style="text-decoration:line-through;">Sample strikethrough text</span></div><div  style="clear:both;"><span  style="color:#ff0000;">Sample red text</span></div><div  style="clear:both;"><span  style="text-decoration:underline;">Sample underlined text</span></div><div  style="clear:both;"><span  style="font-weight:700;">Sample bold text</span></div><div  style="clear:both;"><span  style="font-weight:700;font-style:italic;">Sample bold italic text</span></div></div>'
        )
        ui_configs_0 = dingtalkcalendar__1__0_models.CreateEventRequestUiConfigs(
            ui_name='updateEventButton',
            ui_status='hide'
        )
        extra = {
            'noChatNotification': 'true', 
            'noPushNotification': 'true'
        }
        online_meeting_info = dingtalkcalendar__1__0_models.CreateEventRequestOnlineMeetingInfo(
            type='dingtalk'
        )
        reminders_0 = dingtalkcalendar__1__0_models.CreateEventRequestReminders(
            method='dingtalk',
            minutes=15
        )
        location = dingtalkcalendar__1__0_models.CreateEventRequestLocation(
            display_name='dingtalk'
        )
        attendees_0 = dingtalkcalendar__1__0_models.CreateEventRequestAttendees(
            id='iiiP35sJxxx',
            is_optional=False
        )
        recurrence_range = dingtalkcalendar__1__0_models.CreateEventRequestRecurrenceRange(
            type='endDate',
            end_date='2021-12-31T10:15:30+08:00',
            number_of_occurrences=5
        )
        recurrence_pattern = dingtalkcalendar__1__0_models.CreateEventRequestRecurrencePattern(
            type='daily',
            day_of_month=1,
            days_of_week='monday',
            index='last',
            interval=1,
            first_day_of_week='monday'
        )
        recurrence = dingtalkcalendar__1__0_models.CreateEventRequestRecurrence(
            pattern=recurrence_pattern,
            range=recurrence_range
        )
        end = dingtalkcalendar__1__0_models.CreateEventRequestEnd(
            date='2020-09-21',
            date_time='2021-09-20T10:15:30+08:00',
            time_zone='Asia/Shanghai'
        )
        start = dingtalkcalendar__1__0_models.CreateEventRequestStart(
            date='2021-09-20',
            date_time='2021-09-20T10:15:30+08:00',
            time_zone='Asia/Shanghai'
        )
        create_event_request = dingtalkcalendar__1__0_models.CreateEventRequest(
            summary='test event',
            description='something about this event',
            start=start,
            end=end,
            is_all_day=False,
            recurrence=recurrence,
            attendees=[
                attendees_0
            ],
            location=location,
            reminders=[
                reminders_0
            ],
            online_meeting_info=online_meeting_info,
            extra=extra,
            ui_configs=[
                ui_configs_0
            ],
            rich_text_description=rich_text_description
        )
        try:
            client.create_event_with_options('iiiP35sJadba8aBSgjrwPRKgiEiF', 'primary', create_event_request, create_event_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err contains the code and message attributes, which help locate the issue
                pass

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        create_event_headers = dingtalkcalendar__1__0_models.CreateEventHeaders()
        create_event_headers.x_acs_dingtalk_access_token = '<your access token>'
        rich_text_description = dingtalkcalendar__1__0_models.CreateEventRequestRichTextDescription(
            text='<div class="__aliyun_email_body_block"><div  style="clear:both;"><span  style="text-decoration:line-through;">Sample strikethrough text</span></div><div  style="clear:both;"><span  style="color:#ff0000;">Sample red text</span></div><div  style="clear:both;"><span  style="text-decoration:underline;">Sample underlined text</span></div><div  style="clear:both;"><span  style="font-weight:700;">Sample bold text</span></div><div  style="clear:both;"><span  style="font-weight:700;font-style:italic;">Sample bold italic text</span></div></div>'
        )
        ui_configs_0 = dingtalkcalendar__1__0_models.CreateEventRequestUiConfigs(
            ui_name='updateEventButton',
            ui_status='hide'
        )
        extra = {
            'key': 'noPushNotification'
        }
        online_meeting_info = dingtalkcalendar__1__0_models.CreateEventRequestOnlineMeetingInfo(
            type='dingtalk'
        )
        reminders_0 = dingtalkcalendar__1__0_models.CreateEventRequestReminders(
            method='dingtalk',
            minutes=15
        )
        location = dingtalkcalendar__1__0_models.CreateEventRequestLocation(
            display_name='dingtalk'
        )
        attendees_0 = dingtalkcalendar__1__0_models.CreateEventRequestAttendees(
            id='iiiP35sJxxx',
            is_optional=False
        )
        recurrence_range = dingtalkcalendar__1__0_models.CreateEventRequestRecurrenceRange(
            type='endDate',
            end_date='2021-12-31T10:15:30+08:00',
            number_of_occurrences=5
        )
        recurrence_pattern = dingtalkcalendar__1__0_models.CreateEventRequestRecurrencePattern(
            type='daily',
            day_of_month=1,
            days_of_week='monday',
            index='last',
            interval=1,
            first_day_of_week='monday'
        )
        recurrence = dingtalkcalendar__1__0_models.CreateEventRequestRecurrence(
            pattern=recurrence_pattern,
            range=recurrence_range
        )
        end = dingtalkcalendar__1__0_models.CreateEventRequestEnd(
            date='2020-09-21',
            date_time='2021-09-20T10:15:30+08:00',
            time_zone='Asia/Shanghai'
        )
        start = dingtalkcalendar__1__0_models.CreateEventRequestStart(
            date='2021-09-20',
            date_time='2021-09-20T10:15:30+08:00',
            time_zone='Asia/Shanghai'
        )
        create_event_request = dingtalkcalendar__1__0_models.CreateEventRequest(
            summary='test event',
            description='something about this event',
            start=start,
            end=end,
            is_all_day=False,
            recurrence=recurrence,
            attendees=[
                attendees_0
            ],
            location=location,
            reminders=[
                reminders_0
            ],
            online_meeting_info=online_meeting_info,
            extra=extra,
            ui_configs=[
                ui_configs_0
            ],
            rich_text_description=rich_text_description
        )
        try:
            await client.create_event_with_options_async('iiiP35sJadba8aBSgjrwPRKgiEiF', 'primary', create_event_request, create_event_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err contains the code and message attributes, which help locate the issue
                pass

if __name__ == '__main__':
    Sample.main(sys.argv[1:])
PHP
<?php

// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;

use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Dingtalk;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventHeaders;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\richTextDescription;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\uiConfigs;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\onlineMeetingInfo;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\reminders;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\location;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\attendees;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\recurrence\range;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\recurrence\pattern;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\recurrence;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\end;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest\start;
use AlibabaCloud\SDK\Dingtalk\Vcalendar_1_0\Models\CreateEventRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

class Sample {

    /**
     * Initialize the account Client with a Token
     * @return Dingtalk Client
     */
    public static function createClient(){
        $config = new Config([]);
        $config->protocol = "https";
        $config->regionId = "central";
        return new Dingtalk($config);
    }

    /**
     * @param string[] $args
     * @return void
     */
    public static function main($args){
        $client = self::createClient();
        $createEventHeaders = new CreateEventHeaders([]);
        $createEventHeaders->xAcsDingtalkAccessToken = "<your access token>";
        $richTextDescription = new richTextDescription([
            "text" => "<div class=\"__aliyun_email_body_block\"><div  style=\"clear:both;\"><span  style=\"text-decoration:line-through;\">Sample strikethrough text</span></div><div  style=\"clear:both;\"><span  style=\"color:#ff0000;\">Sample red text</span></div><div  style=\"clear:both;\"><span  style=\"text-decoration:underline;\">Sample underlined text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;\">Sample bold text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;font-style:italic;\">Sample bold italic text</span></div></div>"
        ]);
        $uiConfigs0 = new uiConfigs([
            "uiName" => "updateEventButton",
            "uiStatus" => "hide"
        ]);
        $extra = [
            "noChatNotification" => "true”,
            "noPushNotification" => "true"
        ];
        $onlineMeetingInfo = new onlineMeetingInfo([
            "type" => "dingtalk"
        ]);
        $reminders0 = new reminders([
            "method" => "dingtalk",
            "minutes" => 15
        ]);
        $location = new location([
            "displayName" => "dingtalk"
        ]);
        $attendees0 = new attendees([
            "id" => "iiiP35sJxxx",
            "isOptional" => false
        ]);
        $recurrenceRange = new range([
            "type" => "endDate",
            "endDate" => "2021-12-31T10:15:30+08:00",
            "numberOfOccurrences" => 5
        ]);
        $recurrencePattern = new pattern([
            "type" => "daily",
            "dayOfMonth" => 1,
            "daysOfWeek" => "monday",
            "index" => "last",
            "interval" => 1,
            "firstDayOfWeek" => "monday"
        ]);
        $recurrence = new recurrence([
            "pattern" => $recurrencePattern,
            "range" => $recurrenceRange
        ]);
        $end = new end([
            "date" => "2020-09-21",
            "dateTime" => "2021-09-20T10:15:30+08:00",
            "timeZone" => "Asia/Shanghai"
        ]);
        $start = new start([
            "date" => "2021-09-20",
            "dateTime" => "2021-09-20T10:15:30+08:00",
            "timeZone" => "Asia/Shanghai"
        ]);
        $createEventRequest = new CreateEventRequest([
            "summary" => "test event",
            "description" => "something about this event",
            "start" => $start,
            "end" => $end,
            "isAllDay" => false,
            "recurrence" => $recurrence,
            "attendees" => [
                $attendees0
            ],
            "location" => $location,
            "reminders" => [
                $reminders0
            ],
            "onlineMeetingInfo" => $onlineMeetingInfo,
            "extra" => $extra,
            "uiConfigs" => [
                $uiConfigs0
            ],
            "richTextDescription" => $richTextDescription
        ]);
        try {
            $client->createEventWithOptions("iiiP35sJadba8aBSgjrwPRKgiEiF", "primary", $createEventRequest, $createEventHeaders, new RuntimeOptions([]));
        }
        catch (Exception $err) {
            if (!($err instanceof TeaError)) {
                $err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
            }
            if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
                // err contains the code and message attributes, which help locate the issue
            }
        }
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once $path;
}
Sample::main(array_slice($argv, 1));
Go
// This file is auto-generated, don't edit it. Thanks.
package main

import (
  "os"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  dingtalkcalendar_1_0  "github.com/alibabacloud-go/dingtalk/calendar_1_0"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  "github.com/alibabacloud-go/tea/tea"
)

/**
 * Initialize the account Client with a Token
 * @return Client
 * @throws Exception
 */
func CreateClient () (_result *dingtalkcalendar_1_0.Client, _err error) {
  config := &openapi.Config{}
  config.Protocol = tea.String("https")
  config.RegionId = tea.String("central")
  _result = &dingtalkcalendar_1_0.Client{}
  _result, _err = dingtalkcalendar_1_0.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  createEventHeaders := &dingtalkcalendar_1_0.CreateEventHeaders{}
  createEventHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
  richTextDescription := &dingtalkcalendar_1_0.CreateEventRequestRichTextDescription{
    Text: tea.String("<div class=\"__aliyun_email_body_block\"><div  style=\"clear:both;\"><span  style=\"text-decoration:line-through;\">Sample strikethrough text</span></div><div  style=\"clear:both;\"><span  style=\"color:#ff0000;\">Sample red text</span></div><div  style=\"clear:both;\"><span  style=\"text-decoration:underline;\">Sample underlined text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;\">Sample bold text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;font-style:italic;\">Sample bold italic text</span></div></div>"),
  }
  uiConfigs0 := &dingtalkcalendar_1_0.CreateEventRequestUiConfigs{
    UiName: tea.String("updateEventButton"),
    UiStatus: tea.String("hide"),
  }
  extra := map[string]*string{
    "noChatNotification": tea.String("true"),
    "noPushNotification": tea.String("true"),
  }
  onlineMeetingInfo := &dingtalkcalendar_1_0.CreateEventRequestOnlineMeetingInfo{
    Type: tea.String("dingtalk"),
  }
  reminders0 := &dingtalkcalendar_1_0.CreateEventRequestReminders{
    Method: tea.String("dingtalk"),
    Minutes: tea.Int32(15),
  }
  location := &dingtalkcalendar_1_0.CreateEventRequestLocation{
    DisplayName: tea.String("dingtalk"),
  }
  attendees0 := &dingtalkcalendar_1_0.CreateEventRequestAttendees{
    Id: tea.String("iiiP35sJxxx"),
    IsOptional: tea.Bool(false),
  }
  recurrenceRange := &dingtalkcalendar_1_0.CreateEventRequestRecurrenceRange{
    Type: tea.String("endDate"),
    EndDate: tea.String("2021-12-31T10:15:30+08:00"),
    NumberOfOccurrences: tea.Int32(5),
  }
  recurrencePattern := &dingtalkcalendar_1_0.CreateEventRequestRecurrencePattern{
    Type: tea.String("daily"),
    DayOfMonth: tea.Int32(1),
    DaysOfWeek: tea.String("monday"),
    Index: tea.String("last"),
    Interval: tea.Int32(1),
    FirstDayOfWeek: tea.String("monday"),
  }
  recurrence := &dingtalkcalendar_1_0.CreateEventRequestRecurrence{
    Pattern: recurrencePattern,
    Range: recurrenceRange,
  }
  end := &dingtalkcalendar_1_0.CreateEventRequestEnd{
    Date: tea.String("2020-09-21"),
    DateTime: tea.String("2021-09-20T10:15:30+08:00"),
    TimeZone: tea.String("Asia/Shanghai"),
  }
  start := &dingtalkcalendar_1_0.CreateEventRequestStart{
    Date: tea.String("2021-09-20"),
    DateTime: tea.String("2021-09-20T10:15:30+08:00"),
    TimeZone: tea.String("Asia/Shanghai"),
  }
  createEventRequest := &dingtalkcalendar_1_0.CreateEventRequest{
    Summary: tea.String("test event"),
    Description: tea.String("something about this event"),
    Start: start,
    End: end,
    IsAllDay: tea.Bool(false),
    Recurrence: recurrence,
    Attendees: []*dingtalkcalendar_1_0.CreateEventRequestAttendees{attendees0},
    Location: location,
    Reminders: []*dingtalkcalendar_1_0.CreateEventRequestReminders{reminders0},
    OnlineMeetingInfo: onlineMeetingInfo,
    Extra: extra,
    UiConfigs: []*dingtalkcalendar_1_0.CreateEventRequestUiConfigs{uiConfigs0},
    RichTextDescription: richTextDescription,
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    _, _err = client.CreateEventWithOptions(tea.String("iiiP35sJadba8aBSgjrwPRKgiEiF"), tea.String("primary"), createEventRequest, createEventHeaders, &util.RuntimeOptions{})
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var err = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      err = _t
    } else {
      err.Message = tea.String(tryErr.Error())
    }
    if !tea.BoolValue(util.Empty(err.Code)) && !tea.BoolValue(util.Empty(err.Message)) {
      // err contains the code and message attributes, which help locate the issue
    }

  }
  return _err
}

func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
Node.js
// This file is auto-generated, don't edit it
import Util, * as $Util from '@alicloud/tea-util';
import dingtalkcalendar_1_0, * as $dingtalkcalendar_1_0 from '@alicloud/dingtalk/calendar_1_0';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import * as $tea from '@alicloud/tea-typescript';

export default class Client {

  /**
   * Initialize the account Client with a Token
   * @return Client
   * @throws Exception
   */
  static createClient(): dingtalkcalendar_1_0 {
    let config = new $OpenApi.Config({ });
    config.protocol = "https";
    config.regionId = "central";
    return new dingtalkcalendar_1_0(config);
  }

  static async main(args: string[]): Promise<void> {
    let client = Client.createClient();
    let createEventHeaders = new $dingtalkcalendar_1_0.CreateEventHeaders({ });
    createEventHeaders.xAcsDingtalkAccessToken = "<your access token>";
    let richTextDescription = new $dingtalkcalendar_1_0.CreateEventRequestRichTextDescription({
      text: "<div class=\"__aliyun_email_body_block\"><div  style=\"clear:both;\"><span  style=\"text-decoration:line-through;\">Sample strikethrough text</span></div><div  style=\"clear:both;\"><span  style=\"color:#ff0000;\">Sample red text</span></div><div  style=\"clear:both;\"><span  style=\"text-decoration:underline;\">Sample underlined text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;\">Sample bold text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;font-style:italic;\">Sample bold italic text</span></div></div>",
    });
    let uiConfigs0 = new $dingtalkcalendar_1_0.CreateEventRequestUiConfigs({
      uiName: "updateEventButton",
      uiStatus: "hide",
    });
    let extra = {
      noChatNotification: "true",
      noPushNotification: "true",
    };
    let onlineMeetingInfo = new $dingtalkcalendar_1_0.CreateEventRequestOnlineMeetingInfo({
      type: "dingtalk",
    });
    let reminders0 = new $dingtalkcalendar_1_0.CreateEventRequestReminders({
      method: "dingtalk",
      minutes: 15,
    });
    let location = new $dingtalkcalendar_1_0.CreateEventRequestLocation({
      displayName: "dingtalk",
    });
    let attendees0 = new $dingtalkcalendar_1_0.CreateEventRequestAttendees({
      id: "iiiP35sJxxx",
      isOptional: false,
    });
    let recurrenceRange = new $dingtalkcalendar_1_0.CreateEventRequestRecurrenceRange({
      type: "endDate",
      endDate: "2021-12-31T10:15:30+08:00",
      numberOfOccurrences: 5,
    });
    let recurrencePattern = new $dingtalkcalendar_1_0.CreateEventRequestRecurrencePattern({
      type: "daily",
      dayOfMonth: 1,
      daysOfWeek: "monday",
      index: "last",
      interval: 1,
      firstDayOfWeek: "monday",
    });
    let recurrence = new $dingtalkcalendar_1_0.CreateEventRequestRecurrence({
      pattern: recurrencePattern,
      range: recurrenceRange,
    });
    let end = new $dingtalkcalendar_1_0.CreateEventRequestEnd({
      date: "2020-09-21",
      dateTime: "2021-09-20T10:15:30+08:00",
      timeZone: "Asia/Shanghai",
    });
    let start = new $dingtalkcalendar_1_0.CreateEventRequestStart({
      date: "2021-09-20",
      dateTime: "2021-09-20T10:15:30+08:00",
      timeZone: "Asia/Shanghai",
    });
    let createEventRequest = new $dingtalkcalendar_1_0.CreateEventRequest({
      summary: "test event",
      description: "something about this event",
      start: start,
      end: end,
      isAllDay: false,
      recurrence: recurrence,
      attendees: [
        attendees0
      ],
      location: location,
      reminders: [
        reminders0
      ],
      onlineMeetingInfo: onlineMeetingInfo,
      extra: extra,
      uiConfigs: [
        uiConfigs0
      ],
      richTextDescription: richTextDescription,
    });
    try {
      await client.createEventWithOptions("iiiP35sJadba8aBSgjrwPRKgiEiF", "primary", createEventRequest, createEventHeaders, new $Util.RuntimeOptions({ }));
    } catch (err) {
      if (!Util.empty(err.code) && !Util.empty(err.message)) {
        // err contains the code and message attributes, which help locate the issue
      }

    }    
  }

}

Client.main(process.argv.slice(2));
C#
// This file is auto-generated, don't edit it. Thanks.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

using Tea;
using Tea.Utils;

namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        /**
         * Initialize the account Client with a Token
         * @return Client
         * @throws Exception
         */
        public static AlibabaCloud.SDK.Dingtalkcalendar_1_0.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
            config.Protocol = "https";
            config.RegionId = "central";
            return new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Client(config);
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Client client = CreateClient();
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventHeaders createEventHeaders = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventHeaders();
            createEventHeaders.XAcsDingtalkAccessToken = "<your access token>";
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRichTextDescription richTextDescription = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRichTextDescription
            {
                Text = "<div class=\"__aliyun_email_body_block\"><div  style=\"clear:both;\"><span  style=\"text-decoration:line-through;\">Sample strikethrough text</span></div><div  style=\"clear:both;\"><span  style=\"color:#ff0000;\">Sample red text</span></div><div  style=\"clear:both;\"><span  style=\"text-decoration:underline;\">Sample underlined text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;\">Sample bold text</span></div><div  style=\"clear:both;\"><span  style=\"font-weight:700;font-style:italic;\">Sample bold italic text</span></div></div>",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestUiConfigs uiConfigs0 = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestUiConfigs
            {
                UiName = "updateEventButton",
                UiStatus = "hide",
            };
            Dictionary<string, string> extra = new Dictionary<string, string>
            {
                {"noChatNotification", “true”},
                {"noPushNotification", "true"},
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestOnlineMeetingInfo onlineMeetingInfo = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestOnlineMeetingInfo
            {
                Type = "dingtalk",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestReminders reminders0 = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestReminders
            {
                Method = "dingtalk",
                Minutes = 15,
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestLocation location = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestLocation
            {
                DisplayName = "dingtalk",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestAttendees attendees0 = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestAttendees
            {
                Id = "iiiP35sJxxx",
                IsOptional = false,
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence.CreateEventRequestRecurrenceRange recurrenceRange = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence.CreateEventRequestRecurrenceRange
            {
                Type = "endDate",
                EndDate = "2021-12-31T10:15:30+08:00",
                NumberOfOccurrences = 5,
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence.CreateEventRequestRecurrencePattern recurrencePattern = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence.CreateEventRequestRecurrencePattern
            {
                Type = "daily",
                DayOfMonth = 1,
                DaysOfWeek = "monday",
                Index = "last",
                Interval = 1,
                FirstDayOfWeek = "monday",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence recurrence = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestRecurrence
            {
                Pattern = recurrencePattern,
                Range = recurrenceRange,
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestEnd end = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestEnd
            {
                Date = "2020-09-21",
                DateTime = "2021-09-20T10:15:30+08:00",
                TimeZone = "Asia/Shanghai",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestStart start = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestStart
            {
                Date = "2021-09-20",
                DateTime = "2021-09-20T10:15:30+08:00",
                TimeZone = "Asia/Shanghai",
            };
            AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest createEventRequest = new AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest
            {
                Summary = "test event",
                Description = "something about this event",
                Start = start,
                End = end,
                IsAllDay = false,
                Recurrence = recurrence,
                Attendees = new List<AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestAttendees>
                {
                    attendees0
                },
                Location = location,
                Reminders = new List<AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestReminders>
                {
                    reminders0
                },
                OnlineMeetingInfo = onlineMeetingInfo,
                Extra = extra,
                UiConfigs = new List<AlibabaCloud.SDK.Dingtalkcalendar_1_0.Models.CreateEventRequest.CreateEventRequestUiConfigs>
                {
                    uiConfigs0
                },
                RichTextDescription = richTextDescription,
            };
            try
            {
                client.CreateEventWithOptions("iiiP35sJadba8aBSgjrwPRKgiEiF", "primary", createEventRequest, createEventHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            }
            catch (TeaException err)
            {
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err contains the code and message attributes, which help locate the issue
                }
            }
            catch (Exception _err)
            {
                TeaException err = new TeaException(new Dictionary<string, object>
                {
                    { "message", _err.Message }
                });
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err contains the code and message attributes, which help locate the issue
                }
            }
        }

    }
}

Response

Response body

NameTypeDescription
idStringThe event ID.
summaryStringThe event title.
descriptionStringThe event description.
startObjectThe event start time.
dateStringThe event start date in yyyy-MM-dd format. - Required for all-day events. - Must be left blank for non-all-day events.
dateTimeStringThe event start time in ISO-8601 date-time format. - Must be left blank for all-day events. - Required for non-all-day events.
timeZoneStringThe time zone of the event start time, in TZ database name format. - Must be left blank for all-day events. - Required for non-all-day events.
endObjectThe event end time.
dateStringThe event end date in yyyy-MM-dd format. - Required for all-day events. - Must be left blank for non-all-day events.
dateTimeStringThe event end time in ISO-8601 date-time format. - Must be left blank for all-day events. - Required for non-all-day events.
timeZoneStringThe time zone of the event end time. Must be the same as the time zone of the start time, in TZ database name format. - Must be left blank for all-day events. - Required for non-all-day events.
isAllDayBooleanWhether the event is all-day. - true: Yes. - false: No.
recurrenceObjectThe event recurrence rule.
patternObjectThe recurrence pattern.
typeStringThe recurrence pattern type. - daily: Repeats every interval days. - weekly: Repeats on the daysOfWeek of every interval weeks. - absoluteMonthly: Repeats on day dayOfMonth of every interval months. - relativeMonthly: Repeats on daysOfWeek of the index week of every interval months. - absoluteYearly: Repeats every interval years.
dayOfMonthIntegerWhen type is set to absoluteMonthly, specifies the day of the month.
daysOfWeekStringLowercase English words to specify the day of the week. Separate multiple values with commas.
indexStringWhen type is set to relativeMonthly, specifies which week of the month. - first: First week. - second: Second week. - third: Third week. - fourth: Fourth week. - last: Last week.
intervalIntegerThe recurrence interval. The unit varies depending on the type. For example: - When type is daily, indicates an interval of N days. - When type is absoluteYearly, indicates an interval of N years.
firstDayOfWeekStringThe first day of the week. Valid values: sunday, monday, tuesday, wednesday, thursday, friday, saturday. Default value: “sunday”.
rangeObjectThe recurrence range.
typeStringThe recurrence range type. - noEnd: Never ends. - endDate: Ends on the specified date. - numbered: Ends after the specified number of occurrences.
endDateStringThe recurrence end date.
numberOfOccurrencesIntegerThe number of recurrences.
attendeesArrayThe list of attendees.
idStringThe user’s unionId.
displayNameStringThe user’s name.
responseStatusStringThe attendee’s response status. - needsAction: No action taken (default state). - accepted: Accepted. - declined: Declined. - tentative: Tentatively accepted.
selfBooleanWhether this is the current operating user. - true: Yes. - false: No.
isOptionalBooleanWhether the attendee is optional. - true: Yes. - false: No.
organizerObjectThe event organizer.
idStringThe user’s unionId.
displayNameStringThe user’s name.
responseStatusStringThe response status.
selfBooleanWhether this is the current user. - true: Yes. - false: No.
locationObjectThe event location.
displayNameStringThe location name.
remindersArrayThe event reminders.
methodStringThe reminder method. - dingtalk: In-app reminder. - sms: SMS reminder. - phone: Phone reminder.
minutesStringHow many minutes before the event to send the reminder.
createTimeStringThe created time.
updateTimeStringThe update time.
onlineMeetingInfoObjectThe online meeting information.
typeStringThe online meeting type. - dingtalk: DingTalk Video Meeting.
conferenceIdStringThe meeting ID.
urlStringThe URL for joining the meeting.
extraInfoMapOther extension information.
uiConfigsArrayUI configuration that controls the display of components on the event details page.
uiNameStringThe component name. Valid values (continuously updated): - updateEventButton: Edit event button. - deleteEventButton: Delete event button. - transferEventButton: Transfer event button. - attendee: Attendees section. - comment: Event comments section.
uiStatusStringThe component status. Valid values: - hide: Hidden. - disable: Disabled (supported in the new details page; not supported in older versions, where the component will be hidden). Button components: cannot be clicked. Section components: cannot be interacted with. For example, if the comments section is set to disable, comments cannot be written, but existing comments remain visible. - enable: Available (default state).
richTextDescriptionObjectThe rich text description.
textStringThe rich text description content.

Response body example

HTTP/1.1 200 OK
Content-Type:application/json

{
  "id" : "iiiP35sJadba8aBSgjrwPRKgiEiF",
  "summary" : "some event",
  "description" : "something about this event",
  "start" : {
    "date" : "2020-01-01",
    "dateTime" : "2020-01-01T10:15:30+08:00",
    "timeZone" : "Asia/Shanghai"
  },
  "end" : {
    "date" : "2020-01-01",
    "dateTime" : "2020-01-01T10:15:30+08:00",
    "timeZone" : "Asia/Shanghai"
  },
  "isAllDay" : false,
  "recurrence" : {
    "pattern" : {
      "type" : "daily",
      "dayOfMonth" : 14,
      "daysOfWeek" : "sunday",
      "index" : "first",
      "interval" : 1
    },
    "range" : {
      "type" : "noEnd",
      "endDate" : "2020-01-01T10:15:30+08:00",
      "numberOfOccurrences" : 5
    }
  },
  "attendees" : [ {
    "id" : "iiiP35sJadba8aBSgjrwPRKgiEiF",
    "displayName" : "jack",
    "responseStatus" : "accepted",
    "self" : false,
    "isOptional" : false
  } ],
  "organizer" : {
    "id" : "iiiP35sJadba8aBSgjrwPRKgiEiF",
    "displayName" : "tony",
    "responseStatus" : "accepted",
    "self" : false
  },
  "location" : {
    "displayName" : "room 1-2-3"
  },
  "reminders" : [ {
    "method" : "dingtalk",
    "minutes" : "15"
  } ],
  "createTime" : "2020-01-01T10:15:30+08:00",
  "updateTime" : "2020-01-01T10:15:30+08:00",
  "onlineMeetingInfo" : {
    "type" : "dingtalk",
    "conferenceId" : "123",
    "url" : "http://meeting"
  },
  "uiConfigs" : [ {
    "uiName" : "updateEventButton",
    "uiStatus" : "hide"
  } ]
}

Error codes

If an error occurs when calling this API, refer to the Global error codes document to find a solution based on the error message.
HttpCodeError codeError messageDescription
400invalidParameterforwardErrorMessageInvalid parameter.
400invalidParameterCalendarId cannot be blankThe calendar ID cannot be empty.
400invalidParameterEvent must be provided.The event cannot be empty.
400invalidParameterEvent summary cannot be blankThe event title cannot be empty.
400invalidParameterEvent start time not set.The event start time is not set.
400invalidParameterEvent end time not set.The event end time is not set.
400invalidParameterRecurrence range numberOfOccurrences must between [1, 99]numberOfOccurrences must be within [1, 99].
400invalidParameterRecurrence interval must between [1, 365]interval must be within [1, 365].
400permissionDenypermissionDenyThe user is not within the authorized scope.
400idempotencyProcessingIdempotency processingThe idempotent request is being processed.
400flowLimitcurrent user can not create events exceed 100 per dayEach user is limited to creating 100 events per day.
404itemNotFoundforwardErrorMessageThe specified event cannot be found.