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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

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

Q&A

解決済

1回答

1482閲覧

予約のプログラムエラーについて

Rys_0556

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

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

0グッド

0クリップ

投稿2021/11/13 06:30

前提・実現したいこと

プログラミングはしたことがない、まったくの初心者です。
サロン予約システムの構築でGoogleフォーム、スプレッドシート、GASを連携したいと考え、いろんなサイトに載っている予約プログラムを試しましたが、うまく実現できていません。

発生している問題・エラーメッセージ

プログラミングはしたことがない、まったくの初心者です。
サロン予約システムの構築でGoogleフォーム、スプレッドシート、GASを連携したいと考え、いろんなサイトに載っている予約プログラムを試しましたが、うまく実現できていません。
「Exception: パラメータ(String)が CalendarApp.getDefaultCalendar のメソッドのシグネチャと一致しません。」このような感じでエラーが発生してしまいます。

該当のソースコード

function onFormSubmit(e) {
// フォームの回答を取得
let TimeStamp = e.values[0];// タイムスタンプ
let Name = e.values[1];// 名前
let Email = e.values[2];// メールアドレス
let Start_time = new Date(e.values[3]);// 予約の開始日時
let End_time = new Date(e.values[4]);// 予約の終了日時
let Remarks = e.values[5];// 備考
// カレンダーオブジェクトを取得
let Calendar = CalendarApp.getDefaultCalendar("3717p0tng5vj2jchl7ibjav6us@group.calendar.google.com");
// カレンダーのタイムゾーンを"Asia/Tokyo"に変更する
Calendar.setTimeZone("Asia/Tokyo");
// イベントがなければ実行する
if(!Calendar.getEvents(Start_time, End_time).length){
// カレンダーに日程を追加
Calendar.createEvent("予約:" + Name + " 様", Start_time, End_time,{description: Remarks});
// 自動返信メール件名
let Subject = Name + "様 ご予約完了";
// 自動返信メール本文
let Body = Name+"様\n" +
"\n" +
"予約を承りました。\n" +
"ありがとうございました。";
// メール送信
MailApp.sendEmail(Email,Subject,Body);
}else{
// 自動返信メール件名
let Subject = Name + "様 ご予約失敗";
// 自動返信メール本文
let Body = Name+"様 \n" +
"\n" +
"ご希望いただいた日程がすでに埋まっているためご予約を完了できませんでした。\n" +
"別の日程を再度入力いただきますようお願いいたします。\n" +
"ありがとうございました。";
// メール送信
MailApp.sendEmail(Email,Subject,Body);
}
}

試したこと

このプログラミングを実現させたいです。
何卒、ご教授の程よろしくお願い申し上げます。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

guest

回答1

0

ベストアンサー

GAS

1let Calendar = CalendarApp.getDefaultCalendar("3717p0tng5vj2jchl7ibjav6us@group.calendar.google.com");

これは引数の数と型が違っています。

GAS

1let Calendar = CalendarApp.getDefaultCalendar();

または、ID指定で取得するなら

GAS

1let Calendar = CalendarApp.getCalendarById("3717p0tng5vj2jchl7ibjav6us@group.calendar.google.com");

だと思います。IDが合っているのかはわかりませんが。

投稿2021/11/13 06:36

itagagaki

総合スコア8402

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

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

Rys_0556

2021/11/13 06:42

ご回答ありがとうございます! うまく作動できました。 誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問