39 lines
958 B
Python
39 lines
958 B
Python
from ics.attendee import Attendee
|
|
from ics.alarm.base import BaseAlarm
|
|
from typing import Union, List
|
|
from datetime import datetime, timedelta
|
|
|
|
from ics.serializers.alarm_serializer import EmailAlarmSerializer
|
|
from ics.parsers.alarm_parser import EmailAlarmParser
|
|
|
|
|
|
class EmailAlarm(BaseAlarm):
|
|
"""
|
|
A calendar event VALARM with Email option.
|
|
"""
|
|
|
|
class Meta:
|
|
name = "VALARM"
|
|
parser = EmailAlarmParser
|
|
serializer = EmailAlarmSerializer
|
|
|
|
def __init__(
|
|
self,
|
|
trigger: Union[timedelta, datetime] = None,
|
|
repeat: int = None,
|
|
duration: timedelta = None,
|
|
subject: str = None,
|
|
body: str = None,
|
|
recipients: List[Attendee] = None,
|
|
):
|
|
|
|
super().__init__(trigger, repeat, duration)
|
|
|
|
self.subject = subject
|
|
self.body = body
|
|
self.recipients = recipients if recipients else []
|
|
|
|
@property
|
|
def action(self):
|
|
return "EMAIL"
|