2017-04-24 31 views
1

複数の終日の予定をカレンダーに追加できるユーザーとGoogleのシートを共有したいと思います。 googleはそれを行うための機能を提供していないので、私はさまざまな回避策に疲れている。 createEvent(title、startTime、endTime)は、それが使用してdatetimeを表示するので完璧ではありません。 createEventFromDescription(description)は説明などのメタデータを許可しないため、高度なカレンダーサービスを使用しようとしました。 高度なカレンダーサービスを有効にした後は、App Scriptの組み込みカレンダーサービスを使用しているかのようにGoogleカレンダーAPIを使用できるはずです。シートスクリプトエディタでこの組み込み関数を実行すると、シートのコピーを作成して他の人に電子メールで送信することができ、関数も実行できます。
var event = CalendarApp.getDefaultCalendar().createEvent('Apollo 11 Landing', new Date('July 20, 1969 20:00:00 UTC'), new Date('July 20, 1969 21:00:00 UTC'), {location: 'The Moon'}); Logger.log('Event ID: ' + event.getId());
高度なカレンダーサービスと基本的にはその例である以下のコードを使用してスクリプトエディタでその関数を実行することができますが、シートのコピーを作成して他の人にメールで送信しようとするとエラーが発生します "Project(number)is not API呼び出しには使用できません。誰でも私が間違っていることを見ることができます。Google Appsスクリプト - 高度なカレンダーサービス

function createEvent() { 
var calendarId = 'primary'; 

var event = { 
summary: 'Lunch Meeting', 
location: 'The Deli', 
description: 'To discuss our plans for the presentation next week.', 
start: { 
    date: "2017-05-21" 
}, 
end: { 
    date: "2017-05-24" 
}, 
attendees: [ 
    {email: '[email protected]'}, 
    {email: '[email protected]'} 
], 
// Red background. Use Calendar.Colors.get() for the full list. 
colorId: 11 
}; 
event = Calendar.Events.insert(event, calendarId); 
Logger.log('Event ID: ' + event.getId()); 
} 

答えて

0

なぜAPI呼び出しエラーが発生しているのかわかりません。あなたがそうのような記述を追加することができますので、しかし、createEventFromDescriptionは、イベントオブジェクトを返します。

var event = createEventFromDescription("Some event 4/25 - 4/30"); 
event.setDescription("This is a description."); 

CalendarAppは(たとえば、あなたがイベントの色を設定することはできません)アドバンストカレンダサービスほど堅牢ではありませんが、それはあなたの目的に合うかもしれません。

+0

私はそれを感謝しました。私はそれを使用する場合は、高度なカレンダーサービスを働かせてください – slanton

+0

私の質問は本当に..あなたは単純にシートのコピーを作成して高度なカレンダーサービスを使用するスクリプトを持っているシートを共有することができますね。 – slanton

+0

答えはイエスですが、あなたが共有している人もカレンダーAPIを有効にする必要があります – slanton

関連する問題