0
# Conference Solutions
1
2
GCSA provides comprehensive video conferencing integration through the ConferenceSolution, ConferenceSolutionCreateRequest, and EntryPoint classes. These classes support Google Meet, Hangouts, and third-party conference solutions with flexible configuration options.
3
4
## Package Information
5
6
```python
7
from gcsa.conference import (
8
ConferenceSolution,
9
ConferenceSolutionCreateRequest,
10
EntryPoint,
11
SolutionType
12
)
13
from gcsa.event import Event
14
```
15
16
## ConferenceSolution Class
17
18
### Conference Solution Creation
19
20
```python { .api }
21
class ConferenceSolution:
22
def __init__(
23
self,
24
entry_points = None,
25
solution_type = None,
26
name = None,
27
icon_uri = None,
28
conference_id = None,
29
signature = None,
30
notes = None
31
):
32
"""
33
Create a conference solution for existing conferences.
34
35
:param entry_points: List of EntryPoint objects for joining the conference
36
:param solution_type: Type of conference solution (SolutionType constants)
37
:param name: Display name for the conference solution
38
:param icon_uri: URI for the conference solution icon
39
:param conference_id: Unique identifier for the conference
40
:param signature: Conference signature for validation
41
:param notes: Additional notes about the conference
42
"""
43
```
44
45
## ConferenceSolutionCreateRequest Class
46
47
### Conference Creation Request
48
49
```python { .api }
50
class ConferenceSolutionCreateRequest:
51
def __init__(
52
self,
53
solution_type: str,
54
request_id = None,
55
_status = None,
56
conference_id = None,
57
signature = None,
58
notes = None
59
):
60
"""
61
Create a request to generate a new conference solution.
62
63
:param solution_type: Type of conference to create (SolutionType constants)
64
:param request_id: Unique identifier for the creation request
65
:param _status: Status of the creation request (read-only)
66
:param conference_id: Generated conference ID (read-only after creation)
67
:param signature: Conference signature (read-only after creation)
68
:param notes: Additional notes about the conference
69
"""
70
```
71
72
## EntryPoint Class
73
74
### Entry Point Creation
75
76
```python { .api }
77
class EntryPoint:
78
def __init__(
79
self,
80
entry_point_type: str,
81
uri = None,
82
label = None,
83
pin = None,
84
access_code = None,
85
meeting_code = None,
86
passcode = None,
87
password = None
88
):
89
"""
90
Create a conference entry point (video, phone, SIP, etc.).
91
92
:param entry_point_type: Type of entry point (VIDEO, PHONE, SIP, MORE)
93
:param uri: URI for joining (video URL, phone number, SIP address)
94
:param label: Display label for the entry point
95
:param pin: PIN code for access
96
:param access_code: Access code for joining
97
:param meeting_code: Meeting code for joining
98
:param passcode: Passcode for authentication
99
:param password: Password for authentication
100
"""
101
```
102
103
### Entry Point Constants
104
105
```python { .api }
106
class EntryPoint:
107
VIDEO = "video" # Video conference link
108
PHONE = "phone" # Phone dial-in number
109
SIP = "sip" # SIP address
110
MORE = "more" # Additional entry method
111
112
ENTRY_POINT_TYPES = [VIDEO, PHONE, SIP, MORE]
113
```
114
115
## Solution Type Constants
116
117
```python { .api }
118
class SolutionType:
119
HANGOUT = "hangout" # Google Hangouts (legacy)
120
NAMED_HANGOUT = "namedHangout" # Named Google Hangout
121
HANGOUTS_MEET = "hangoutsMeet" # Google Meet
122
ADD_ON = "addOn" # Third-party add-on solution
123
```
124
125
## Basic Usage Examples
126
127
### Creating Events with Google Meet
128
129
```python
130
from gcsa.google_calendar import GoogleCalendar
131
from gcsa.event import Event
132
from gcsa.conference import ConferenceSolutionCreateRequest, SolutionType
133
from datetime import datetime
134
135
gc = GoogleCalendar()
136
137
# Event with Google Meet auto-generation
138
meeting = Event(
139
summary="Team Video Call",
140
start=datetime(2024, 2, 15, 14, 0),
141
end=datetime(2024, 2, 15, 15, 0),
142
description="Weekly team sync via video",
143
conference_solution=ConferenceSolutionCreateRequest(
144
solution_type=SolutionType.HANGOUTS_MEET
145
)
146
)
147
148
created_event = gc.add_event(meeting)
149
150
# Google Meet link will be automatically generated and available in the event
151
print(f"Google Meet link: {created_event.hangout_link}")
152
```
153
154
### Creating Events with Custom Conference Solutions
155
156
```python
157
from gcsa.event import Event
158
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
159
from datetime import datetime
160
161
# Custom conference with multiple entry points
162
zoom_meeting = Event(
163
summary="Client Presentation",
164
start=datetime(2024, 3, 1, 10, 0),
165
end=datetime(2024, 3, 1, 11, 30),
166
location="Online - Zoom",
167
conference_solution=ConferenceSolution(
168
solution_type=SolutionType.ADD_ON,
169
name="Zoom Meeting",
170
conference_id="123-456-789",
171
entry_points=[
172
EntryPoint(
173
entry_point_type=EntryPoint.VIDEO,
174
uri="https://zoom.us/j/123456789",
175
label="Join via Zoom App",
176
meeting_code="123456789",
177
passcode="secret123"
178
),
179
EntryPoint(
180
entry_point_type=EntryPoint.PHONE,
181
uri="tel:+1-234-567-8900",
182
label="Dial-in Number",
183
access_code="123456789#"
184
)
185
]
186
)
187
)
188
189
gc.add_event(zoom_meeting)
190
```
191
192
### Microsoft Teams Integration
193
194
```python
195
from gcsa.event import Event
196
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
197
from datetime import datetime
198
199
teams_meeting = Event(
200
summary="All Hands Meeting",
201
start=datetime(2024, 3, 15, 9, 0),
202
end=datetime(2024, 3, 15, 10, 0),
203
conference_solution=ConferenceSolution(
204
solution_type=SolutionType.ADD_ON,
205
name="Microsoft Teams",
206
conference_id="teams-meeting-id-12345",
207
entry_points=[
208
EntryPoint(
209
entry_point_type=EntryPoint.VIDEO,
210
uri="https://teams.microsoft.com/l/meetup-join/...",
211
label="Join Microsoft Teams Meeting"
212
),
213
EntryPoint(
214
entry_point_type=EntryPoint.PHONE,
215
uri="tel:+1-555-0123",
216
label="Conference Phone",
217
access_code="123456789"
218
)
219
],
220
notes="Meeting ID: 123 456 789"
221
)
222
)
223
224
gc.add_event(teams_meeting)
225
```
226
227
### WebEx Conference Setup
228
229
```python
230
from gcsa.event import Event
231
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
232
from datetime import datetime
233
234
webex_session = Event(
235
summary="Training Session - WebEx",
236
start=datetime(2024, 4, 10, 13, 0),
237
end=datetime(2024, 4, 10, 16, 0),
238
conference_solution=ConferenceSolution(
239
solution_type=SolutionType.ADD_ON,
240
name="Cisco WebEx",
241
conference_id="webex-session-987654321",
242
entry_points=[
243
EntryPoint(
244
entry_point_type=EntryPoint.VIDEO,
245
uri="https://company.webex.com/meet/training123",
246
label="Join WebEx Session",
247
meeting_code="987654321",
248
password="TrainingPass2024"
249
),
250
EntryPoint(
251
entry_point_type=EntryPoint.PHONE,
252
uri="tel:+1-800-555-WEBX",
253
label="WebEx Audio",
254
access_code="987654321"
255
)
256
]
257
)
258
)
259
260
gc.add_event(webex_session)
261
```
262
263
### Hybrid Meeting with Multiple Options
264
265
```python
266
from gcsa.event import Event
267
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
268
from datetime import datetime
269
270
hybrid_meeting = Event(
271
summary="Board Meeting (Hybrid)",
272
start=datetime(2024, 5, 20, 14, 0),
273
end=datetime(2024, 5, 20, 16, 0),
274
location="Conference Room A / Online",
275
description="In-person attendees in Conference Room A, remote attendees via video",
276
conference_solution=ConferenceSolution(
277
solution_type=SolutionType.ADD_ON,
278
name="Multi-Platform Conference",
279
conference_id="hybrid-board-meeting-2024-05",
280
entry_points=[
281
EntryPoint(
282
entry_point_type=EntryPoint.VIDEO,
283
uri="https://meet.company.com/board-meeting",
284
label="Primary Video Link"
285
),
286
EntryPoint(
287
entry_point_type=EntryPoint.VIDEO,
288
uri="https://backup.company.com/board-meeting",
289
label="Backup Video Link"
290
),
291
EntryPoint(
292
entry_point_type=EntryPoint.PHONE,
293
uri="tel:+1-555-BOARD",
294
label="Audio Only Dial-in",
295
access_code="BoardMeeting2024"
296
),
297
EntryPoint(
298
entry_point_type=EntryPoint.SIP,
299
uri="sip:board@company.com",
300
label="SIP Connection for Video Systems"
301
)
302
],
303
notes="Please join 5 minutes early for technical check. Backup options available if primary fails."
304
)
305
)
306
307
gc.add_event(hybrid_meeting)
308
```
309
310
### Conference with Custom Entry Instructions
311
312
```python
313
from gcsa.event import Event
314
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
315
from datetime import datetime
316
317
custom_conference = Event(
318
summary="Customer Support Training",
319
start=datetime(2024, 6, 5, 10, 0),
320
end=datetime(2024, 6, 5, 12, 0),
321
conference_solution=ConferenceSolution(
322
solution_type=SolutionType.ADD_ON,
323
name="Custom Training Platform",
324
conference_id="training-cs-20240605",
325
entry_points=[
326
EntryPoint(
327
entry_point_type=EntryPoint.VIDEO,
328
uri="https://training.company.com/session/cs-training",
329
label="Training Platform",
330
access_code="CS2024",
331
password="LearnAndGrow"
332
),
333
EntryPoint(
334
entry_point_type=EntryPoint.MORE,
335
uri="https://company.com/training-guide",
336
label="Training Setup Guide",
337
)
338
],
339
notes="First-time users: Please visit the setup guide 15 minutes before the session to install required software and test your connection."
340
)
341
)
342
343
gc.add_event(custom_conference)
344
```
345
346
### International Conference with Multiple Dial-in Numbers
347
348
```python
349
from gcsa.event import Event
350
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
351
from datetime import datetime
352
353
international_call = Event(
354
summary="Global Team Sync",
355
start=datetime(2024, 7, 1, 15, 0), # 3 PM UTC
356
end=datetime(2024, 7, 1, 16, 0),
357
timezone="UTC",
358
conference_solution=ConferenceSolution(
359
solution_type=SolutionType.ADD_ON,
360
name="Global Conference Bridge",
361
conference_id="global-sync-070124",
362
entry_points=[
363
EntryPoint(
364
entry_point_type=EntryPoint.VIDEO,
365
uri="https://meet.company.com/global-sync",
366
label="Video Conference"
367
),
368
EntryPoint(
369
entry_point_type=EntryPoint.PHONE,
370
uri="tel:+1-555-0100",
371
label="USA/Canada Dial-in",
372
access_code="1234567890"
373
),
374
EntryPoint(
375
entry_point_type=EntryPoint.PHONE,
376
uri="tel:+44-20-1234-5678",
377
label="UK Dial-in",
378
access_code="1234567890"
379
),
380
EntryPoint(
381
entry_point_type=EntryPoint.PHONE,
382
uri="tel:+49-30-1234-5678",
383
label="Germany Dial-in",
384
access_code="1234567890"
385
),
386
EntryPoint(
387
entry_point_type=EntryPoint.PHONE,
388
uri="tel:+81-3-1234-5678",
389
label="Japan Dial-in",
390
access_code="1234567890"
391
)
392
]
393
)
394
)
395
396
gc.add_event(international_call)
397
```
398
399
### Updating Conference Details
400
401
```python
402
from gcsa.google_calendar import GoogleCalendar
403
from gcsa.conference import EntryPoint
404
405
gc = GoogleCalendar()
406
407
# Get existing event with conference
408
event = gc.get_event("event_id")
409
410
# Update conference entry points
411
if event.conference_solution:
412
# Add additional entry point
413
new_entry_point = EntryPoint(
414
entry_point_type=EntryPoint.PHONE,
415
uri="tel:+1-800-NEW-LINE",
416
label="Additional Phone Line"
417
)
418
419
if event.conference_solution.entry_points:
420
event.conference_solution.entry_points.append(new_entry_point)
421
else:
422
event.conference_solution.entry_points = [new_entry_point]
423
424
# Update conference notes
425
event.conference_solution.notes = "Updated: Additional phone line added for better accessibility"
426
427
gc.update_event(event)
428
```
429
430
### Conference with Authentication Requirements
431
432
```python
433
from gcsa.event import Event
434
from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType
435
from datetime import datetime
436
437
secure_meeting = Event(
438
summary="Executive Strategy Session",
439
start=datetime(2024, 8, 15, 16, 0),
440
end=datetime(2024, 8, 15, 18, 0),
441
description="Confidential discussion of strategic initiatives",
442
conference_solution=ConferenceSolution(
443
solution_type=SolutionType.ADD_ON,
444
name="Secure Conference Platform",
445
conference_id="exec-strategy-20240815",
446
entry_points=[
447
EntryPoint(
448
entry_point_type=EntryPoint.VIDEO,
449
uri="https://secure.company.com/exec-meeting",
450
label="Secure Video Connection",
451
access_code="EXEC2024",
452
password="StrategySession!2024",
453
meeting_code="ES20240815"
454
)
455
],
456
notes="CONFIDENTIAL: This meeting requires multi-factor authentication. Please ensure you have your security token ready. Screenshots and recordings are prohibited."
457
)
458
)
459
460
gc.add_event(secure_meeting)
461
```
462
463
### Legacy Hangouts Integration
464
465
```python
466
from gcsa.event import Event
467
from gcsa.conference import ConferenceSolutionCreateRequest, SolutionType
468
from datetime import datetime
469
470
# For organizations still using Google Hangouts
471
hangouts_meeting = Event(
472
summary="Casual Team Check-in",
473
start=datetime(2024, 2, 20, 11, 0),
474
end=datetime(2024, 2, 20, 11, 30),
475
conference_solution=ConferenceSolutionCreateRequest(
476
solution_type=SolutionType.HANGOUT # Legacy Hangouts
477
)
478
)
479
480
gc.add_event(hangouts_meeting)
481
```
482
483
### Error Handling for Conference Solutions
484
485
```python
486
from gcsa.google_calendar import GoogleCalendar
487
from gcsa.event import Event
488
from gcsa.conference import ConferenceSolutionCreateRequest, SolutionType
489
from googleapiclient.errors import HttpError
490
from datetime import datetime
491
492
gc = GoogleCalendar()
493
494
try:
495
# Event with conference solution
496
event = Event(
497
summary="Test Conference Event",
498
start=datetime(2024, 3, 1, 10, 0),
499
end=datetime(2024, 3, 1, 11, 0),
500
conference_solution=ConferenceSolutionCreateRequest(
501
solution_type=SolutionType.HANGOUTS_MEET
502
)
503
)
504
505
created_event = gc.add_event(event)
506
507
# Check if conference was successfully created
508
if hasattr(created_event, 'hangout_link') and created_event.hangout_link:
509
print(f"Conference created successfully: {created_event.hangout_link}")
510
else:
511
print("Conference creation may have failed")
512
513
except HttpError as e:
514
if "conferenceSolution" in str(e):
515
print(f"Conference solution error: {e}")
516
else:
517
print(f"General API error: {e}")
518
except Exception as e:
519
print(f"Unexpected error: {e}")
520
```
521
522
### Retrieving Conference Information
523
524
```python
525
from gcsa.google_calendar import GoogleCalendar
526
527
gc = GoogleCalendar()
528
529
# Get event and extract conference details
530
event = gc.get_event("event_id")
531
532
if event.conference_solution:
533
conf = event.conference_solution
534
print(f"Conference: {conf.name}")
535
print(f"Conference ID: {conf.conference_id}")
536
537
if conf.entry_points:
538
print("Entry Points:")
539
for ep in conf.entry_points:
540
print(f" {ep.entry_point_type}: {ep.uri}")
541
if ep.label:
542
print(f" Label: {ep.label}")
543
if ep.access_code:
544
print(f" Access Code: {ep.access_code}")
545
546
if conf.notes:
547
print(f"Notes: {conf.notes}")
548
549
# For Google Meet events, also check hangout_link
550
if hasattr(event, 'hangout_link') and event.hangout_link:
551
print(f"Google Meet Link: {event.hangout_link}")
552
```
553
554
The conference solution classes in GCSA provide comprehensive support for integrating video conferencing into calendar events. Whether using Google's native solutions like Meet and Hangouts or third-party platforms like Zoom, Teams, and WebEx, the system can accommodate various conference entry methods, authentication requirements, and international accessibility needs.