19 declare(strict_types=1);
    25     protected \ilObjUser 
$to;
    26     protected \ilObjUser 
$cc;
    46         string $talk_description,
    47         string $talk_location,
    67     public function send(): void
    69         $notif = new \ilSystemNotification();
    70         $notif->setLangModules([
'etal', 
'orgu']);
    74             $notif->getUserLanguage($this->to->getId())->txt($this->subject_key),
    78         $notif->setRefId($this->talk_ref_id);
    80         $notif->setIntroductionLangId($this->message_key);
    82         $notif->addAdditionalInfo(
    87         if ($this->talk_description) {
    88             $notif->addAdditionalInfo(
    90                 $this->talk_description
    94         if ($this->talk_location) {
    95             $notif->addAdditionalInfo(
   101         $notif->addAdditionalInfo(
   103             $this->cc->getFullname()
   106         $notif->addAdditionalInfo(
   107             'notification_talks_date_list_header',
   108             "- " . implode(
"\r\n- ", $this->dates),
   112         if ($this->add_goto) {
   113             $notif->addAdditionalInfo(
   119         $attachment_name = 
'appointments.ics';
   120         $attachment->storeAsAttachment(
   127             $this->
to->getLogin(),
   128             $this->cc->getLogin(),
   131             $notif->composeAndGetMessage($this->
to->getId(), null, 
'', 
true),
   135         $attachment->unlinkFile($attachment_name);
   141             $this->talk_ref_id . 
'&client_id=' . 
CLIENT_ID;
 
to(\GdImage $image, int $quality=null)
Currently this is the only way to make a FileStream from a GD image resource. 
 
__construct(\ilObjUser $to, \ilObjUser $cc, int $talk_ref_id, string $talk_name, string $talk_description, string $talk_location, string $subject_key, string $message_key, string $attachment, bool $add_goto, string ... $dates,)