summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.markdown1
-rw-r--r--app/Locale/da_DK/translations.php2
-rw-r--r--app/Locale/de_DE/translations.php2
-rw-r--r--app/Locale/es_ES/translations.php2
-rw-r--r--app/Locale/fi_FI/translations.php2
-rw-r--r--app/Locale/fr_FR/translations.php2
-rw-r--r--app/Locale/hu_HU/translations.php2
-rw-r--r--app/Locale/it_IT/translations.php2
-rw-r--r--app/Locale/ja_JP/translations.php2
-rw-r--r--app/Locale/nl_NL/translations.php2
-rw-r--r--app/Locale/pl_PL/translations.php2
-rw-r--r--app/Locale/pt_BR/translations.php2
-rw-r--r--app/Locale/ru_RU/translations.php2
-rw-r--r--app/Locale/sr_Latn_RS/translations.php2
-rw-r--r--app/Locale/sv_SE/translations.php2
-rw-r--r--app/Locale/th_TH/translations.php2
-rw-r--r--app/Locale/tr_TR/translations.php2
-rw-r--r--app/Locale/zh_CN/translations.php2
-rw-r--r--app/Template/project/share.php2
-rw-r--r--app/Template/user/share.php2
-rw-r--r--docs/ical.markdown49
-rw-r--r--docs/sharing-projects.markdown10
22 files changed, 76 insertions, 22 deletions
diff --git a/README.markdown b/README.markdown
index 7f9ff1dd..2a477c4c 100644
--- a/README.markdown
+++ b/README.markdown
@@ -117,6 +117,7 @@ Documentation
- [Sendgrid](docs/sendgrid.markdown)
- [Slack](docs/slack.markdown)
- [Postmark](docs/postmark.markdown)
+- [iCalendar subscriptions](docs/ical.markdown)
#### More
diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php
index 4ce2a2d7..1a080b4a 100644
--- a/app/Locale/da_DK/translations.php
+++ b/app/Locale/da_DK/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php
index a3753985..3dff0aab 100644
--- a/app/Locale/de_DE/translations.php
+++ b/app/Locale/de_DE/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php
index 04af53db..e778d5a8 100644
--- a/app/Locale/es_ES/translations.php
+++ b/app/Locale/es_ES/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php
index c89428ce..d41cd82f 100644
--- a/app/Locale/fi_FI/translations.php
+++ b/app/Locale/fi_FI/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php
index 9ad6acff..3621413a 100644
--- a/app/Locale/fr_FR/translations.php
+++ b/app/Locale/fr_FR/translations.php
@@ -919,7 +919,7 @@ return array(
'Subtasks time tracking' => 'Suivi du temps par rapport aux sous-tâches',
'User calendar view' => 'Vue en mode utilisateur du calendrier',
'Automatically update the start date' => 'Mettre à jour automatiquement la date de début',
- 'iCalendar (iCal format, *.ics)' => 'iCalendar (format iCal, *.ics)',
+ 'iCal feed' => 'Abonnement iCal',
'Preferences' => 'Préférences',
'Security' => 'Sécurité',
'Two factor authentication disabled' => 'Authentification à deux facteurs désactivé',
diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php
index a8291057..468b6a01 100644
--- a/app/Locale/hu_HU/translations.php
+++ b/app/Locale/hu_HU/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php
index dbef74ef..2bbd8ba7 100644
--- a/app/Locale/it_IT/translations.php
+++ b/app/Locale/it_IT/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php
index 50ec0cc3..1cc3818a 100644
--- a/app/Locale/ja_JP/translations.php
+++ b/app/Locale/ja_JP/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php
index 58add350..c4c262e1 100644
--- a/app/Locale/nl_NL/translations.php
+++ b/app/Locale/nl_NL/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php
index 698bc94c..f1dade8f 100644
--- a/app/Locale/pl_PL/translations.php
+++ b/app/Locale/pl_PL/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php
index c187c6b3..e8414330 100644
--- a/app/Locale/pt_BR/translations.php
+++ b/app/Locale/pt_BR/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php
index 167b57df..d5df5e44 100644
--- a/app/Locale/ru_RU/translations.php
+++ b/app/Locale/ru_RU/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php
index 761c98fc..cf125c54 100644
--- a/app/Locale/sr_Latn_RS/translations.php
+++ b/app/Locale/sr_Latn_RS/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php
index 8c38a7eb..e2c46c9e 100644
--- a/app/Locale/sv_SE/translations.php
+++ b/app/Locale/sv_SE/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php
index de8c05a3..68b32c42 100644
--- a/app/Locale/th_TH/translations.php
+++ b/app/Locale/th_TH/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php
index 54e89a56..1368c358 100644
--- a/app/Locale/tr_TR/translations.php
+++ b/app/Locale/tr_TR/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php
index fac5fcc7..7d492635 100644
--- a/app/Locale/zh_CN/translations.php
+++ b/app/Locale/zh_CN/translations.php
@@ -917,7 +917,7 @@ return array(
// 'Subtasks time tracking' => '',
// 'User calendar view' => '',
// 'Automatically update the start date' => '',
- // 'iCalendar (iCal format, *.ics)' => '',
+ // 'iCal feed' => '',
// 'Preferences' => '',
// 'Security' => '',
// 'Two factor authentication disabled' => '',
diff --git a/app/Template/project/share.php b/app/Template/project/share.php
index f28ed6b2..07f29fdc 100644
--- a/app/Template/project/share.php
+++ b/app/Template/project/share.php
@@ -8,7 +8,7 @@
<ul class="no-bullet">
<li><strong><i class="fa fa-share-alt"></i> <?= $this->a(t('Public link'), 'board', 'readonly', array('token' => $project['token']), false, '', '', true) ?></strong></li>
<li><strong><i class="fa fa-rss-square"></i> <?= $this->a(t('RSS feed'), 'project', 'feed', array('token' => $project['token']), false, '', '', true) ?></strong></li>
- <li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCalendar (iCal format, *.ics)'), 'ical', 'project', array('token' => $project['token']), false, '', '', true) ?></strong></li>
+ <li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCal feed'), 'ical', 'project', array('token' => $project['token']), false, '', '', true) ?></strong></li>
</ul>
</div>
diff --git a/app/Template/user/share.php b/app/Template/user/share.php
index 98010d4f..55d06897 100644
--- a/app/Template/user/share.php
+++ b/app/Template/user/share.php
@@ -6,7 +6,7 @@
<div class="listing">
<ul class="no-bullet">
- <li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCalendar (iCal format, *.ics)'), 'ical', 'user', array('token' => $user['token']), false, '', '', true) ?></strong></li>
+ <li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCal feed'), 'ical', 'user', array('token' => $user['token']), false, '', '', true) ?></strong></li>
</ul>
</div>
diff --git a/docs/ical.markdown b/docs/ical.markdown
new file mode 100644
index 00000000..cba2e020
--- /dev/null
+++ b/docs/ical.markdown
@@ -0,0 +1,49 @@
+Syncing your calendars
+======================
+
+Kanboard supports iCal feeds for projects and users.
+This feature allow you to import Kanboard tasks in almost any calendar program (by example Microsoft Outlook, Apple Calendar and Google Calendar).
+
+Calendar subscriptions are **read-only** access, you cannot create tasks from an external calendar software.
+The Calendar feed export follow the iCal standard.
+
+Project calendars
+-----------------
+
+- Each project have its own calendar.
+- The subscription link is unique per project, the link is activated when you enable the public access of your project: **Project settings > Public access**.
+- This calendar show only tasks for the selected project.
+
+User calendars
+--------------
+
+- Each user have its own calendar.
+- The subscription link is unique per user, the link is activated when you enable the public access of your user: **User profile > Public access**.
+- This calendar show tasks assigned to the user for all projects.
+
+Adding your Kanboard calendar to Apple Calendar
+-----------------------------------------------
+
+- Open Calendar
+- Select **File > New Calendar Subscription**
+- Copy and paste the iCal feed url from Kanboard
+
+![Add iCal subscription](http://kanboard.net/screenshots/documentation/apple-calendar-add-subscription.png)
+
+- You can choose to synchronize the calendar with iCloud to be available across all your devices
+- Don't forget to select the refresh frequency
+
+![Edit iCal subscription](http://kanboard.net/screenshots/documentation/apple-calendar-edit-subscription.png)
+
+Adding your Kanboard calendar to Google Calendar
+------------------------------------------------
+
+- Click the down-arrow next to **Other calendars**.
+- Select **Add by URL** from the menu.
+- Copy and paste the iCal feed url from Kanboard
+
+![Google Calendar](http://kanboard.net/screenshots/documentation/google-calendar-add-subscription.png)
+
+Your Kanboard calendar can also be available from your Android device if you enable the synchronization.
+
+Note: According to the Google Support, external calendars are not refreshed very often, [read the documentation](https://support.google.com/calendar/answer/37100?hl=en&ref_topic=1672445).
diff --git a/docs/sharing-projects.markdown b/docs/sharing-projects.markdown
index 8671bfd5..3e72071b 100644
--- a/docs/sharing-projects.markdown
+++ b/docs/sharing-projects.markdown
@@ -21,11 +21,15 @@ Select your project, then click on "Public access" and finally click on the butt
![Enable public access](http://kanboard.net/screenshots/documentation/project-enable-sharing.png)
-After that, you got the public link and the RSS feed.
-The activity feed is available only when the public access is activated.
+When the public access is enabled, a couple of links are generated:
+
+- Public board view
+- RSS feed subscription link
+- iCalendar subscription link
![Disable public access](http://kanboard.net/screenshots/documentation/project-disable-sharing.png)
You can also disable the public access whenever you want.
+
Each time, you enable or disable the public access a new random token is generated.
-The old link will not work anymore.
+The previous links will not work anymore.