Как создать ссылку на событие Календаря Google?
Если у меня есть идентификатор события в Календаре Google, например:
4htgpmm1hmak744r0kbkdcodar@google.com
Как создать URL-адрес для просмотра сведений о событии в интерфейсе Календаря Google?
Например, если я захожу на событие календаря Google, я вижу URL-адрес, такой как этот:
Из какой функции / алгоритма можно запустить 4htgpmm1hmak744r0kbkdcodar@google.com
в NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw
?
Бонус: бонус был бы, если бы существовал также ярлык, который работал на CalendarEvent через Google Apps Script. Например, если был такой метод, как getUrl()
так же, как есть метод getId().
3 ответа
Поскольку одно и то же событие может существовать в нескольких календарях (например, путем приглашения к нему других), идентификатор события не является достаточной информацией.
Для создания URL-адреса вам понадобится как идентификатор события ( уточните, как его найти), так и идентификатор календаря (инструкции по его поиску см. Ниже). Затем вам нужно будет закодировать оба как base64, и, наконец, у вас будет действительная ссылка на событие Календаря Google.
Для следующих инструкций представьте, что у нас есть событие Event1, и оно существует в обоих календарях, CalendarA и CalendarB.
В интерфейсе Календаря Google вы сможете просматривать любую из следующих комбинаций:
- Событие1 в Календаре
- Event1 в CalendarB
Давайте назначим следующие идентификаторы:
- Идентификатор события 1: 4htgpmm1hmak744r0kbkdcodar@google.com
- CalendarA ID: eugu9kan1ddi1pmi6sk3ib56g@group.calendar.google.com
- CalendarB ID: afd3zeuguoepmi32s5i56g@group.calendar.google.com
Чтобы создать URL-адрес события:
Получить
event-id
, который является идентификатором события без@google.com
Например, для Event1 мы имеем
4htgpmm1hmak744r0kbkdcodar
Получить
calendar-id
, который является идентификатором календаря с@group.calendar.google.com
заменено на@g
Например, для календаря у нас есть
eugu9kan1ddi1pmi6sk3ib56g@g
Соедините два значения с пробелом в середине.
<event-id> <calendar-id>
Например, для Event1 + CalendarA мы имеем:
4htgpmm1hmak744r0kbkdcodar eugu9kan1ddi1pmi6sk3ib56g@g
Кодируйте значение как base64 (например, на https://www.base64decode.org/):
NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw
Теперь вы можете добавить это значение к
https://calendar.google.com/calendar/r/eventedit/
https://calendar.google.com/calendar/r/eventedit/NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw
Вы сделали! Этот URL приведет вас к событию календаря в интерфейсе Google.
Как найти идентификатор календаря
Если вам нужны инструкции, как найти идентификатор календаря...
Чтобы найти идентификатор календаря:
- Перейти в настройки календаря
Прокрутите вниз, пока не найдете поле идентификатора календаря.
Это может быть значение, которое заканчивается
@group.calendar.google.com
, ваш адрес электронной почты или другое значение.
Если вы не можете найти идентификатор календаря, другой инструмент, который может помочь, - это добавить eventdeb=1
параметр URL-адреса, перейдите к информации об устранении неполадок события, а затем найдите либо organizer
или же participant
значения, оба из которых содержат идентификаторы календаря.
@Senseful had был очень полезным ответом, и он работает!
Несколько важных моментов, которые следует отметить в дополнение к вышесказанному. Во-первых, при кодировании base64 вы получите == в конце, удалите это
Во-вторых, URL-адрес базового календаря не будет работать, если календарь, к которому относится событие, не принадлежит основной учетной записи, с которой пользователь вошел в систему. Например, если вы вошли в 3 учетные записи, у вас будет свой URL-адрес для каждой, например
https://calendar.google.com/calendar/r/...
https://calendar.google.com/calendar/b/2/r/...
https://calendar.google.com/calendar/b/3/r/...
и так далее... Я не думаю, что есть решение, которое поможет в этой ситуации, так как невозможно предсказать, в какие учетные записи входит конкретный пользователь в любое время.
Если ваш идентификатор календаря4htgpmm1hmak744r0kbkdcodar@google.com
, то вы можете создать ссылку, напримерhttps://calendar.google.com/u/0/r/eventedit?src=4htgpmm1hmak744r0kbkdcodar@google.com