web-standards-ru/calendar

iCal / CalDAV

fogrew opened this issue · 4 comments

Было бы круто, заводя мероприятия в calendar.yml, автоматически конвертировать их в ical и caldav форматы. Идеально бы ещё в html, чтобы можно было зайти на сайт с календарём и просто посмотреть.

Представляю себе такую автоматизацию процесса:

  • завести ветку gh-pages, где будет сайт и календарь в нужных форматах
  • написать gulp-task, который разбирает yml и трансформирует в ical и caldav. Если так не выйдет, то сделать организацию через какие-нибудь сервисы генерации событий в календарь (типа API Google Calendar).
  • написать таск, который генерит и деплоит всё в ветку gh-pages
  • написать конфиг для travis ci, следуя которому всё будет деплоиться при комите в master. в конфиге примерно следующее: установить npm пакеты (хорошо их кэшировать между установками), сконвертировать в три формата календарь, если всё прошло без ошибок, то закомитить их в gh-pages

Вижу себе это примерно так. Понимаю, что кажется слишком сложным, но, один раз автоматизировав, с этим сталкиваться больше не придётся и никакой рутины не потребуется.
Как считаете?

@Gurylev спасибо большое за предложение!

Я полностью согласен насчет автоматизации процесса. Мне нравится процесс, который Вы предложили выше, только подписку на календарь я бы делал силами стороннего сервиса (чтобы каждый был доволен и смог подписаться без проблем).

Всё ещё считаю идею с подпиской на события на стороннем сервисе слишком сложной для первого этапа и я лучше бы сфокусировался на генерации простого календаря из YML. А потом уже можно сделать круче.

Сейчас бы иметь какой-нибудь /calendar.ical на сайте, чтобы подписаться на него и штука просто заработала.

@pepelsbey я бы наоборот использовал сторонний сервис на первом этапе, потому что так мы сможем сфокусироваться только на одной веще: отлавливать события гитхаба и пушить их в сторонний сервис в правильном формате.

Использование стороннего сервиса не дает нам большой гибкости (хотя calendarx достаточно хорош), но он снимет с нас большую часть работу. В дальнейшем, когда мы захотим что-то более привлекательное и удобно настраиваемое, то можем сделать свое решение.

Если мы просто хотим иметь calendar.ical, то мы должны будем сделать гораздо больше работы :).

Добавлено в #5.