diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/BookMeetingRoomEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/BookMeetingRoomEvent.cs
new file mode 100644
index 00000000..dc4ef716
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/BookMeetingRoomEvent.cs
@@ -0,0 +1,25 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Events
+{
+ ///
+ /// 表示 EVENT.book_meeting_room 事件的数据。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95333
+ ///
+ public class BookMeetingRoomEvent : WechatWorkEvent, WechatWorkEvent.Serialization.IJsonSerializable, WechatWorkEvent.Serialization.IXmlSerializable
+ {
+ ///
+ /// 获取或设置会议室 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("MeetingRoomId")]
+ [System.Text.Json.Serialization.JsonPropertyName("MeetingRoomId")]
+ [System.Xml.Serialization.XmlElement("MeetingRoomId")]
+ public int MeetingRoomId { get; set; }
+
+ ///
+ /// 获取或设置会议 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("MeetingId")]
+ [System.Text.Json.Serialization.JsonPropertyName("MeetingId")]
+ [System.Xml.Serialization.XmlElement("MeetingId")]
+ public string MeetingId { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/CancelMeetingRoomEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/CancelMeetingRoomEvent.cs
new file mode 100644
index 00000000..88a9f1f8
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/OA/CancelMeetingRoomEvent.cs
@@ -0,0 +1,25 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Events
+{
+ ///
+ /// 表示 EVENT.cancel_meeting_room 事件的数据。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95333
+ ///
+ public class CancelMeetingRoomEvent : WechatWorkEvent, WechatWorkEvent.Serialization.IJsonSerializable, WechatWorkEvent.Serialization.IXmlSerializable
+ {
+ ///
+ /// 获取或设置会议室 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("MeetingRoomId")]
+ [System.Text.Json.Serialization.JsonPropertyName("MeetingRoomId")]
+ [System.Xml.Serialization.XmlElement("MeetingRoomId")]
+ public int MeetingRoomId { get; set; }
+
+ ///
+ /// 获取或设置会议 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("MeetingId")]
+ [System.Text.Json.Serialization.JsonPropertyName("MeetingId")]
+ [System.Xml.Serialization.XmlElement("MeetingId")]
+ public string MeetingId { get; set; } = default!;
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/BookMeetingRoomEvent.xml b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/BookMeetingRoomEvent.xml
new file mode 100644
index 00000000..cf5c9e32
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/BookMeetingRoomEvent.xml
@@ -0,0 +1,9 @@
+
+
+
+ 1348831860
+
+
+ 1
+
+
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/CancelMeetingRoomEvent.xml b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/CancelMeetingRoomEvent.xml
new file mode 100644
index 00000000..cf5c9e32
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/OA/CancelMeetingRoomEvent.xml
@@ -0,0 +1,9 @@
+
+
+
+ 1348831860
+
+
+ 1
+
+
\ No newline at end of file