google calendarに終日イベントを追加する
基本的に他の人のソースのパクリ。
package sample.calendar; import java.net.URL; import com.google.gdata.client.calendar.CalendarService; import com.google.gdata.data.DateTime; import com.google.gdata.data.PlainTextConstruct; import com.google.gdata.data.calendar.CalendarEventEntry; import com.google.gdata.data.extensions.When; public class AllDayEventCreator { // Google アカウント private static String GOOGLE_ACCOUNT = "xxxxxxxxxx@gmail.com"; // Google アカウントのパスワード private static String GOOGLE_PASSWORD = "xxxxxxxxxx"; // 送信URL private static String GOOGLE_CAL_URL = "http://www.google.com/calendar/feeds/default/private/full"; /** * 終日のイベントを追加します。 * * @throws Exception */ public void insertAlldayData() throws Exception { URL postURL = new URL(GOOGLE_CAL_URL); // イベント登録クラス CalendarEventEntry calEntry = new CalendarEventEntry(); // タイトルを設定 calEntry.setTitle(new PlainTextConstruct("終日のテスト")); // 詳細を設定 calEntry.setContent(new PlainTextConstruct("詳細のサンプル")); DateTime startTime = new DateTime(); startTime.setTzShift(9); startTime = DateTime.parseDate("2009-11-27"); // 開始終了日時をWhen型オブジェクトに代入し、イベントクラスに追加 When eventTimes = new When(); eventTimes.setStartTime(startTime); calEntry.addTime(eventTimes); // Google Calendarサービスに接続 CalendarService calService = new CalendarService( "chaos-alldaySample-0.1"); calService.setUserCredentials(GOOGLE_ACCOUNT, GOOGLE_PASSWORD); // スケジュールを追加する calService.insert(postURL, calEntry); System.out.println("終日の予定:「" + calEntry.getTitle().getPlainText() + "」を追加しました。"); } /** * @param args */ public static void main(String[] args) { try { // インスタンス生成 AllDayEventCreator main = new AllDayEventCreator(); // 終日イベントを追加 main.insertAlldayData(); } catch (Exception e) { e.printStackTrace(); } } }
終日イベントはsetStartTimeに渡すDateTimeを作成するときに、
DateTime.parseDate("2009-11-27");
のように、parseDateを使い、時分秒を指定しないとできる(みたい)。