> For the complete documentation index, see [llms.txt](https://svyatov-hub.gitbook.io/cata/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://svyatov-hub.gitbook.io/cata/oblachnaya-sinkhronizaciya.md).

# Облачная синхронизация

Cata может просматривать календари из облачных сервисов, таких как календарь Google, Nextcloud и т. д. По сути, вы можете просматривать любой файл .ics, опубликованный в Интернете или сохраненный на вашем компьютере. Для этого вам необходимо либо указать URL-адрес вашего файла .ics, либо синхронизировать файлы .ics с вашим компьютером и указать путь к одному файлу или папке с файлами .ics. Ниже приведены несколько примеров:

## Получение персональных URL-адресов файлов .ics (календарь Google) <a href="#obtaining-secret-urls-of-.ics-files-google-calendar" id="obtaining-secret-urls-of-.ics-files-google-calendar"></a>

Самый простой способ просматривать события из календаря Google — получить персональный URL-адрес. Откройте календарь Google в браузере, в разделе «Мои календари» нажмите три точки > «Настройки и обмен» > «Скопировать секретный адрес в формате iCal». Это должно выглядеть так:

```
https://calendar.google.com/calendar/ical/myemail%40gmail.com/private-xxx/basic.ics
```

Перейдите к разделу о [чтении из файлов .ics](#reading-from-.ics-files-in-calcure).

У этого метода есть несколько минусов, а именно то, что загрузка с URL-адреса обычно занимает много времени и работает только при наличии Интернета. Также возможно синхронизировать календари Google локально, как в примере ниже, но это сложнее.

## Локальная синхронизация файлов .ics (календарь Nextcloud) <a href="#syncing-.ics-files-locally-nextcloud-calendar" id="syncing-.ics-files-locally-nextcloud-calendar"></a>

Установите [vdirsyncer](https://vdirsyncer.pimutils.org/en/stable/index.html) для синхронизации файлов .ics из облака на компьютер:

```
pip install vdirsyncer
```

Создайте файл конфигурации с `config` именем `.config/vdirsyncer/config`. В этом примере показан типичный файл конфигурации для сервера Nextcloud. Для других серверов смотрите [обучающие материалы здесь](https://vdirsyncer.readthedocs.io/en/stable/tutorials/index.html#servers) . Например, если у вас есть личный и рабочий календари, вам необходимо создать разные записи синхронизации и получить два файла .ics (или две папки с файлами .ics). В примере ниже показаны типичные записи для синхронизации двух календарей: «рабочего» и «личного»:

```
[general]
status_path = "~/.vdirsyncer/status/"


# Sync personal events:

[pair events_personal]
a = "events_personal_local"
b = "events_personal_remote"
collections = null

[storage events_personal_local]
type = "singlefile"
path = "~/.config/vdirsyncer/data/events_personal.ics"

[storage events_personal_remote]
type = "caldav"
url = "https://nextcloud.yourserver.com/remote.php/dav/calendars/admin/personal" # this points to personal calendar (not all calendars)
username = "..."
password = "..." # this is your app password in nextcloud


# Sync work events:

[pair events_work]
a = "events_work_local"
b = "events_work_remote"
collections = null

[storage events_work_local]
type = "singlefile"
path = "~/.config/vdirsyncer/data/events_work.ics"

[storage events_work_remote]
type = "caldav"
url = "https://nextcloud.yourserver.com/remote.php/dav/calendars/admin/work" # this points to work calendar (not all calendars)
username = "..."
password = "..." # this is your app password in nextcloud


# Sync tasks:

[pair tasks]
a = "tasks_local"
b = "tasks_remote"
collections = null

[storage tasks_local]
type = "singlefile"
path = "~/.config/vdirsyncer/data/tasks.ics"

[storage tasks_remote]
type = "caldav"
url = "https://nextcloud.yourserver.com/remote.php/dav/calendars/admin/tasks/"
username = "..."
password = "..." # this is your app password in nextcloud
```

После создания файла конфигурации выполните следующую команду, чтобы обнаружить конфигурацию:

```
vdirsyncer discover
```

Согласитесь на создание всех необходимых файлов и папок и запустите следующую команду для синхронизации:

```
vdirsyncer sync
```

Это должно синхронизировать ваши задачи и события с файлами `.config/vdirsyncer/data`. Однако вы также можете использовать эту `type = "fylesystem"` опцию, если хотите синхронизировать каждое событие как отдельный файл .ics.

Для синхронизации файлов периодически запускайте (подробнее [здесь](http://vdirsyncer.pimutils.org/en/stable/tutorials/systemd-timer.html) ): `systemctl --user enable vdirsyncer.timer`

## Чтение файлов .ics в Cata <a href="#reading-from-.ics-files-in-calcure" id="reading-from-.ics-files-in-calcure"></a>

Теперь добавьте пути или URL-адреса файлов .ics в конфигурацию Cata по адресу `.config/cata/config.ini`. Cata примет URL-адрес (начинающийся с http) или путь к одному файлу (заканчивающийся на .ics) или путь к папке с файлами .ics, и в этом случае вся папка будет анализироваться как один календарь. Вот пример:

Копировать

```
ics_task_files = /home/username/.config/vdirsyncer/data/tasks.ics
ics_event_files = https://calendar.google.com/calendar/ical/myemail%40gmail.com/private-xxxxxxxx/basic.ics
```

Вы можете синхронизировать более одного пути или URL-адреса. Можно смешивать несколько типов записей, но записи должны быть разделены запятой без пробела, например:

```
ics_event_files = /home/username/.config/vdirsyncer/data/events_personal.ics,/home/username/.config/vdirsyncer/data/events_work.ics
```

Запустите `cata`, и вы увидите синхронизированные задачи и события. Если ничего не появилось, значит, произошла ошибка. Дважды проверьте все и посмотрите файл info.log в папке конфигурации.

#### Пока не поддерживается <a href="#not-supported-yet" id="not-supported-yet"></a>

* Время окончания (отображается только время начала)
* Цвета (на данный момент элементы раскрашены в соответствии с цветами в конфиге, но вы можете установить их такими же, как в вашем облаке)
* Редактирование (задачи и события из .ics только отображаются, но редактировать их пока нельзя)

#### Поиск неисправностей <a href="#troubleshooting" id="troubleshooting"></a>

[На этой странице](https://anufrievroman.gitbook.io/calcure/troubleshooting#syncing-and-displaying-.ics-files) представлены типичные проблемы и решения.
