File size: 3,807 Bytes
550665c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
.. _reminders:

Reminders
---------

To add reminder(s) to an event you can create :py:class:`~gcsa.reminders.EmailReminder` or
:py:class:`~gcsa.reminders.PopupReminder` and pass them as a ``reminders`` parameter (single reminder
or list of reminders):


.. code-block:: python


    from gcsa.reminders import EmailReminder, PopupReminder

    event = Event('Meeting',
                  start=(22/Apr/2019)[12:00],
                  reminders=EmailReminder(minutes_before_start=30))

or

.. code-block:: python

    event = Event('Meeting',
                  start=(22/Apr/2019)[12:00],
                  reminders=[
                        EmailReminder(minutes_before_start=30),
                        EmailReminder(minutes_before_start=60),
                        PopupReminder(minutes_before_start=15)
                  ])


You can also simply add reminders by specifying ``minutes_before_popup_reminder`` and/or
``minutes_before_email_reminder`` parameter of the :py:class:`~gcsa.event.Event` object:

.. code-block:: python

    event = Event('Meeting',
                  start=(22/Apr/2019)[12:00],
                  minutes_before_popup_reminder=15,
                  minutes_before_email_reminder=30)


If you want to add a reminder to an existing event use :py:meth:`~gcsa.event.Event.add_email_reminder`
and/or :py:meth:`~gcsa.event.Event.add_popup_reminder` methods:


.. code-block:: python

    event.add_popup_reminder(minutes_before_start=30)
    event.add_email_reminder(minutes_before_start=50)

Update event using :py:meth:`~gcsa.google_calendar.GoogleCalendar.update_event` method to save the changes.

To use default reminders of the calendar, set ``default_reminders`` parameter of the :py:class:`~gcsa.event.Event`
to ``True``.

.. note:: You can add up to 5 reminders to one event.

Specific time reminders
~~~~~~~~~~~~~~~~~~~~~~~

You can also set specific time for a reminder.

.. code-block:: python

    from datetime import time

    event = Event(
        'Meeting',
        start=(22/Apr/2019)[12:00],
        reminders=[
            # Day before the event at 13:30
            EmailReminder(days_before=1, at=time(13, 30)),
            # 2 days before the event at 19:15
            PopupReminder(days_before=2, at=time(19, 15))
        ]
    )

    event.add_popup_reminder(days_before=3, at=time(8, 30))
    event.add_email_reminder(days_before=4, at=time(9, 0))


.. note:: Google calendar API only works with ``minutes_before_start``.
    The GCSA's interface that uses ``days_before`` and ``at`` arguments is only a convenient way of setting specific time.

    GCSA will convert ``days_before`` and ``at`` to ``minutes_before_start`` during API requests.

    So after you add or update the event, it will have reminders with only ``minutes_before_start`` set even if they

    were initially created with ``days_before`` and ``at``.



    .. code-block:: python



        from datetime import time



        event = Event(

            'Meeting',

            start=(22/Apr/2019)[12:00],

            reminders=[

                # Day before the event at 12:00

                EmailReminder(days_before=1, at=time(12, 00))

            ]

        )



        event.reminders[0].minutes_before_start is None

        event.reminders[0].days_before == 1

        event.reminders[0].at == time(12, 00)



        event = gc.add_event(event)



        event.reminders[0].minutes_before_start == 24 * 60  # exactly one day before

        event.reminders[0].days_before is None

        event.reminders[0].at is None



    GCSA does not convert ``minutes_before_start`` to ``days_before`` and ``at`` (even for the whole-day events)

    for backwards compatibility reasons.