gcal
— это инструмент командной строки, работающий в Node.js, который позволяет отображать список событий, вставлять или массово вставлять их через API Календаря Google.
Список событий:
Он будет перечислять сегодняшние события, если он выполняется без аргументов:
$ gcal list
Формат ответа можно настроить, но он используется по умолчанию:
Upcoming events (2017-09-07T00:00:00+09:00 ~ 2017-09-07T23:59:59+09:00)
2017-09-07 20:00 - My favorite TV show
2017-09-07 22:30 - Prepare tomorrow's meeting stuff
Также для задания термина можно использовать естественный язык:
$ gcal list yesterday
$ gcal list 'from tomorrow to the day after tomorrow'
$ gcal list 'since yesterday until next week'
Также могут быть указаны конкретные даты ISO:
$ gcal list -f 2017-03-23 -t 2017-03-27
Вставить событие
Также вставка может быть выполнена на естественном языке:
$ gcal insert 'Party tomorrow from 3pm to 5pm'
Вставить события, указав параметры:
$ gcal insert -s 'Party' -d 2017-03-23 -t 15:00 -D 2h
Объемная вставка
Создайте файл .json
следующего формата:
$ echo \
'[{
"calendarId": "primary", "resource": {
"summary": "Party",
"start": { "dateTime": "2017-09-08T20:00" },
"end": { "dateTime": "2017-09-08T22:00" }}
},{
"calendarId": "primary", "resource": {
"summary": "Party again",
"start": { "dateTime": "2017-09-08T22:00" },
"end": { "dateTime": "2017-09-08T23:30" }}
}]' \
> events.json
И передайте его в качестве аргумента для массовой вставки:
$ gcal bulk -e events.json
Также принимается файл .js
, полезный для относительных дат и многого другого:
// events.js const today = new Date(); today.setHours('17', '00', '00'); const tomorrow = new Date(today.getTime()+1000*60*60*24); module.exports = [{ "calendarId": "primary", "resource": { "summary": `Release`, "start": { "dateTime": today.toISOString() }, "end": { "dateTime": today.toISOString() } } }, { "calendarId": "primary", "resource": { "summary": "Release", "start": { "dateTime": tomorrow.toISOString() }, "end": { "dateTime": tomorrow.toISOString() } } }];
$ gcal bulk -e ./events.js
(Доступные свойства перечислены здесь).
Некоторые варианты использования
Некоторые варианты использования включают в себя сценарии/автоматизацию, например использование в рабочем процессе непрерывной интеграции (например, вставка события в календарь после выпуска рабочей версии).
…Или только для людей, которые живут в терминале.
Об аутентификации и пользовательской конфигурации
Авторизация и аутентификация выполняются с помощью OAuth 2.0, подготовка ваших учетных данных займет всего около 2 минут.
Также конфигурацию по умолчанию можно переопределить с помощью файла конфигурации.
Для получения дополнительной информации проверьте README репозитория. Любая обратная связь приветствуется!