.. _conference: Conference ---------- To add conference (such as Hangouts or Google Meet) to an event you can use :py:class:`~gcsa.conference.ConferenceSolution` (for existing conferences) or :py:class:`~gcsa.conference.ConferenceSolutionCreateRequest` (to create new conference) and pass it as a ``conference_solution`` parameter: Existing conference ~~~~~~~~~~~~~~~~~~~ To add existing conference you need to specify its ``solution_type`` (see :py:class:`~gcsa.conference.SolutionType` for available values) and at least one :py:class:`~gcsa.conference.EntryPoint` in ``entry_points`` parameter. You can pass single :py:class:`~gcsa.conference.EntryPoint`: .. code-block:: python from gcsa.conference import ConferenceSolution, EntryPoint, SolutionType event = Event( 'Meeting', start=(22 / Nov / 2020)[15:00], conference_solution=ConferenceSolution( entry_points=EntryPoint( EntryPoint.VIDEO, uri='https://meet.google.com/aaa-bbbb-ccc' ), solution_type=SolutionType.HANGOUTS_MEET, ) ) or multiple entry points in a list: .. code-block:: python event = Event( 'Event with conference', start=(22 / Nov / 2020)[15:00], conference_solution=ConferenceSolution( entry_points=[ EntryPoint( EntryPoint.VIDEO, uri='https://meet.google.com/aaa-bbbb-ccc' ), EntryPoint( EntryPoint.PHONE, uri='tel:+12345678900' ) ], solution_type=SolutionType.HANGOUTS_MEET, ) ) See more parameters for :py:class:`~gcsa.conference.ConferenceSolution` and :py:class:`~gcsa.conference.EntryPoint`. New conference ~~~~~~~~~~~~~~ To generate new conference you need to specify its ``solution_type`` (see :py:class:`~gcsa.conference.SolutionType` for available values). .. code-block:: python from gcsa.conference import ConferenceSolutionCreateRequest, SolutionType event = Event( 'Meeting', start=(22 / Nov / 2020)[15:00], conference_solution=ConferenceSolutionCreateRequest( solution_type=SolutionType.HANGOUTS_MEET, ) ) See more parameters for :py:class:`~gcsa.conference.ConferenceSolutionCreateRequest`. .. note:: Create requests are asynchronous. Check ``status`` field of event's ``conference_solution`` to find it's status. If the status is ``"success"``, ``conference_solution`` will contain a :py:class:`~gcsa.conference.ConferenceSolution` object and you'll be able to access its fields (like ``entry_points``). Otherwise (if ``status`` is ``"pending"`` or ``"failure"``), ``conference_solution`` will contain a :py:class:`~gcsa.conference.ConferenceSolutionCreateRequest` object. .. code-block:: python event = calendar.add_event( Event( 'Meeting', start=(22 / Nov / 2020)[15:00], conference_solution=ConferenceSolutionCreateRequest( solution_type=SolutionType.HANGOUTS_MEET, ) ) ) if event.conference_solution.status == 'success': print(event.conference_solution.solution_id) print(event.conference_solution.entry_points) elif event.conference_solution.status == 'pending': print('Conference request has not been processed yet.') elif event.conference_solution.status == 'failure': print('Conference request has failed.')