web-dev-qa-db-ja.com

カレンダーにエントリを追加するためのリンクを作成するにはどうすればよいですか?

私はこのナイトクラブで働いており、現在彼らのためにウェブサイトを作っています。彼らはたくさんのイベントを持ち、彼らのサイトはイベントの周りにたくさん作られています、今日彼らはすべてのイベントのFacebookイベントを作りますが、 iCalまたはGoogleカレンダー(またはOutlook)に追加した[カレンダーに追加]ボタン。

カレンダーフィードの作成方法を理解できましたが、新しいカレンダーとして追加されます。良いことは、人々が「イベントをサブスクライブ」できることですが、すべてのイベントにカレンダーを用意するのは非常に面倒です。そこで、メインカレンダーに簡単に追加できる機能を実装する方法を知りたいと思います。 mailto:リンクのように考えますが、可能であればカレンダー用です。

また、FacebookからイベントをWordPressに自動的にインポートするか、WordPressからFacebookにイベントをエクスポートすることができるか素晴らしいでしょうが、それはそれほど重要ではありません。

60
Hultner

UPDATE(個人使用は無料):
HTTPS ISサポート中

以下の各サービスの詳細な方法での答えは機能しますが、IMOでは AddThisEvent [https://addthisevent.com] のようなサードパーティを使用する方がはるかに簡単になりました。 Facebookなどに追加するだけでなく、多くのオプションをカスタマイズできます。 残念なことに、彼らは今では個人的な使用以外の有料サービスにし、これを強制しています

このようなサードパーティのソリューションは他にもあると思いますが、私はこれにしか話せず、これまでのところうまくいきました。


Googleカレンダーに追加」の場合、以前は使用できるコードジェネレーターフォームがありましたが、その後は廃止されました。 Googleカレンダーリンクの詳細については、 以下のsquarecandyの回答 をご覧ください。

Outlookの場合、BITはより複雑ですが、基本的にはイベントのデータを使用して.vcsファイルを作成し、リンクを作成する必要がありますそのファイルに。 ステップバイステップの手順はこちら

iCalリンクの場合、PHP class like this one を使用できます。または このページの手順 に従ってicsファイル(iCalファイル)を作成します。

47
Dave

Daveの投稿のリンクは素晴らしいです。 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>

パラメータは次のとおりです。

  • action = TEMPLATE(必須)
  • テキスト(イベントのURLエンコードされた名前)
  • 日付(ISO日付形式、開始日/終了日-開始時刻と終了時刻の両方が必要-ボタンジェネレーターは終了時刻を空白のままにすることができますが、1つは必要です。それがないと機能しません。)
    • ユーザーのタイムゾーンを使用するには:20131208T160000/20131208T180000
    • グローバル時間を使用するには、UTCに変換してから20131208T160000Z/20131208T180000Zを使用します
    • 終日イベントには、20131208/20131209を使用できます-ボタンジェネレーターが間違っていることに注意してください。次の日付を1日終日イベントの終了日として使用するか、終了日を希望する日まで+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日付形式、startdate/enddate-mustには開始時刻と終了時刻の両方が必要です)
    • 開始/終了時間付きのイベント:20131208T160000/20131208T180000
    • 終日イベント、20131208/20131209-終了日は、終了日を希望する日から+ 1日する必要がありますすることが
  • ctz( timezone (America/New_Yorkなど)-ユーザーのデフォルトのタイムゾーンを使用する場合は空白のままにします。ほとんどすべての状況でこれを含めることを強くお勧めします。たとえば、ビデオ会議のリマインダー:タイムゾーンはこのリンクをクリックし、火曜日の午前10時に「自分の」火曜日にリマインダーを設定しました。これはうまくいきません。)
  • 詳細(URLエンコードされたイベントの説明/詳細)
  • 場所(イベントのURLエンコードされた場所-Googleマップで簡単に読み取れるアドレスであることを確認してください)
  • 追加(電子メールのコンマ区切りリスト-新しいイベントにゲストを追加)

ノート:

  • 上記の古いurl構造はここでリダイレクトします
  • httpsをサポート
  • タイムゾーンの良い取引
  • +に加えて、スペースに%20を受け入れます(PHPのurlencode vs rawurlencode-両方とも機能します)
74
squarecandy

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>

テストする

サードパーティなしでそれを行うことは、たとえばメールでそれを使用するなど、多くの利点を保持します。

10
Email

イベントを追加する目的に役立つカレンダーに追加サービスです

  1. アップルカレンダー
  2. Googleカレンダー
  3. 見通し
  4. Outlook Online
  5. Yahoo!カレンダー

Webサイトやカレンダーのイベントの「Add to Calendar」ボタンは、インストールが簡単で、言語に依存せず、タイムゾーンと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>

enter image description here

8
jGupta

プログラムでカレンダーの.ics(iCal)バージョンを作成してから、この.icsをGoogle、Outlookなどの任意のカレンダープログラムにインポートできます。

私はこの投稿がかなり古いことを知っているので、コードを入力する必要はありません。しかし、これを行う方法の概要を提供してほしい場合は、これについてコメントしてください。

0
fishcx

あなたが言うように、あなたのイベントカレンダーへのサブスクリプションの利点は、あなたが日付/時間/情報を変更できることであり、それらはあなたのサブスクライバーに反映されるべきです。予定ではなく、イベントごとに個別のカレンダーを作成するのはなぜですか?

GoogleカレンダーとFacebookのAPIに精通していますか?

最後の質問については、WordpressとFacebookで2つの別個のイベントフィードを維持するつもりですか?Facebookからフィードを取得するWordpress。 Facebookに公開し、Wordpressフィード?

0
oblig

本当にシンプルなものを探しているなら、このウィジェットを使用できます http://addthisevent.com/ 。本当にうまく機能し、実装も簡単です。私はこれが古いことを知っていますが、誰かが探している場合だけです。

0
user1063135