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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

2541閲覧

GooglecalendarAPIでイベント変更を実行する方法がわからない

yo-takata

総合スコア30

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2019/06/26 01:58

編集2019/06/26 04:18

Calendar API を使ってイベントを変更する方法を教えてほしい。
以下コードを作ってみたのですがうまく更新できなく何がいけないのがわからず、、、行き詰まっています。

function execute() { var calendarId = "calendarId"; var eventId = '4mki6emij9sabvdu5d9nebb2ke' var start = new Date('2019/06/27 09:00:00') var end = new Date('2019/06/27 10:00:00') var params = { // イベントのタイトル 'summary': "更新", 'start': { // 開始日・時刻 dateTime: start.toISOString() }, 'end': { // 終了日・時刻 dateTime: end.toISOString() }, // 場所の指定 'location': "E会議室に変更", // イベントの説明 'description': "変更したので確認してください。" }; var request = Calendar.Events.update({ calendarId: calendarId, eventId: eventId, resource: params }) }

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

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

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

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

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

guest

回答2

0

javascript

1CalendarApp.getCalendarById(calendarId).getEventById(eventId).setTime(start, end).setLocation("E会議室に変更").setDescription("変更したので確認してください。");

こんな感じで簡単にグーグルサービスを利用できるのがgasのメリットだと思うので。

投稿2019/06/30 16:25

papinianus

総合スコア12705

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

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

0

ベストアンサー

次のような変更はいかがでしょうか。

From

javascript

1var request = Calendar.Events.update({ 2 calendarId: calendarId, 3 eventId: eventId, 4 resource: params 5})

To

javascript

1var request = Calendar.Events.update(params, calendarId, eventId);

注意点

  • もしもスクリプトエディタをお使いのようですと、Calendar.Events.updateと入力すると、次のように自動補完されますので分かりやすいかと思われます。
    • Calendar.Events.update(resource, calendarId, eventId)
  • var request = について、今の場合、requestよりもresopnseあるいはresultの方が分かりやすいかもしれません。

参考

tagではJavascriptとありますが、スクリプトを見ましてAdvanced Google servicesを使用したGoogle Apps Scriptではないかと判断したのですが、もし勘違いをしているようですとお教え頂けますと修正させていただきます。

投稿2019/06/26 02:54

編集2019/06/26 03:00
kisojin

総合スコア899

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

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

yo-takata

2019/06/26 04:06

ご回答していただきありがとうございます。 GASのエディタから実行しています。 実行してみると「次のエラーが発生し、calendar.events.update の呼び出しに失敗しました」というエラーが出てしまいますが原因わかりますでしょうか。
papinianus

2019/06/26 04:53

次のエラーといっているので、その次のメッセージを書いてほしいです
kisojin

2019/06/26 05:25 編集

ご返事ありがとうございます。エラーが発生するとのことでご迷惑をお掛けし、大変申し訳ありません。papinianus様の仰るように具体的なエラーの内容をご提示いただけないでしょうか。また、ご質問には「以下コードを作ってみたのですがうまく更新できなく」とあり、「うまく更新できなく」の詳細な内容も記載されておりますとより丁寧な質問になるかと思われます。 蛇足ですと恐縮なのですが、ご使用されているスクリプトはAdvanced Google Servicesを使用されていますので、スクリプトエディタ上で「リソース」 -> 「Googleの拡張サービス」 -> 「Calendar API」が有効になっているかどうかを念のため再度ご確認頂けないでしょうか。既に設定されているようですと申し訳ありません。
yo-takata

2019/06/26 05:41

[ [次のエラーが発生し、calendar.events.update の呼び出しに失敗しました: Precondition Failed(行 193、ファイル「コード」)] var request = Calendar.Events.update(params, calendarId, eventId); この部分で止まってしまい変更ができない状態です。 calendar APIについては有効しております。
kisojin

2019/06/26 06:35

エラーの内容を追記していただき有難うございます。また、Calendar APIは有効とのこと、確認しました。残念ながらそのエラーは再現できませんでした。こちらではご提示されているスクリプトは問題なく動作しています。エラーの再現ができない理由はこちらの技量不足です。申し訳ありません。ただ、Drive APIを使用している際にそのようなエラーが出た場合は、ヘッダにIf-Match: "*"を追加すると良いのですが、今の場合、Advanced Google Servicesを使用していますので、これは解決策にはらなないと思われます。そこで、エラーを除去することができるかどうか分かりませんが、次の内容を試してみてください。 1.ご自身のカレンダーへイベントを作成し、そのイベントが更新できるかどうか確認する。 2. Calendar.Events.update(params, calendarId, eventId)の代わりにCalendar.Events.patch(params, calendarId, eventId)を使ってみる。
yo-takata

2019/06/26 07:41

Calendar.Events.patch(params, calendarId, eventId)で更新できました!!誠にありがとうございます!!
kisojin

2019/06/30 01:18

ご返事ありがとうございます。無事解決したとのことで安心しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問