Как синхронизировать календари Yandex и Google?
У меня личный календарь в Google, корпоративный в Yandex.
Подскажите как их синхронизировать, желательно, чтобы в итоге я все события видел в Google календаре.
Я пробовал экспорт ical или caldav из Yandex и импорт в Google, но
1. Добавляются только созданные мной встречи, я не вижу встречи на которые меня пригласили, даже если я их подтвердил. А это очень важно для меня.
2. Было бы круто иметь возможность и наоборот, создавать в Google встречи, которые бы в яндексе блокировали возможность занять тот же тайм-слот.
Есть ли какие-то решения?
- Вопрос задан 25 апр. 2023
- 2560 просмотров
2 комментария
Средний 2 комментария
OP Insights
Инструкция как синхронизировать Microsoft Outlook и календарь Яндекс или Google
Как настроить синхронизацию между Microsoft Outlook и Яндекс.Календарем?
3 minute read
С недавнего времени начал много пользоваться почтой на Яндексе (почта для домена или Яндекс.Коннект). Неприятным сюрпризом стало то, что, хотя почта работает по imap, но Microsoft Outlook при подключении аккаунта в Яндекс не позволяет синхронизировать календарь и контакты. Так как только почта без календаря теряет очень много своей ценности не только для меня, то после поисков и изучения вопроса, решил описать найденное решение.
В чем корень проблемы
- MS Outlook ориентирован на бизнес пользователей, у которых как правило свой почтовый сервер и, обычно, это именно Exchange
- Большая часть ПО нормально работает именно с CalDAV: iOS, Android, Mozilla Thunderbird (с плагином) и т.д.
- Онлайн календари — намного менее востребованный сервис, по сравнению с почтой, и поэтому актуальность проблемы стандартизации ниже
Рабочее решение
В общем виде, решение заключается в установке в Outlook плагина для синхронизации локального календаря с онлайн календарем.
Из нескольких опробованных вариантов, мне больше всего понравились два:
- CalDAV Synchronizer
- Простенькое расширение, синхронизирует только календарь
- Можно синхронизировать разные календари
- Легкая настройка. Можно выбрать простую настройку из списка популярных онлайн календарей, включая Google и Яндекс
- Бесплатно и работает без ограничений
- Открытый код и 300+ звезд на GitHub (для тех, кто не в курсе, это уже приличный показатель популярности)
- Более комплексная надстройка, которая также позволяет синхронизировать контакты
- Настройка сложнее, так как Яндекса в списке CalDAV провайдеров нет (нужно идти самому искать правильный путь к онлайн-календарю)
- Для работы необходима лицензия. Персональная домашняя лицензия бесплатна, но требует ежегодного обновления.
- Есть исходный код для CalDAV библиотеки, на основе которой работает надстройка
- Кажется менее популярным, чем CalDAV Synchronizer
Альтернативные (неоптимальные) решения
- Экспорт календаря Google. В календаре Google возможно указать публичную ссылку для календаря в формате, который понимает Outlook. Но у данного решения есть ряд минусов:
- MS Outlook подключает календарь только в режиме “read only”
- Нет возможности настроить права, кто угодно у кого есть ссылка, сможет прочитать содержимое календаря
- Вместо того, чтобы синхронизировать уже существующий локальный календарь с онлайн сервисом, надстройка добавляет новый локальный календарь под каждый сервис и синхронизирует уже его
- Стоит 28 евро на фоне бесплатных альтернатив
- Не сильно рассматривал вариант, так как, даже если отбросить вопрос привычки и удобства, то остается вопрос (не-)переносимости своих vba-макросов и надстроек (можно назвать это vendor lock’ом)
Заключение
На самом деле задача синхронизации Outlook и внешних провайдеров достаточно тривиальна. Предположу, что есть и другие удобные альтернативы, но описанные выше варианты показались мне достаточными. Если вы знаете более удобные способы или решения, то пишите в комментарии.
Licensed under CC BY-NC-SA 4.0
Caldav yandex что это
Получаю: The remote server returned an error: (501) Not Implemented.
Что как бы намекает, что яндекс не позволяет создавать календари(но это не точно, т.к. инфы на сайте нет подробной).Если же использовать современный подход:
using var client = new HttpClient(); var login = Convert.ToBase64String(Encoding.ASCII.GetBytes("login:password")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", login); HttpRequestMessage message = new HttpRequestMessage(new HttpMethod("MKCALENDAR"), "https://caldav.yandex.ru/calendars/login@yandex.ru/events-cal1") < Content = new StringContent(data, Encoding.UTF8, "application/xml") >; message.Headers.Authorization = new AuthenticationHeaderValue("Basic", login); using var response = await client.SendAsync(message); // UPDATE 4: заменил это на это using var response = await client.SendAsync(message, HttpCompletionOption.ResponseContentRead, CancellationToken.None); // HttpCompletionOption.ResponseContentRead (. ) response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync();
получаю: Response status code does not indicate success: 500 (Server Error).
Где я ошибся?
Сам календарь формирую при помощи Ical.Net
Сами события нормально считываются обычным client.GetAsync.
за основу взял примерUPDATE 1: OPTIONS запрос возвращает в том числе и MKCALENDAR
UPDATE 2: Нашел вот эту штуку https://github.com/ProximoSrl/CalDav. она создает календарь(видно в веб-интерфейсе),
но список «calendar-collection-set» методом «propfind» не выдает(ошибка BadRequest).
Внезапно! по get на адрес https://caldav.yandex.ru/calendars/login@yandex.ru/ получил урлы календарей!UPDATE 3:
опытным путем выяснилось, что урл для создания календаря должен быть «https://caldav.yandex.ru/calendars/login@yandex.ru/me»
при этом нельзя в теле ничего отправлять, только метод, логин и запрос. в ответ пусто. ни айди, ничего.
при этом список вот такой календарей/calendars/login%40yandex.ru/inbox/
/calendars/login%40yandex.ru/outbox/
/calendars/login%40yandex.ru/events-27127/
/calendars/login%40yandex.ru/events-8486495/
/calendars/login%40yandex.ru/events-8486446/
/calendars/login%40yandex.ru/events-8486467/
/calendars/login%40yandex.ru/events-8486476/
/calendars/login%40yandex.ru/events-8486479/
/calendars/login%40yandex.ru/events-8486741/
/calendars/login%40yandex.ru/events-8486744/
/calendars/login%40yandex.ru/events-8486874/
/calendars/login%40yandex.ru/events-8486886/
/calendars/login%40yandex.ru/events-8486956/
/calendars/login%40yandex.ru/todos-86503/можно конечно сортировать по events-.
но только если обеспечить эксклюзивный доступ.
что странно, то ли яндекс такой неправильный. по rfc caldav должен через xml-пропсы взаимодействовать.Нашел способ создавать напоминания на iPhone при помощи Алисы от Яндекс
В закладки
Пока компания Apple игнорировала российский рынок голосовых ассистентов, я, как и многие другие любители гаджетов, заполнил пустующую нишу лучшим на данный момент решением. Алиса от Яндекс предлагает просто огромный набор фишек и возможностей, на две головы превосходя других конкурентов в лице Mail.ru и Сбера. О локализации Siri не хочется и вспоминать.
В итоге связка “экосистема Apple + колонка с Алисой” является довольно распространенным сетапом в России. К сожалению, обе системы имеют крайне мало точек соприкосновения и практически не взаимодействуют друг с другом.
Мне бы очень хотелось, например, устанавливать будильник голосом при помощи Алисы и получать настроенный на нужное время сигнал на смартфоне. Либо производить какие-то записи на iPhone с возможностью прослушивать и дополнять их через колонку. Ну или создавать и пополнять голосом список дел/задач/покупок, а затем удобно находить его на смартфоне.
В итоге я нашел возможность решить последнюю из задач для удобного создания заметок и списков. Сценарий крайне простой, но реализуется он не самым очевидным способом.
Немного критики в сторону Яндекс
Ребятам из Яндекс нужно обратить внимание на некоторые сервисы и приложения. Так при наличии довольно функционального и удобного голосового ассистента имеется никудышная система управления делами, заметками и напоминаниями. Изначально все сохраняемые данные через Алису попадают в сервис Яндекс.Календарь.
Часть записей оседают там в качестве событий, некоторые переносятся в список дел и особняком стоят напоминания, для которых задана дата срабатывания. Все это крайне криво связано между собой, одни элементы сложно найти в веб-версии сервиса, другие спрятаны глубоко внутри мобильного приложения Яндекс.
Неужели кто-то всерьез может рассчитывать на ведение дел в такой криво собранной и странно работающей системе? К ней довольно сложно получить доступ извне, её нельзя полноценно интегрировать с другими системами, даже через родной голосовой ассистент не всегда получается добиться нужного результата.
На данный момент только одну из частей календаря Яндекс можно удобно использовать на iPhone. В будущем хотелось бы видеть отдельное приложение для iOS с интеграцией всех фишек сервиса либо простую возможность сгружать данные в другие утилиты.
Как настроить пароли для приложений в параметрах Яндекс
Сделать это необходимо для интеграции календаря и напоминаний Яндекс с одноименными приложениями на iPhone.
▶ Откройте раздел Пароли и авторизация.
▶ Включите опцию Пароли приложений и сгенерируйте новый код для приложения Календарь. Обязательно сохраните полученный код до окончания настройки или не закрывайте страницу с паролем. Заново просмотреть созданный код не получится, придется генерировать новый.
▶ Создайте отдельные пароли для каждого используемого почтового приложения. Коды авторизации должны быть созданы для любого почтового клиента, который используется на смартфоне или компьютере.
После включения опции Пароли приложений авторизоваться в почте Яндекс при помощи вашего пароля получится только через браузер. Каждое приложение потребует отдельный созданный код. Если пользуетесь почтой Яндекс в почтовике на iPhone и Mac, кроме нового кода для синхронизации создайте отдельные коды для каждого из приложений.
Когда коды будут созданы, можно переходить к настройке синхронизации сервисов.
Как настроить iPhone для синхронизации напоминаний и календаря Яндекс
◈ На iPhone перейдите в Настройки – Календарь – Учетные записи.
◈ Нажмите на кнопку Учетные записи и выберите пункт Другое.
◈ Выберите Учетная запись CalDAV в разделе Календари.
◈ Заполните параметры следующим образом:
Сервер: caldav.yandex.ru
Пользователь: ваш_логин@yandex.ru
Пароль: созданный пароль для приложения, который вы получили ранее.◈ Нажмите Далее и дождитесь сохранения данных.
Если сохранение происходит с ошибкой, можете ввести дополнительные параметры учетной записи:
Использовать SSL: Да
Порт: 443
URL учетной записи: https://caldav.yandex.ru/principals/users/ваш_логин@yandex.ru/◈ Активируйте синхронизацию Календаря и Напоминаний для созданной учетной записи.
Теперь созданные в веб-версии сервиса Яндекс.Календарь, на другом устройстве или через голосовой ассистент Алиса события и напоминания будут попадать на ваш iPhone. Будет работать и синхронизация в обратном направлении.
Как теперь всем этим пользоваться
Если все сделали верно, можно создавать напоминания и записи календаря через любую колонку с Алисой и они через мгновение попадут на ваш iPhone.
На 100% работающей фразы для создания записей календаря с напоминанием у меня найти не получилось. Иногда события верно создаются на правильную дату, но без активного напоминания, а иногда дату события используют вместо даты напоминания.
Зато отлично работает перенос напоминаний. Просто говорим Алисе “Напомни купить хлеб завтра” или “Добавь молоко в список покупок” получаем одноименные записи в стандартном приложении Напоминания на iPhone.
Теперь можно формировать список задач или покупок через колонку с Алисой и получать их на любом своем гаджете Apple.