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

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

ただいまの
回答率

90.11%

自分以外のGoogleカレンダーへの予定追加

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 826

genasona

score 6

前提・実現したいこと

業務のシフトの種類が約20種あり、それぞれにシフト番号が振られています。
例えば、#001 : 10:00~18:30、#002:12:30~21:00 …といった感じです。
ただし、5日先の分までしかシフトは決定されません。
朝、会社に行くと5日先のシフトが判明する(壁に貼り出されている)、という仕組みです。
皆はめいめいそれを見て、自分のスケジュール帳に書きこんだり、スマホのカレンダーに打ち込む、という作業をしています。

そこで、日付とシフト番号を選択するだけで、自身のGoogleカレンダーに新規予定として追加するシステムを作ってみました。

Google Apps Scriptを活用し、フォーム+スプレッドシート(シフト一覧表)から、自分のGoogleカレンダーに予定を追加することは実現できました。
このシステムを他の人にもおすそわけ、と思ったのですが、うまくいっていません。

発生している問題・試したこと

フォームの「メールアドレスを収集する」をオンにし、他の人がフォームを開いて送信した時、入手したアドレスから
CalendarApp.getCalendarById(アドレス)でその人のカレンダーを取得できれば、と思いました。
しかし他人のカレンダーを取得できません(返り値がnull)。

要は、Googleカレンダーを私と共有しないとダメ、と理解しました。
しかし、すべての同僚に「私とカレンダーを共有して下さい」とお願いするのも、プライバシーの面や手間という点で、
受け入れられそうにありません。

そもそも、このシステムを実現するためには、GASは適していないのかな?とも考えました。

お聞きしたいこと

質問としては、以下2点となります。

①このようなシステムにGASが適していないとすれば、他のどのような方法がより適していると考えられるでしょうか。
②作成済のGASを活用できるとすれば、どのような方法で実現できるでしょうか。

初心者ゆえの漠然とした質問で誠に恐縮ですが、皆様のお知恵を拝借したく。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • papinianus

    2019/02/12 12:11 編集

    G Suite使ってますか?←使ってないですね。多分

    キャンセル

  • genasona

    2019/02/12 12:13

    いいえ。

    キャンセル

回答 1

checkベストアンサー

0

こういうのはコンサルタントに相談したほうがいいのではないでしょうか。
何ができるかは、御社の状況に大いに左右されるように思います。例えば「壁にはらない、最初から電子データにする」とかいう合理的な解決は取れないように思います。

従って、2.について、憶測を重ねた回答になりますが、
質問者様がオーナーである(従って書き込み権が付与できる)、シフトのみを含むカレンダーを新規に作成し、それを(便利になりたい人は)各自のカレンダーで「カレンダー追加」する
既存のスクリプトは、人を表現する情報と日付とシフト番号を入力するスタイルにして、例えばスクリプトで書き込むときに、人ごとに色をかえるなどをする
→要は、質問者様が皆のシフトを入れてあげて共有してあげるカレンダーを新設する、って感じです。

他には
メールで送信する
を考えました。このとき単にメールにかくのではなく、添付として.icsというファイルフォーマットにすれば、おそらく受信者に予定追加するかの選択が出てくると思います。ただ、カレンダーをics(ical形式)にするのは自力でやるしかなさそうで、そこそこ大変かなと思いました(なので検証してません)。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/15 17:04

    遅くなりまして恐縮ですが、ご回答ありがとうございました。

    キャンセル

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

  • ただいまの回答率 90.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる