or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

access-control.mdattendees.mdcalendars.mdconferences.mdcore-operations.mdevents.mdfree-busy.mdindex.mdrecurrence.mdreminders.md

conferences.mddocs/

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.