+
    ¾¾jÝ  ã                  óÆ   € R t ^ RIHt ^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ]'       d   ^ RIHt ^ R	IHt  ! R
 R]4      tR.tR# )z :rfc:`5545` VFREEBUSY component.)ÚannotationsN)ÚdateÚdatetimeÚ	timedelta)ÚTYPE_CHECKING)	ÚCONCEPTS_TYPE_SETTERÚLINKS_TYPE_SETTERÚRELATED_TO_TYPE_SETTERÚREQUEST_STATUS_propertyÚcontacts_propertyÚcreate_single_propertyÚorganizer_propertyÚuid_propertyÚurl_property)Ú	Component)Úget_example)ÚSelf)ÚvCalAddressc                  óÔ   a € ] tR t^tRtRtRtRtRt]	t
]t]t]t]t]! RR]]3]R4      ;tt]! RR]]3]R4      ;tt]R R	 l4       t]RR
 V 3R lll4       t]RR R ll4       tRtV ;t # )ÚFreeBusya   
    A "VFREEBUSY" calendar component is a grouping of component
    properties that represents either a request for free or busy time
    information, a reply to a request for free or busy time
    information, or a published set of busy time information.

Examples:
    Create a new FreeBusy:

        >>> from icalendar import FreeBusy
        >>> free_busy = FreeBusy.new()
        >>> print(free_busy.to_ical())
        BEGIN:VFREEBUSY
        DTSTAMP:20250517T080612Z
        UID:d755cef5-2311-46ed-a0e1-6733c9e15c63
        END:VFREEBUSY

    Get the example FreeBusy.

    .. code-block:: pycon

        >>> from icalendar import FreeBusy
        >>> free_busy = FreeBusy.example()
        >>> print(free_busy.to_ical().decode())
        BEGIN:VFREEBUSY
        DTEND:19980410T234500Z
        DTSTAMP:19970901T120000Z
        DTSTART:19980313T141711Z
        FREEBUSY:19980314T233000Z/19980315T003000Z
        FREEBUSY:19980316T153000Z/19980316T163000Z
        FREEBUSY:19980318T030000Z/19980318T040000Z
        ORGANIZER:jsmith@example.com
        UID:19970901T115957Z-76A912@example.com
        URL:http://www.example.com/calendar/busytime/jsmith.ifb
        END:VFREEBUSY

Ú	VFREEBUSYÚDTSTARTÚDTENDÚdtzXThe "DTSTART" property for a "VFREEBUSY" specifies the inclusive start of the component.zkThe "DTEND" property for a "VFREEBUSY" calendar component specifies the non-inclusive end of the component.c               ó   € V ^8„  d   QhRR/# )é   Úreturnztimedelta | None© )Úformats   "ÚV/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/cal/free_busy.pyÚ__annotate__ÚFreeBusy.__annotate__m   s   € ÷ )ñ )Ð*ñ )ó    c                óx   € V P                   e   V P                  f   R# V P                  V P                   ,
          # )z)The duration computed from start and end.N)r   r   )Úselfs   &r   ÚdurationÚFreeBusy.durationl   s-   € ð �<‰<Ò 4§:¡:Ò#5ÙØ�z‰z˜DŸL™LÕ(Ð(r"   c               óP   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRR/# )r   Úcommentszlist[str] | str | NoneÚconceptsr   ÚcontactsÚendzdate | datetime | NoneÚlinksr   Ú	organizerzvCalAddress | str | NoneÚrefidsÚ
related_tor	   Úrequest_statusÚstampzdate | NoneÚstartÚuidzstr | uuid.UUID | NoneÚurlz
str | Noner   r   r   )r   s   "r   r    r!   t   s¨   € ÷ Cñ Cð )ðCð 'ð	Cð
 )ðCð $ðCð !ðCð ,ðCð 'ðCð +ðCð /ðCð ðCð &ðCð $ðCð ðCð  
ñ!Cr"   c          	     ó(  <€ \         ST `  V
e   T
MV P                  4       VVVVVR7      pVe   TM\        P                  ! 4       Vn        WÞn        Wnn        W>n        Wžn	        WNn
        W¾n        V P                  '       d   V P                  W´4       V# )a¦  Create a new FreeBusy component with all required properties,
in accordance with :rfc:`5545#section-3.6.4`.

The FreeBusy component has the required properties of UID and DTSTAMP,
which may be set with the parameters of ``uid`` and ``stamp``.

Parameters:
    comments: The :attr:`~icalendar.cal.component.Component.comments` of the component.
    concepts: The :attr:`~icalendar.cal.component.Component.concepts` of the component.
    contacts: The :attr:`contacts` of the component.
    end: The :attr:`end` of the component.
    links: The :attr:`~icalendar.cal.component.Component.links` of the component.
    organizer: The :attr:`organizer` of the component.
    refids: :attr:`~icalendar.cal.component.Component.refids` of the component.
    related_to: :attr:`~icalendar.cal.component.Component.related_to` of the component.
    request_status: The :attr:`REQUEST_STATUS` of the component.
    stamp: The :attr:`~icalendar.cal.component.Component.DTSTAMP` of the component.
        If None, this is set to the current time.
    start: The :attr:`start` of the component.
    uid: The :attr:`uid` of the component.
        If None, this is set to a new :func:`uuid.uuid4`.
    url: The :attr:`url` of the component.

Returns:
    :class:`FreeBusy`

Raises:
    :exc:`~icalendar.error.InvalidCalendar`: If the content is not valid
        according to :rfc:`5545`.

.. warning:: As time progresses, we will be stricter with the validation.
)r1   r(   r,   r/   r.   r)   )ÚsuperÚnewÚ_utc_nowÚuuidÚuuid4r3   r4   r-   r*   ÚREQUEST_STATUSr+   r2   Ú_validate_newÚ_validate_start_and_end)Úclsr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Ú	free_busyÚ	__class__s   "&&&&&&&&&&&&& €r   r7   ÚFreeBusy.news   sŽ   ø€ ôd  ™'™+Ø Ò,‘%°#·,±,³.ØØØ!ØØð &ó 
ˆ	ð  #š™´D·J²J³Lˆ	ŒØŒØ'ÔØ%ÔØ#1Ô ØŒØŒà××ÐØ×'Ñ'¨Ô3ØÐr"   c               ó    € V ^8„  d   QhRRRR/# )r   ÚnameÚstrr   r   r   )r   s   "r   r    r!   º   s   € ÷ <ñ <˜3ð <¨xñ <r"   c                ó8   € V P                  \        RV4      4      # )z0Return the FreeBusy example with the given name.Úfreebusy)Ú	from_icalr   )r>   rC   s   &&r   ÚexampleÚFreeBusy.example¹   s   € ð �}‰}œ[¨°TÓ:Ó;Ð;r"   r   )ÚUIDÚDTSTAMP)ÚCONTACTr   r   rK   Ú	ORGANIZERrJ   ÚURL)ÚATTENDEEÚCOMMENTÚFREEBUSYzREQUEST-STATUS)NNNNNNNNNNNNN)rH   )!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rC   ÚrequiredÚ
singletonsÚmultipler   r3   r   r4   r   r-   r   r*   r
   r;   r   r   r   r2   r   r+   r   Úpropertyr%   Úclassmethodr7   rH   Ú__static_attributes__Ú__classcell__)r@   s   @r   r   r      sÑ   ø† ñ$ðL €Dð€Hð€Jð€Hð €CØ
€CØ"€IØ €HØ,€NÙ,ØØØ	�4ÐØØbóð €EˆGñ )ØØØ	�4ÐØØuóð €Cˆ%ð ô)ó ð)ð ÷Cñ Có ðCðJ ö<ó ö<r"   r   )rV   Ú
__future__r   r9   r   r   r   Útypingr   Úicalendar.attrr   r   r	   r
   r   r   r   r   r   Úicalendar.cal.componentr   Úicalendar.cal.examplesr   Úicalendar.compatibilityr   Úicalendar.propr   r   Ú__all__r   r"   r   Ú<module>rf      sO   ðÙ &å "ã ß .Ñ .Ý  ÷
÷ 
õ 
õ .Ý .çÝ,Ý*ô`<ˆyô `<ðF ˆ,‚r"   