抖音开放平台Logo
开发者文档
“/”唤起搜索
控制台

button组件写入系统日历
收藏
我的收藏

基础库 2.93.0 开始支持本能力。支持添加用户日历,需要将 button 组件 open-type 的值设置为 addCalendarEvent。
button 组件常规属性请参考button 按钮
提供写入系统日历的能力。该能力需申请权限使用,满足申请条件后,开发者登录控制台,在小程序应用中筛选“能力-互动能力-系统能力”,同时申请添加日历/查询日历/删除日历能力,能力使用规范详情查看日历能力开通及使用规范;申请条件如下:

准入条件

能力的准入条件如下:
1.账号主体需为企业主体
2.小程序已上线。
3.信用分不低于 90 分
4.小程序主营类目符合类目条件
一级类目
二级类目
三级类目
电商
商家工具
任务玩法
电商
商家工具
权益营销
电商
商家工具
创意互动
电商
商家工具
商品展示
电商
商家工具
推荐导购
电商
商家工具
C2B购后定制
电商
商家工具
特殊交易
电商
商家工具
线下服务/线下活动
电商
商家工具
售后/其他品牌服务
餐饮
餐饮
餐饮门店
餐饮
餐饮
美食团购平台
餐饮
餐饮
外卖平台
酒店旅游
酒店旅游
酒店住宿
酒店旅游
酒店旅游
景区服务
酒店旅游
酒店旅游
旅行社
酒店旅游
酒店旅游
酒旅平台
生活服务
生活服务
丽人
生活服务
生活服务
宠物医院/兽医
生活服务
生活服务
摄影/扩印
生活服务
生活服务
婚庆服务
生活服务
生活服务
搬家服务
生活服务
生活服务
洗浴保健
生活服务
生活服务
家政服务
生活服务
生活服务
营业性演出票务
生活服务
生活服务
生活缴费
生活服务
生活服务
休闲玩乐平台
生活服务
生活服务
传统娱乐
生活服务
生活服务
酒吧
生活服务
生活服务
电影院
生活服务
生活服务
网吧网咖
生活服务
生活服务
宠物服务
生活服务
生活服务
高空清洗
生活服务
生活服务
鲜花/园艺
生活服务
生活服务
月嫂/育儿嫂
生活服务
生活服务
电路检测维修
生活服务
生活服务
防水补漏/装修修缮
生活服务
生活服务
燃烧器具安装/维修

属性说明

属性名
类型
默认值
必填
说明
最低支持版本
open-type
string
用于调用开放能力,此场景下需要设置为 "addCalendarEvent"
2.93.0
data-calendar-options
CalendarOptions
添加用户系统日历参数
2.93.0
bindaddcalendarevent
EventHandle
监听添加日历的回调,open-type=addCalendarEvent时有效
2.93.0

CalendarOptions

为 object 类型,属性如下:
属性名
类型
默认值
必填
说明
最低支持版本
title
string
日历事件标题
2.93.0
description
string
""
事件说明
2.93.0
startTime
number
开始时间的 unix 时间戳(1970年1月1日开始所经过的时间),需要距离添加当日180天内
2.93.0
endTime
number
与 startTime 相同
结束时间的 unix 时间戳(1970年1月1日开始所经过的时间),距离开始时间30天内
2.93.0
location
string
""
事件位置
2.93.0
alarm
bool
FALSE
是否设置提醒
2.93.0
alarmOffset
number
0
提醒提前量(单位:分钟)
2.93.0

bindaddcalendarevent

事件对象的 detail
回调成功
Object 类型,属性如下:
参数
参数类型
说明
errMsg
string
跳转成功信息,恒为'addCalendarEvent:ok'
errNo
number
恒为0
回调失败
Object 类型, 属性如下:
参数
参数类型
说明
errMsg
string
跳转失败信息,以'addCalendarEvent:fail'开头
errNo
number
错误代码
错误说明
errNo
errMsg
说明
10200
addCalendarEvent:fail auth deny
用户未授权小程序权限
10200
addCalendarEvent:fail system auth deny
用户未授权系统权限
21101
addCalendarEvent:fail create calendar account fail
创建日历账户失败
21102
addCalendarEvent:fail second pop-up window authorization failed
用户拒绝二次确认弹窗授权
21104
addCalendarEvent:fail add event fail
添加日历失败

扫码体验

代码示例

<button open-type="addCalendarEvent" bindaddcalendarevent="eventHandler" data-calendar-options="{{calendarOptions}}" > 写日系统日历 </button>
Page({ data: { calendarOptions: { title: "事件标题", startTime: new Date("2023-08-20T12:00:00").getTime() / 1000, endTime: new Date("2022-08-21T12:00:00").getTime() / 1000, description: "事件描述", location: "事件地址", alarm: true, alarmOffset: 5, }, }, eventHandler(e) { if (e.detail.errNo) { console.log("添加日历事件失败", e.detail); } else { console.log("添加日历事件成功"); } }, });

Bug & Tip

    Tip:startTime 与endTime 的有效精度均为分钟
    Tip:任何非必传的不合理参数(比如 endTime 比 startTime 要早、unix 时间戳传入浮点数、alarmOffset 为负数或浮点数等)都会被转化为默认值
    Tip: 可添加日历的时间依赖于手机系统日历支持的时间范围,不同机型标准不同,与当前时间相距较远的日期可能会添加失败。