| .. _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=[
|
|
|
| EmailReminder(days_before=1, at=time(13, 30)),
|
|
|
| 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.
|
|
|
| |