<!-- source: https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/b7c818b1-9132-46a7-bfaf-78fc6747791a/doc/956902083536265217 -->

**注册二开事件**

创建日程执行二开的事件名称固定是createAgenda。

在二开中，通过模块名称+事件名称进行事件的注册，例如以下代码，返回了创建后的日程数据。

其中args是标准代码传给二开事件的参数，当前创建日程口子，只返回了一个参数：即刚创建的日程数据。

可以依据返回的日程数据进行相应操作。

```java
package com.weaver.seconddev.register;

import cn.hutool.core.date.DateUtil;
import com.weaver.loom.api.annotation.RegHook;
import com.weaver.loom.context.register.AbstractRegHookEvent;
import com.weaver.loom.demo.com.weaver.loom.demo.contants.LoomDemoRegContants;
import lombok.extern.slf4j.Slf4j;

import java.util.Arrays;

@Slf4j
@RegHook(module = "calendar", event = "createAgenda")
public class AgendaHookEventOfCreate extends AbstractRegHookEvent {

    @Override
    public Object handle(Object[] args) throws Exception {
        log.info("执行事件注册机制 => {}, {}, {}", DateUtil.now(),eventModule, eventName);
        StringBuilder stringBuilder = new StringBuilder();
        for (Object arg : args) {//当前只返回创建的日程
            stringBuilder.append(JSONObject.toJSONString(arg)).append("\n");
        }
        return stringBuilder.toString();
    }
}
```

**包路径要求**

需要注意的是，二开代码所在的包路径有要求，需要在com.weaver.seconddev下，建议按照下面的格式进行

com.weaver.seconddev.模块名.xxxx.xxx

比如日程模块，可以声明包名为com.weaver.seconddev.calendar.hook
