Microsoft 365 Outlook: 予定表(カレンダ)イベント作成 (Microsoft 365 Outlook: Calendar Event Insert)
Outlook 予定表(カレンダ)にイベント(予定)を作成します。参加者は最大3名まで指定できます。
Configs
  • A: OAuth2通信許可設定名 (←[OAuth 2.0 設定]) *
  • B: イベント名が格納されている文字型データを選択してください *
  • C: イベント詳細説明が格納されている文字型データを選択してください *
  • D: イベント実施場所が格納されている文字型データを選択してください *
  • E: イベントの開始日時が格納されている日時型データを選択してください *
  • F: イベントの終了日時が格納されている日時型データを選択してください *
  • G: イベントの日時のタイムゾーンをセットしてください *
  • H: イベント参加者1のメールアドレスが格納されている文字型データを選択してください *
  • I: イベント参加者2のメールアドレスが格納されている文字型データを選択してください
  • J: イベント参加者3のメールアドレスが格納されている文字型データを選択してください
  • X: 通信ログが格納される文字列型データを選択してください (更新)
Script (click to open)
// Insert Outlook Calendar Event via Microsoft Graph API v1.0 (ver. 20201028)
// (c) 2020, Questetra, Inc. (the MIT License)

//// == 工程コンフィグの参照 / Config Retrieving ==
const oauth2  = configs.get( "conf_OAuth2" ) + "";

const subject   = engine.findDataByNumber( configs.get( "SelectConfB" ) ) + "";
const content   = engine.findDataByNumber( configs.get( "SelectConfC" ) ) + "";
const location  = engine.findDataByNumber( configs.get( "SelectConfD" ) ) + "";
const startDate = engine.findDataByNumber( configs.get( "SelectConfE" ) ) + "";
const endDate   = engine.findDataByNumber( configs.get( "SelectConfF" ) ) + "";
const timeZone  = configs.get( "StrConfG" ) + "";

const atendee1  = engine.findDataByNumber( configs.get( "SelectConfH" ) ) + "";
//未指定の場合を考慮
let atendee2 = "";
if (configs.get( "SelectConfI" )) {
  atendee2 = engine.findDataByNumber( configs.get( "SelectConfI" ) ) + "";
}
let atendee3 = "";
if (configs.get( "SelectConfJ" )) {
  atendee3 = engine.findDataByNumber( configs.get( "SelectConfJ" ) ) + "";
}

const dataIdX = configs.get( "conf_DataIdX" );


//// == 演算 / Calculating ==
var requestObj = {};
  requestObj.subject = subject;
//未指定の場合を考慮
  if ( content !== "null" ) {
    requestObj.body = {};
    requestObj.body.content = content;
  }
  requestObj.start = {};
  requestObj.start.dateTime = startDate;
  requestObj.start.timeZone = timeZone;
  requestObj.end = {};
  requestObj.end.dateTime = endDate;
  requestObj.end.timeZone = timeZone;
//未指定の場合を考慮
  if ( location !== "null" ) {
    requestObj.location = {};
    requestObj.location.displayName = location;
  }
  requestObj.attendees = [];
  requestObj.attendees[0] = {};
  requestObj.attendees[0].emailAddress = {};
  requestObj.attendees[0].emailAddress.address = atendee1;
//未指定の場合を考慮
  if ( atendee2 !== "null" ) {
    requestObj.attendees[1] = {};
    requestObj.attendees[1].emailAddress = {};
    requestObj.attendees[1].emailAddress.address = atendee2;
  }
  if ( atendee3 !== "null" ) {
    requestObj.attendees[2] = {};
    requestObj.attendees[2].emailAddress = {};
    requestObj.attendees[2].emailAddress.address = atendee3;
  }

var accessLog = "";
var token = httpClient.getOAuth2Token( oauth2 );
var uri = "https://graph.microsoft.com/v1.0/me/events";
var response = httpClient.begin()
  .bearer( token )
  .body( JSON.stringify( requestObj ), "application/json" )
  .post( uri );
accessLog += "---POST request--- " + response.getStatusCode() + "\n";
accessLog += response.getResponseAsString() + "\n";

//var statusCode = response.getStatusCode() + "";
//if( statusCode == "200" ){
//}

//// == ワークフローデータへの代入 / Data Updating ==
if( dataIdX !== "" ){
  engine.setDataByNumber( dataIdX, accessLog );
}

Download



Addonファイルのインポートは Professional もしくは Enterprise でのみご利用いただけます

Notes

  • OAuth2 設定でスコープには「https://graph.microsoft.com/calendars.readwrite offline_access」を指定してください

Capture

See also

%d人のブロガーが「いいね」をつけました。