質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

3488閲覧

Google Calendar APIを使った繰り返しイベントの登録

ShinichiMukai

総合スコア18

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/04/22 23:01

IOSプログラミング
swiftでGoogle Calendar APIを使った繰り返しイベントの登録でどうしてもエラーが出てしまいます。

lang

1 func writeEvent(){ 2 let event : GTLCalendarEvent = GTLCalendarEvent() 3 event.summary = "繰り返し登録したいイベント" 4 event.descriptionProperty = "description property sample" 5 let st : GTLDateTime = GTLDateTime(date: std, timeZone: NSTimeZone.systemTimeZone()) 6 let starttime : GTLCalendarEventDateTime = GTLCalendarEventDateTime() 7 starttime.dateTime = st 8 event.start = starttime 9 let etd:NSDate = NSDate(timeInterval: 3600*5, sinceDate: std) 10 let et : GTLDateTime = GTLDateTime(date: etd, timeZone: NSTimeZone.systemTimeZone()) 11 let endTime : GTLCalendarEventDateTime = GTLCalendarEventDateTime() 12 endTime.dateTime = et 13 event.end = endTime 14 //ここで繰り返しを指定する 15 event.recurrence = [] 16 event.recurrence.append("RRULE:FREQ=DAILY") 17 18 let query : GTLQueryCalendar = GTLQueryCalendar.queryForEventsInsertWithObject(event, calendarId: "sample@gmail.com") 19 service.executeQuery( 20 query, 21 delegate: self, 22 didFinishSelector: #selector(GTLViewController.displayResultWithTicket2(_:finishedWithObject:error:)) 23 ) 24 } 25

実行すると、以下のようなエラーが出ます。
タイムゾーンの指定がおかしいというようなメッセージのようなのですが、たのタイムゾーンを指定しても同様にエラーが出ます。

Optional(Error Domain=com.google.GTLJSONRPCErrorDomain Code=400 "(Missing time zone definition for start time.)" UserInfo={error=Missing time zone definition for start time., NSLocalizedFailureReason=(Missing time zone definition for start time.), GTLStructuredError=GTLErrorObject 0x12e5994c0: {message:"Missing time zone definition for start time." data:[1] code:400}})

どなたか解決策をお持ちであればご教示願います。また、有効な情報源がありましたら、ご提示いただけると助かります。

lang

1 //ここで繰り返しを指定する 2 event.recurrence = [] 3 event.recurrence.append("RRULE:FREQ=DAILY") 4 } 5

上の部分をコメントアウトすると、正常に登録ができています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己レスです。
マニュアルの記載をよく読むと

For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.

と記載がありました。この部分を読んでいませんでした。
繰り返しイベントの場合には、

swift

1starttime.timeZone = "Asia/Tokyo" 2... 3endtime.timeZone = "Asia/Tokyo" 4...

設定を行うと、繰り返しイベントが無事登録できました。

※繰り返しイベントでない、通常のイベントの場合、この設定値はオプションとなっているため、登録されていないくても登録できるようです。

投稿2016/04/23 02:00

ShinichiMukai

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問