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.
|