Как создать ссылку для добавления записи в календарь? - PullRequest
59 голосов
/ 29 апреля 2011

Я работаю в этом ночном клубе и в настоящее время создаю для них веб-сайт, у них много мероприятий, и их сайт много строится вокруг событий, сегодня они устраивают события в Facebook для каждого мероприятия, но это будет убийственно для есть кнопка «Добавить в мой календарь», которая добавила его в календарь iCal или Google (или даже в Outlook).

Мне удалось выяснить, как сделать фид календаря, но затем он будет добавлен в качестве нового календаря, только хорошо, что люди могут «подписаться на события», но довольно грязно иметь календарь для каждого события , Поэтому я хотел бы знать, как реализовать функцию, которая позволяет им легко добавлять ее в основной календарь. Думайте как ссылка mailto: но для календарей, если это возможно.

Кроме того, пока я в теме, если кто-нибудь знает, возможно ли автоматически импортировать событие из Facebook в WordPress или экспортировать событие из WordPress в Facebook, что было бы здорово, но это не так важно.

Ответы [ 7 ]

70 голосов
/ 09 ноября 2013

Ссылки в посте Дэйва великолепны. Просто добавьте несколько технических деталей о ссылках Google в ответ здесь на SO:

Ссылка на Календарь Google

<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>

параметры:

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

Обновление за февраль 2018 года:

Вот новая структура ссылок, которая, кажется, поддерживает новую версию Google Calendar без необходимости взаимодействия с 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)
  • add (список писем через запятую - добавляет гостей на новое мероприятие)

Примечания:

  • старая структура URL выше теперь перенаправляет сюда
  • поддерживает https
  • лучше работает с часовыми поясами
  • принимает + для пробела в дополнение к %20 (urlencode против rawurlencode в php - оба работают)
45 голосов
/ 29 апреля 2011

ОБНОВЛЕНИЕ (бесплатно для личного использования):
HTTPS СЕЙЧАС ПОДДЕРЖИВАЕТСЯ

Хотя мой ответ ниже с подробным описанием инструкций для каждой службы будет работать, IMO теперь намного прощепойти со сторонним, как AddThisEvent [https://addthisevent.com]. Это позволяет настраивать множество параметров, а также добавлять в Facebook и многое другое. К сожалению, теперь они сделали это платной услугой для чего-либо, кроме личного использования, и применяют ее на практике.

Я предполагаю, что есть и другие сторонние решения, подобные этому, но я могуГоворите только с этим, и это отлично сработало для нас.


Для " Добавить в мой Календарь Google " у них был генератор кода, который вымог бы использовать, но с тех пор снял его.Подробнее о ссылках на Календарь Google см. ответ squarecandy ниже .

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

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

10 голосов
/ 05 ноября 2015

Чтобы добавить вклад в календарь Google Squarecandy, вот новый формат

OUTLOOK CALENDAR (без необходимости создавать .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 формат

<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>

проверить это

Например, если у вас нет третьей стороны, у вас есть много преимуществиспользуя его в письмах.

8 голосов
/ 31 декабря 2015

Вот Добавить в календарь сервис, который служит для добавления события в

  1. Apple Calendar
  2. Календарь Google
  3. Прогноз
  4. Outlook Online
  5. Yahoo! Календарь

Кнопка " Добавить в календарь " для событий на веб-сайтах и ​​календарях проста в установке, не зависит от языка, совместима с часовым поясом и DST. Он отлично работает во всех современных браузерах, планшетах и ​​мобильных устройствах, а также с 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>

enter image description here

1 голос
/ 25 июля 2012

Вы можете заставить программу создавать версию календаря в формате .ics (iCal), а затем импортировать этот файл .ics в любую программу-календарь, которую вы хотите: Google, Outlook и т. Д.Этот пост довольно старый, поэтому я не буду беспокоиться о вводе кода.Но, пожалуйста, прокомментируйте это, если вы хотите, чтобы я рассказал о том, как это сделать.

0 голосов
/ 07 ноября 2013

Если вы ищете что-то действительно простое, вы можете использовать этот виджет http://addthisevent.com/. Он действительно хорошо работает и прост в реализации. Я знаю, что это старо, но только если кто-то смотрит.

0 голосов
/ 29 апреля 2011

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

Вы знакомы с API для Календаря Google и Facebook?

Что касается последнего вопроса, намереваетесь ли вы сохранить дваотдельные ленты событий на Wordpress и Facebook?Вы могли бы иметь Wordpress, получающий канал от Facebook.Может быть, какая-то CMS для событий, которая публикуется в Facebook, а затем обновляет ленту Wordpress?

...