Як створити посилання для додавання запису до календаря?


85

Я працюю в цьому нічному клубі і зараз роблю для них веб-сайт, у них багато подій, і їхній сайт побудований багато навколо подій, сьогодні вони роблять facebook-подію для кожної події, але було б вбивцею мати " Додати до мого календаря ", яка додала його до вашого календаря iCal або Google (або, можливо, навіть до Outlook).

Мені вдалося зрозуміти, як зробити стрічку календаря, але тоді вона буде додана як новий календар, тільки добре, що люди можуть "підписатися на події", але досить брудно мати календар для кожної події. Тому я хотів би знати, як реалізувати функцію, яка дозволяє їм легко додавати її до свого основного календаря. Думайте як поштове повідомлення: посилання, але для календарів, якщо це можливо.

Крім того, поки я розмовляю з цим питанням, хтось знає, чи можливо автоматично імпортувати подію з Facebook у WordPress або експортувати подію з WordPress у Facebook, що було б чудово, але це не так важливо.


Відповіді:


53

ОНОВЛЕННЯ (безкоштовно для особистого користування):
HTTPS зараз підтримується

Хоча моя відповідь нижче, в якій детально описано, як працювати з кожною службою, ПРАЦЮЄ, ІМО зараз набагато простіше скористатися сторонніми розробниками, такими як AddThisEvent [https://addthisevent.com] . Це дозволяє вам налаштувати безліч варіантів, а також додати до Facebook та багато іншого. На жаль, зараз вони зробили це платною послугою для будь-чого іншого, крім особистого користування, і дотримуються цього.

Я припускаю, що існують інші сторонні рішення, подібні до цього, але я можу поговорити лише з цим, і це дотепер для нас чудово працювало.


Для " Додати до мого календаря Google " вони раніше мали форму генератора коду, яку ви могли використовувати, але з тих пір її зняли. Докладніше про посилання на Календар Google див. У відповіді на Squarecandy нижче .

Для Outlook це набагато складніше, але в основному вам потрібно створити .vcsфайл із даними події та просто зробити посилання на цей файл. Покрокова інструкція тут .

Для посилання iCal ви можете використовувати клас PHP, подібний до цього , або слідувати інструкціям на цій сторінці щодо створення icsфайлу (файл iCal).


13
Дякую, погано, що для цього не існує універсального стандарту, такого як mailto: для електронної пошти.
Hultner

Здається, сторінка Google "Посібник видавця подій" більше не пропонує таку форму для створення URL-адрес (це, на жаль, характер документації Google змінюється безперервно), але формат URL-адреси @ squarecandy все ще працює чудово (принаймні для Календаря Google)!
chbrown

Ну, їх власна форма навіть не генерувала посилань, які працювали, тому, мабуть, тому вони її зняли. :)
squarecandy

94

Посилання у дописі Дейва чудові. Просто щоб помістити кілька технічних деталей про посилання Google у відповідь тут на SO:

Посилання на Google Calendar

<a href="http://www.google.com/calendar/event?action=TEMPLATE&text=Example%20Event&dates=20131124T010000Z/20131124T020000Z&details=Event%20Details%20Here&location=123%20Main%20St%2C%20Example%2C%20NY">Add to gCal</a>

параметри:

  • дія = ШАБЛОН (потрібно)
  • текст (зашифрована за адресою назва події)
  • дати (формат дати ISO, дата початку / дата закінчення - повинен мати час початку та кінця - генератор кнопок дозволить вам залишити час закінчення порожнім, але ви повинні мати його, інакше він не буде працювати)
    • використовувати часовий пояс користувача: 20131208T160000 / 20131208T180000
    • щоб використати глобальний час, перетворіть на UTC, а потім використовуйте 20131208T160000Z / 20131208T180000Z
    • протягом усіх денних подій ви можете використовувати 20131208/20131209 - зауважте, що генератор кнопок помиляється. Ви повинні використовувати наступну дату як дату завершення одноденної цілоденної події або +1 день до будь-якої дати, якою ви хочете бути.
  • подробиці (url-закодований опис події / подробиці)
  • місцезнаходження (місце кодування місця події - переконайтеся, що це адреса, яку Google Maps легко читає)

Оновлення лютого 2018 року:

Ось нова структура посилань, яка, схоже, підтримує нову версію google календаря google без використання API-взаємодії:

https://calendar.google.com/calendar/r/eventedit?text=My+Custom+Event&dates=20180512T230000Z/20180513T030000Z&details=For+details,+link+here:+https://example.com/tickets-43251101208&location=Garage+Boston+-+20+Linden+Street+-+Allston,+MA+02134

Нова базова URL-адреса: https://calendar.google.com/calendar/r/eventedit

Нові параметри:

  • текст (назва події)
  • дати (формат дати ISO, дата початку / дата закінчення - повинні мати час початку та закінчення)
    • подія з часом початку / закінчення: 20131208T160000 / 20131208T180000
    • для подій протягом усього дня можна використовувати 20131208/20131209 - дата завершення має бути +1 днем ​​до будь-якої дати, якою ви хочете бути .
  • ctz ( часовий пояс, такий як America / New_York - залиште порожнім, щоб використовувати часовий пояс користувача за замовчуванням. Настійно рекомендується включати це майже у всіх ситуаціях. Наприклад, нагадування для відеоконференції: якщо троє людей у ​​різних часових поясах натиснули це посилання та встановили нагадування для їхнього "власного" вівторка о 10:00 ранку, це не вдасться.)
  • подробиці (url-закодований опис події / подробиці)
  • місцезнаходження (місце кодування місця події - переконайтеся, що це адреса, яку Google Maps легко читає)
  • додати (список електронних листів, розділених комами - додає гостей до вашої нової події)

Примітки:

  • стара структура URL-адреси вище перенаправляє сюди
  • підтримує https
  • пропозиції з часовими поясами краще
  • приймає +простір на додаток до %20( urlencodeпроти rawurlencodeв php - обидва працюють)

2
Якщо комусь цікаво, я створив php-функцію, яка створить такий тип посилання на календар Google: gist.github.com/squarecandy/26611bbcfc63f9c7e3a7dc45e9145133
squarecandy

2
Також варто зазначити, що часовий пояс для мене не встановлюється, якщо я не вкажу як дати часового поясу, так і параметр ctz. Більше інформації тут: zaclee.net/php/…
Zachary Schuessler

@squarecandy будь-яка ідея, як отримати це, щоб встановити кілька дат одночасно? Наприклад, якщо у вас такий діапазон, як вівторок - четвер, але ви хочете показати його в календарі як 3 окремі події?
garek007

@ garek007 Я не думаю, що це можливо. Це мали б бути три різні події. Якщо на онлайн-версії екрана "додати подію" календаря Google ви не можете виконати завдання, ви не можете використовувати для цього цей прийом. Можливо, ви могли б зрозуміти, як додати 3 події одночасно за допомогою API Календаря Google, але це просто посилання на "додати подію" для однієї події.
squarecandy

@squarecandy Я також хочу оновити органайзер, чи є спосіб, за допомогою якого я також можу додати деталі організатора, у цьому посиланні на створення події?
Нікундж Ундхад,

12

Щоб додати внесок до календаря Google у Squarecandy, ось абсолютно новий

Формат ПЕРЕГЛЯДНОГО КАЛЕНДАРУ (Без необхідності створювати .ics) !!

<a href="https://bay02.calendar.live.com/calendar/calendar.aspx?rru=addevent&dtstart=20151119T140000Z&dtend=20151119T160000Z&summary=Summary+of+the+event&location=Location+of+the+event&description=example+text.&allday=false&uid=">add to Outlook calendar</a>

перевірити це

Кращим буде url_encode кодування значень змінної, місця розташування та опису.

Задля знань,

Формат YAHOO CALENDAR

<a href="https://calendar.yahoo.com/?v=60&view=d&type=20&title=Summary+of+the+event&st=20151119T090000&et=20151119T110000&desc=example+text.%0A%0AThis+is+the+text+entered+in+the+event+description+field.&in_loc=Location+of+the+event&uid=">add to Yahoo calendar</a>

перевірити це

Робота без сторонньої сторони має багато переваг, наприклад, використання в електронних листах.


7
Схоже, посилання на Outlook насправді вже не працює. Він додає місце розташування та відкриває форму нової події, але не заповнює жодних інших полів.
Стів

10
Щоб розширити коментар @ Steve, посилання на Outlook більше навіть не переходить на сервер - я отримую помилку з роздільною здатністю DNS.
Owen Blacker

4
Вибачте, цю відповідь потрібно оновити, щоб вона була дійсною і проти неї.
webaholik

8

Ось служба Додати до календаря, яка служить для додавання події

  1. Календар Apple
  2. Календар Google
  3. Outlook
  4. Outlook Online
  5. Yahoo! Календар

Кнопку " Додати до календаря " для подій на веб-сайтах та календарях легко встановити, не залежить від мови, сумісний з часовим поясом та літнім часом. Це чудово працює у всіх сучасних браузерах, планшетах та мобільних пристроях, а також з Apple Calendar, Google Calendar, Outlook, Outlook.com та Yahoo Calendar.

<div title="Add to Calendar" class="addeventatc">
    Add to Calendar
    <span class="start">03/01/2018 08:00 AM</span>
    <span class="end">03/01/2018 10:00 AM</span>
    <span class="timezone">America/Los_Angeles</span>
    <span class="title">Summary of the event</span>
    <span class="description">Description of the event</span>
    <span class="location">Location of the event</span>
</div>

введіть тут опис зображення


1
Абсолютно чудово. Дуже схожий на addevent.com, але, на мою думку, ще більше варіантів стилізації, і це ліцензія MIT! Тому це, безумовно, мій вибір. Дякую за це посилання.
Арвід

9
Це тепер злилися з addevent.com
Сепаратрісний

-4

Ви можете доручити програмі створити .ics (iCal) версію календаря, а потім ви можете імпортувати цю .ics до будь-якої програми календаря, яку ви хочете: Google, Outlook тощо.

Я знаю, що ця публікація досить стара, тому я не буду турбуватися про введення коду. Але, будь ласка, прокоментуйте це, якщо ви хочете, щоб я розповів про те, як це зробити.


7
Я б дуже вдячний прикладу цього коду, якщо зможете, намагаючись зробити саме це за допомогою Outlook, Gmail та iCal
KidCache
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.