Úkoly z plánování ve formátu iCalendar
Tato funkce je k dispozici, pokud máte u instalace aktivní modul Plánování a aktivní modul Task manager.
Pomocí tokenu je možné přidat úkoly z kalendáře do kteréhokoliv jiného kalendáře, který podporuje formát souboru iCalendar/iCal (.ics).
Tento formát (iCal) podporují různé programy napříč platformami (Google Calendar, Windows Calendar, Apple Calendar aj.).
Generování tokenu
Generování tokenu pro přístup k událostem konkrétního uživatele je možné v jeho uživatelském nastavení, které je dostupné přes zobrazované jméno uživatele v hlavičce rozhraní v sekci (Uživatelské nastavení –> Plánování).
Zároveň je možné nastavit si formát názvu propisovaných úkolů ze systému ISPadmin do formátu iCal v sekci Nastavení názvu úkolu pro iCal.
Přehled vygenerovaných tokenů
Přehled všech vygenerovaných tokenů v systému (všech uživatelů) je možné zobrazit a spravovat (možnost smazat) na stránce (Plánování –> Nastavení –> iCal tokeny).
Zabezpečení přístupu
UPOZORNĚNÍ
Pokud již máte nastavené zabezpečení pro mobilní aplikaci, tak již máte systém nastaven (zabezpečen pro přístup). Port pro přístup ke kalendáři lze tedy použít stejný.
Dostupnost kalendáře ve formátu iCal (iCalendar), ze systému ISPadmin, pro ostatní kalendářové aplikace, lze zabezpečit povolením připojení pouze přes volný vybraný port.
Cílem je povolit komunikaci pouze se zdrojem dat z kalendáře nebo pro mobilní aplikaci a zbytek systému tak kompletně zabezpečit/znepřístupnit z internetu.
Na nakonfigurovaném portu poběží jen API pro mobilní aplikaci nebo kalendář.
Je potřeba splnit několik podmínek a provést potřebná nastavení konfigurace:
- Vybrat si libovolný volný port pro přístup ke kalendáři a ten mít povolen na firewallu pro přístup k systému ISPadmin z internetu
- Na začátku konfiguračního souboru (etc/apache2/sites-enabled/ispadmin.conf) přidat ke stávající konfiguraci:
Listen [zvoleny_port]
- Ve stejném souboru (etc/apache2/sites-enabled/ispadmin.conf) kdekoliv přidat konfiguraci:
- POZOR – sekce s certifikáty níže (SSL) platí pouze v případě, kdy využíváte certifikáty od certifikační autority Let’s encrypt (výchozí ISPadmin).
Pokud využíváte jiné nebo vlastní certifikáty, tak je potřeba SSL sekci zkopírovat z již existující konfigurace Virtualhost např. pro port 443 (v konfiguračním souboru – ispadmin.conf):
<VirtualHost *:[zvoleny_port]>
Protocols h2 h2c http/1.1
ServerName [domenove_jmeno]
DocumentRoot "/data/support/ispadmin/new/ispam/"
AddDefaultCharset UTF-8
<Directory /data/support/ispadmin/new/ispam/>
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
CustomLog /var/log/apache2/access_support_ispadmin_ispam.log combined
AddType application/x-httpd-php .php
SSLEngine on
SSLCertificateFile /data/ispadmin_cert/[domenove_jmeno]/fullchain.cer
SSLCertificateKeyFile /data/ispadmin_cert/[domenove_jmeno]/[domenove_jmeno].key
</VirtualHost>
- Nakonec restartovat službu Apache serveru:
systemctl restart apache2.service
- Připojení k datům kalendáře ze systému ISPadmin je nyní (pokud je ISPadmin zabezpečen/nedostupný z internetu) dostupné pouze přes nastavený zvolený port (zadaný v URL)
Příklad URL se zvoleným a nastaveným portem pro přístup – 8899:
https://ispadmin.domena.eu:8899/new/www/api/v0/scheduling-calendar-export/bdb9b1291f263cc321015278944a09061793ec8376254f117695a2e6084306024c6838708061d8316587177378ace92ca97a615122ad89025e06d815c2dbb015
Konfiguraci je možné objednat také v rámci placeného servisního zásahu na support@ispadmin.eu.
Kalendář Google
Kalendář ze systému ISPadmin je možné napojit a pravidelně synchronizovat s Kalendářem Google (Google Calendar). Ten je pak možné použít v dalších aplikacích nebo řešeních (např. sdílení).
Pro pravidelnou aktualizaci kalendáře je však nutné přidat a automaticky spouštět skript (script.google.com), který zajistí, že se události budou v pravidelných intervalech do vytvořeného Google Kalendáře stahovat.
Ve výchozím nastavení dochází automaticky k aktualizaci kalendáře z externího zdroje v intervalu 12–24h. Externím skriptem (https://github.com/derekantrican/GAS-ICS-Sync), který je použit v postupu níže dosáhnete toho, že se události mohou aktualizovat častěji (např. každých 5 minut).
- Po navštívení odkazu níže, je potřeba zkopírovat skript do svého Google profilu:
https://script.google.com/d/1BOk8MDLbLaHh6SwG1M1tsgNXjkcC-79LE0QoipRuTDxbO3fMVvqoROQD/edit?newcopy=true - V přehledu projektu přejděte v levém menu na ikonu () viz obrázek níže
- Na zobrazené stránce klikněte na ikonu „kopírovat“ v pravém horním rohu () viz obrázek níže
- Po úspěšném zkopírování projektu je potřeba chování skriptu nakonfigurovat.
- Příklad výchozí konfigurace níže kde:
- Název kalendáře v Google kalendáři bude ISPA
- Úkoly se budou synchronizovat každých 5 minut (nejmenší možná hodnota)
- Případné další doplňující nastavení chování jsou v popisu skriptu
- Níže uvedený kód je potřeba vložit do ohraničené sekce skriptu:
var sourceCalendars = [ // The ics/ical urls that you want to get events from along with their target calendars (list a new row for each mapping of ICS url to Google Calendar)
// For instance: ["https://p24-calendars.icloud.com/holidays/us_en.ics", "US Holidays"]
// Or with colors following mapping https://developers.google.com/apps-script/reference/calendar/event-color,
// for instance: ["https://p24-calendars.icloud.com/holidays/us_en.ics", "US Holidays", "11"]
["https://ispadmin.domena.eu:8899/new/www/api/v0/scheduling-calendar-export/bdb9b1291f263cc321015278944a09061793ec8376254f117695a2e6084306024c6838708061d8316587177378ace92ca97a615122ad89025e06d815c2dbb015", "ISPA"]
];
var howFrequent = 5; // What interval (minutes) to run this script on to check for new events. Any integer can be used, but will be rounded up to 5, 10, 15, 30 or to the nearest hour after that.. 60, 120, etc. 1440 (24 hours) is the maximum value. Anything above that will be replaced with 1440.
var onlyFutureEvents = false; // If you turn this to "true", past events will not be synced (this will also removed past events from the target calendar if removeEventsFromCalendar is true)
var addEventsToCalendar = true; // If you turn this to "false", you can check the log (View > Logs) to make sure your events are being read correctly before turning this on
var modifyExistingEvents = true; // If you turn this to "false", any event in the feed that was modified after being added to the calendar will not update
var removeEventsFromCalendar = true; // If you turn this to "true", any event created by the script that is not found in the feed will be removed.
var removePastEventsFromCalendar = true; // If you turn this to "false", any event that is in the past will not be removed.
var addAlerts = "yes"; // Whether to add the ics/ical alerts as notifications on the Google Calendar events or revert to the calendar's default reminders ("yes", "no", "default").
var addOrganizerToTitle = false; // Whether to prefix the event name with the event organiser for further clarity
var descriptionAsTitles = false; // Whether to use the ics/ical descriptions as titles (true) or to use the normal titles as titles (false)
var addCalToTitle = false; // Whether to add the source calendar to title
var addAttendees = false; // Whether to add the attendee list. If true, duplicate events will be automatically added to the attendees' calendar.
var defaultAllDayReminder = -1; // Default reminder for all day events in minutes before the day of the event (-1 = no reminder, the value has to be between 0 and 40320)
// See https://github.com/derekantrican/GAS-ICS-Sync/issues/75 for why this is neccessary.
var overrideVisibility = ""; // Changes the visibility of the event ("default", "public", "private", "confidential"). Anything else will revert to the class value of the ICAL event.
var addTasks = false;
var emailSummary = false; // Will email you when an event is added/modified/removed to your calendar
var email = ""; // OPTIONAL: If "emailSummary" is set to true or you want to receive update notifications, you will need to provide your email address
var customEmailSubject = ""; // OPTIONAL: If you want to change the email subject, provide a custom one here. Default: "GAS-ICS-Sync Execution Summary"
var dateFormat = "YYYY-MM-DD" // date format in the email summary (e.g. "YYYY-MM-DD", "DD.MM.YYYY", "MM/DD/YYYY". separators are ".", "-" and "/")
- do sekce vyznačené v konfiguraci níže nahradit odkaz na kalendář ve formátu iCal ze systému ISPadmin. Viz Zkopírovat token jako odkaz.
Musí být pro Google dostupný! (viz nastavení zabezpečení přístupu výše)
- Následně skript aktivovat. V horním panelu mít vybranou možnost install a kliknout na tlačítko Spustit. Viz obrázek níže.
- Následně je potřeba povolit přístup skriptu k datům vašeho profilu (Google Kalendář).
- Vybrat účet pro který udělujeme oprávnění
- Upozornění na aplikaci třetí strany, která není ověřena společností Google
- Schválení přístupu aplikaci pro zvolený Google účet
- Následně by v historii spuštění měly být vidět záznamy, kdy každých 5 minut dochází k synchronizaci
- Zároveň by v aplikaci Google Kalendář (calendar.google.com) měl být vidět nový kalendář (ISPA) a události uživatele ze systému ISPadmin.