2011-07-18 12 views
6

iCalでカレンダーイベントを作成するPHPスクリプトを作成しようとしています。私はこことGoogleで検索し、iCalのイベントをPHP製のカレンダーにインポートすることについての結果しか出てこない。これは私が必要とするものの反対です。PHPでiCalカレンダーイベントを作成する

出発点がないため、私はコードを含めません。私はどこから始めるべきですか?

+0

これを試してみてください、あなたはiCalの、アップルのカレンダーアプリケーション、またはiCalendar形式、ファイルフォーマットを意味していますか? (とはいえ、前者を解決するにはおそらく後者が関わってくるだろう...) –

+0

清算の質問をありがとう。 iCal(Appleカレンダー)イベントを作成する必要があります。 – Shattuck

+0

githubでこのlibが見つかりました:https://github.com/markuspoerschke/iCal –

答えて

3

数年前、私はiCalendarライブラリを作成し始めました。 PHP 5はなく、そこには多くの機能はありませんが、かなりのアルファ段階です(と私は実際にそれをあきらめました):

  • 私は持っています

      を:iCalendar形式のRFCをモデリングに入る多くのコード(あなたがそれに見たいと思うかもしれません)
    • それはプログラムでイベントを作成し、吐き出すする機能を持っているiCal形式

    はそれが役に立てば幸い

  • project page
  • 唯一usage example
+0

それは見るのに役立つだろう。回答いただきありがとうございます。 – Shattuck

+0

このスタートは私が探していたものです。ありがとうございます – Shattuck

2

ここから開始します。これは、icalendarイベントのファイル形式を提供します。あなたは、カスタムデータを出力するため、このようなファイルをPHPを使用することができます。私は、過去のプロジェクトのための基準点として、これを使用しました

http://en.wikipedia.org/wiki/ICalendar

+0

スタート地点ありがとうございました。これは多くの助けになります。 – Shattuck

2

https://gist.github.com/jakebellacera/635416から)

<? 
// 1. Set the correct headers for this file 
header('Content-type: text/calendar; charset=utf-8'); 
header('Content-Disposition: attachment; filename=' . $filename); 

// 2. Define helper functions 

// Converts a unix timestamp to an ics-friendly format 
// NOTE: "Z" means that this timestamp is a UTC timestamp. If you need 
// to set a locale, remove the "\Z" and modify DTEND, DTSTAMP and DTSTART 
// with TZID properties (see RFC 5545 section 3.3.5 for info) 
// 
// Also note that we are using "H" instead of "g" because iCalendar's Time format 
// requires 24-hour time (see RFC 5545 section 3.3.12 for info). 
function dateToCal($timestamp) { 
    return date('Ymd\THis\Z', $timestamp); 
} 

// Escapes a string of characters 
function escapeString($string) { 
    return preg_replace('/([\,;])/','\\\$1', $string); 
} 

// 3. Echo out the ics file's contents 
?> 
BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//hacksw/handcal//NONSGML v1.0//EN 
CALSCALE:GREGORIAN 
BEGIN:VEVENT 
DTEND:<?= dateToCal($dateend) ?> 
UID:<?= uniqid() ?> 
DTSTAMP:<?= dateToCal(time()) ?> 
LOCATION:<?= escapeString($address) ?> 
DESCRIPTION:<?= escapeString($description) ?> 
URL;VALUE=URI:<?= escapeString($uri) ?> 
SUMMARY:<?= escapeString($summary) ?> 
DTSTART:<?= dateToCal($datestart) ?> 
END:VEVENT 
END:VCALENDAR 
+0

DESCRIPTIONフィールドを埋める方法はRFCに準拠しておらず、動作しません。 – datayeah

関連する問題