Skip to content

Commit 9a67780

Browse files
committed
update the conference schema to fit better with current MatrixRTC MSCs
Signed-off-by: MTRNord <MTRNord@users.noreply.github.com>
1 parent 3c32e47 commit 9a67780

1 file changed

Lines changed: 27 additions & 6 deletions

File tree

proposals/4496-matrix-caldav.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,19 +217,36 @@ iCalendar output.
217217

218218
```json
219219
"conference": {
220-
"type": "m.call",
220+
"type": "m.rtc",
221+
"application": "m.call",
221222
"room_id": "!callroom:example.com",
223+
"slot_id": "...",
222224
"via": ["example.com", "matrix.org"],
223225
"label": "Join call"
224226
}
225227
```
226228

229+
`type` is `m.rtc`, marking this a MatrixRTC conference. `application` names the MatrixRTC
230+
application type (`m.call` today; MatrixRTC is expected to define further application types
231+
in future, which slot in here without a schema change).
232+
227233
The `room_id` MUST be the Matrix room ID of an active MatrixRTC-enabled room. The
228234
`via` field is a list of server names through which the room can be joined, following the
229235
same convention as `m.space.child` state events and `matrix.to` links. Clients MUST include
230236
at least one `via` entry when constructing this block; a `conference` block without a `via`
231237
array SHOULD be treated as unresolvable and clients SHOULD disable the join button rather
232-
than silently failing. The call room is managed independently of the calendar event; this
238+
than silently failing.
239+
240+
`slot_id` is OPTIONAL. A single MatrixRTC room can host multiple concurrent sessions
241+
("slots"); when set, `slot_id` is the `state_key` of the `m.rtc.slot` state event
242+
identifying the specific slot this calendar event refers to, as defined in
243+
[MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143). When omitted, the
244+
event refers to the room's default slot. The concrete slot-ID grammar is
245+
application-specific (e.g. `m.call#ROOM` from
246+
[MSC4196](https://github.com/matrix-org/matrix-spec-proposals/pull/4196)); this MSC does not
247+
constrain it beyond deferring to the MatrixRTC definition, which is still in progress.
248+
249+
The call room is managed independently of the calendar event; this
233250
MSC does not specify how it is created. Clients MUST NOT join a call room referenced by a
234251
`conference` block without explicit user confirmation; see the "Call room linkage" security
235252
consideration for how clients should help the user vet the target room before that.
@@ -321,7 +338,7 @@ sole specified transport for invites.
321338
"start": { "utc": "2026-07-01T07:00:00Z", "localtime": "2026-07-01T09:00:00", "timezone": "Europe/Berlin" },
322339
"end": { "utc": "2026-07-01T07:30:00Z", "localtime": "2026-07-01T09:30:00", "timezone": "Europe/Berlin" },
323340
"organizer": "@alice:example.com",
324-
"conference": { "type": "m.call", "room_id": "!callroom:example.com", "label": "Join call" }
341+
"conference": { "type": "m.rtc", "application": "m.call", "room_id": "!callroom:example.com", "via": ["example.com"], "label": "Join call" }
325342
}
326343
}
327344
}
@@ -757,9 +774,13 @@ in their place.
757774
- [MSC3160](https://github.com/matrix-org/matrix-spec-proposals/pull/3160) – Message timezone
758775
markup (addresses timezone display in freeform messages; this MSC's structured event type
759776
supersedes that use case for scheduled events).
760-
- [MSC3401](https://github.com/matrix-org/matrix-spec-proposals/pull/3401) – MatrixRTC
761-
(the spec-level term for Matrix-native video calls; `conference.room_id` points to a
762-
MatrixRTC-enabled room as defined there).
777+
- [MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143) – MatrixRTC
778+
(Matrix-native real-time communication; `conference.room_id` points to a MatrixRTC-enabled
779+
room and `conference.slot_id` to an `m.rtc.slot` defined there). Supersedes the earlier
780+
[MSC3401](https://github.com/matrix-org/matrix-spec-proposals/pull/3401).
781+
- [MSC4196](https://github.com/matrix-org/matrix-spec-proposals/pull/4196) – Voice and video
782+
calling application for MatrixRTC (defines the `m.call` application type and its slot-ID
783+
grammar used in `conference`).
763784
- [MSC3488](https://github.com/matrix-org/matrix-spec-proposals/pull/3488) – Location data
764785
(`m.location`; this MSC's `location.uri` field reuses the same `geo:` URI convention).
765786
- [RFC 5546](https://www.rfc-editor.org/rfc/rfc5546) – iTIP scheduling methods.

0 commit comments

Comments
 (0)