캘린더에 항목을 추가하기위한 링크를 어떻게 만듭니 까?


85

저는이 나이트 클럽에서 일하고 있으며 현재 그들을위한 웹 사이트를 만들고 있습니다. 그들은 많은 이벤트를 가지고 있고 그들의 사이트는 이벤트를 중심으로 많이 구축되어 있습니다. 오늘날 그들은 모든 이벤트의 페이스 북 이벤트를 만들지 만 " 내 캘린더에 추가 "버튼을 클릭하여 iCal 또는 Google 캘린더 (또는 Outlook)에 추가했습니다.

나는 캘린더 피드를 만드는 방법을 알아 냈지만 새로운 캘린더로 추가 될 것입니다. 좋은 점은 사람들이 "이벤트를 구독"할 수 있다는 것입니다.하지만 모든 이벤트에 대해 캘린더를 가지고 있다는 것은 꽤 지저분합니다. 그래서 메인 캘린더에 쉽게 추가 할 수있는 기능을 구현하는 방법을 알고 싶습니다. mailto : link처럼 생각하되 가능하다면 캘린더 용으로 사용하세요.

또한 내가 주제를 다루는 동안 Facebook에서 WordPress로 이벤트를 자동으로 가져 오거나 WordPress에서 Facebook으로 이벤트를 내보낼 수 있는지 여부를 아는 사람이 있습니까?하지만 그다지 중요하지 않습니다.


답변:


53

업데이트 (개인용 무료) : 이제
HTTPS가 지원됩니다.

각 서비스에 대한 방법을 자세히 설명하는 아래의 답변은 작동하지만 IMO는 이제 AddThisEvent [https://addthisevent.com] 와 같은 타사를 사용하는 것이 훨씬 쉽습니다 . 다양한 옵션을 사용자 정의하고 Facebook 등에 추가 할 수 있습니다. 불행히도, 그들은 이제 개인 용도 이외의 다른 용도로 유료 서비스로 만들고이를 시행합니다.

나는 이와 같은 다른 타사 솔루션이 있다고 가정하지만이 솔루션에 대해서만 말할 수 있으며 지금까지 우리에게 훌륭하게 작동했습니다.


" 내 Google 캘린더에 추가 "의 경우 사용할 수있는 코드 생성기 양식이 있었지만 그 이후로 삭제되었습니다. Google 캘린더 링크에 대한 자세한 내용은 아래 squarecandy의 답변을 참조하십시오 .

대한 전망 , 그것은 조금 더 복잡하지만 기본적으로는 만들 필요가 .vcs이벤트의 데이터 파일을, 그냥 그 파일에 대한 링크를 확인하십시오. 여기에서 단계별 안내를 참조하세요 .

를 들어 iCal의 링크, 당신은 PHP 클래스를 사용할 수 이것처럼 , 또는에 따라 이 페이지의 지시 만드는 방법에 대한 ics파일 (iCal의 파일).


13
감사합니다. mailto : for email과 같은 보편적 인 표준이 없습니다.
Hultner 2011

Google의 "이벤트 게시자 안내서"페이지에서 더 이상 URL 생성 양식을 제공하지 않는 것 같습니다 (불행히도 Google 문서의 특성상 계속 변경됨). @squarecandy의 URL 형식은 여전히 ​​잘 작동합니다 (적어도 Google 캘린더의 경우).
chbrown

글쎄, 그들 자신의 양식은 작동하는 링크도 생성하지 않았기 때문에 아마도 그들이 그것을 내려 놓은 이유 일 것입니다. :)
squarecandy 2015

94

Dave의 게시물에있는 링크는 훌륭합니다. Google 링크에 대한 몇 가지 기술적 세부 사항을 여기에 대한 답변에 넣으십시오.

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>

매개 변수는 다음과 같습니다.

  • action = TEMPLATE (필수)
  • 텍스트 (URL 인코딩 된 이벤트 이름)
  • 날짜 (ISO 날짜 형식, 시작 날짜 / 종료 날짜-시작 시간과 종료 시간이 모두 있어야합니다. 버튼 생성기는 종료 시간을 비워 둘 수 있지만 하나가 있어야 작동하지 않습니다.)
    • 사용자의 시간대를 사용하려면 : 20131208T160000 / 20131208T180000
    • 글로벌 시간을 사용하려면 UTC로 변환 한 다음 20131208T160000Z / 20131208T180000Z 를 사용 하십시오.
    • 하루 종일 이벤트에서 20131208/20131209 를 사용할 수 있습니다 . 버튼 생성기가 잘못 인식합니다. 하루 종일 이벤트의 종료 날짜로 다음 날짜를 사용하거나 원하는 종료 날짜에 +1 일을 사용해야합니다.
  • 세부 정보 (URL 인코딩 이벤트 설명 / 세부 정보)
  • 위치 (URL 인코딩 된 이벤트 위치-Google지도에서 쉽게 읽을 수있는 주소인지 확인)

2018 년 2 월 업데이트 :

다음은 API 상호 작용이 필요하지 않은 Google 캘린더의 새 Google 버전을 지원하는 것으로 보이는 새로운 링크 구조입니다.

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
    • 하루 종일 이벤트, 당신은 사용할 수 있습니다 20,131,209분의 20,131,208 - 종료일은 종료일이 원하는 무엇이든에 일일해야합니다 .
  • ctz ( America / New_York와 같은 시간대 -사용자의 기본 시간대를 사용하려면 공백으로 두십시오. 거의 모든 상황에이를 포함하는 것이 좋습니다. 예를 들어 화상 회의에 대한 알림 : 서로 다른 시간대에있는 세 사람이이 링크를 클릭하고 화요일 오전 10시에 "자신의" "자신"을 상기 시키십시오. 이것은 잘 풀리지 않을 것입니다.)
  • 세부 정보 (URL 인코딩 이벤트 설명 / 세부 정보)
  • 위치 (URL 인코딩 된 이벤트 위치-Google지도에서 쉽게 읽을 수있는 주소인지 확인)
  • 추가 (쉼표로 구분 된 이메일 목록-새 이벤트에 게스트 추가)

메모:

  • 위의 이전 URL 구조는 이제 여기로 리디렉션됩니다.
  • https 지원
  • 시간대가 더 나은 거래
  • 허용 +에 추가 공간 %20( urlencoderawurlencodePHP에서 - 둘 다 일)

2
관심이 있으시면
squarecandy

2
시간대 날짜와 ctz 매개 변수를 모두 지정하지 않는 한 시간대가 설정되지 않는다는 점도 주목할 가치가 있습니다. 여기에 더 많은 정보 : zaclee.net/php/...
재커리 Schuessler

@squarecandy 한 번에 여러 날짜를 설정하는 방법에 대한 아이디어가 있습니까? 예를 들어 화요일-목요일과 같은 범위가 있지만 캘린더에 3 개의 개별 이벤트로 표시하고 싶으십니까?
garek007

@ garek007 나는 그것이 가능하다고 생각하지 않습니다. 그것은 3 개의 다른 사건이어야 할 것입니다. Google 캘린더 "이벤트 추가"화면의 온라인 버전에서 할 수없는 작업이있는 경우이 기술을 사용할 수 없습니다. Google Calendar API를 사용하여 한 번에 3 개의 이벤트를 추가하는 방법을 알아낼 수 있지만 이는 단일 이벤트에 대한 "이벤트 추가"로 연결됩니다.
squarecandy 2018

@squarecandy 주최자도 업데이트하고 싶습니다.이 이벤트 만들기 링크에서 주최자 세부 정보를 추가 할 수있는 방법이 있습니까?
Nikunj Undhad

12

squarecandy의 Google 캘린더 기여에 추가하려면 여기에 새로운

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

그것을 테스트

제 3 자없이 수행하면 이메일에서 사용하는 것과 같은 많은 이점이 있습니다.


7
Outlook 링크가 더 이상 작동하지 않는 것 같습니다. 위치를 추가하고 새 이벤트 양식을 표시하지만 다른 필드는 채우지 않습니다.
Steve

10
@Steve의 의견을 확장하기 위해 Outlook 링크가 더 이상 서버로 확인되지 않습니다. DNS 확인 오류가 발생합니다.
Owen Blacker

4
죄송합니다.이 답변이 유효하고 반대 투표를 받으려면 업데이트해야합니다.
webaholik

8

다음 은 이벤트를 추가하기위한 목적을 제공하는 캘린더에 추가 서비스입니다.

  1. 애플 캘린더
  2. 구글 캘린더
  3. 시야
  4. Outlook 온라인
  5. 야후! 달력

은 " 추가 일정에 웹 사이트와 달력에 이벤트에 대한"버튼을 언어 독립적, 시간대 및 DST 호환, 쉬운 설치하는 것입니다. 모든 최신 브라우저, 태블릿 및 모바일 장치와 Apple 캘린더, Google 캘린더, Outlook, Outlook.com 및 Yahoo 캘린더에서 완벽하게 작동합니다.

<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 라이센스입니다! 그러므로 이것은 확실히 나의 선택입니다. 링크 주셔서 감사합니다.
Arvid 2016

9
이것은 이제 addevent.com과 합병되었습니다
Separatrix

-4

프로그램이 캘린더의 .ics (iCal) 버전을 생성하도록 한 다음이 .ics를 Google, Outlook 등 원하는 캘린더 프로그램으로 가져올 수 있습니다.

이 게시물이 꽤 오래되었다는 것을 알고 있으므로 코드를 입력하지 않아도됩니다. 그러나이 작업을 수행하는 방법에 대한 개요를 제공하려면 이에 대해 언급하십시오.


7
Outlook, Gmail 및 iCal을 사용하여 정확히이 작업을 수행하려고 시도하는 경우이 코드의 예를 정말 감사하겠습니다
KidCache
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.