カレンダーやイベントの管理は、特に Googleカレンダーや Microsoft 365 のような一般的なサービスと統合する場合、多くのアプリケーションにとって非常に重要です。4D 20 R9 では、新しい 4D NetKit コマンドを使って、これらのプラットフォームからカレンダーやイベントを簡単に取得し、アクセスすることができるようになりました。スケジュールの同期や、カレンダーに基づいた機能の構築、またはイベントの詳細の取得するだけの場合でも、これらのコマンドにより、Google や Microsoft 365 のサービスとのシームレスな統合が可能になります。
以下の例題では、Googleカレンダーまたは Microsoft 365 アカウント内の全カレンダーのリストと、リスト先頭のカレンダーに関連付けられているすべてのイベントを取得します。
アカウント接続
いつものように、Google や Microsoft API を使う前に、OAuth2Provider クラスを使って OAuth 2.0 接続 オブジェクトを作成します:
Google API の場合
var $oAuth2 : cs.NetKit.OAuth2Provider
var $google : cs.NetKit.Google
$oAuth2:=cs.NetKit.OAuth2Provider.new($googleCredentials)
$google:=cs.NetKit.Google.new($oAuth2)
Microsoft API の場合
var $oAuth2: cs.NetKit.OAuth2Provider
var $office365 : cs.NetKit.Office365
$oAuth2:=cs.NetKit.OAuth2Provider.new($microsoftCredentials)
$office365:=cs.NetKit.Office365.new($oAuth2)
カレンダーリストの取得
特定のカレンダーのイベントを取得する前に、まずはカレンダーID を取得する必要があります。これには、.calendar.getCalendars() 関数を使用して、ログインアカウントにリンクされているすべてのカレンダーを取得します。どちらの API もカレンダーリストを取得するメソッドを提供していますが、パラメーターや返されるオブジェクトは Google と Microsoft で異なる場合があります。
Google API の場合
// すべてのカレンダーを取得します
var $calendars:=$google.calendar.getCalendars()
// この例題では取得したリストの先頭のカレンダーを使用します
var $myCaldendar:=$calendars.calendars[0]
Microsoft API の場合
// すべてのカレンダーを取得します
var $calendars:=$office365.calendar.getCalendars()
// この例題では取得したリストの先頭のカレンダーを使用します
var $myCaldendar:=$calendars.calendars[0]

イベントリストの取得
カレンダーID を取得したあとは、calendar.getEvents() 関数を使用して、そのカレンダーにリンクされているイベントを取得することができます。どちらの API もイベントリストを取得するメソッドを提供していますが、パラメーターや返されるオブジェクトは Google と Microsoft で異なる可能性があります。
Google API の場合
// 使用する日付の範囲を計算します
var $startDate:={date:Current date(); time:?00:00:00?}
var $endDate:={date:Current date()+7); time:?23:59:59?}
// 選択されているカレンダーのイベントをすべて取得します
var $events:=$google.calendar.getEvents({calendarId: $myCalendar.id; top: 100; singleEvents: True; startDateTime: $startDate; endDateTime: $endDate})
Microsoft API の場合
// 使用する日付の範囲を計算します
var $startDate:={date:Current date(); time:?00:00:00?}
var $endDate:={date:Current date()+7); time:?23:59:59?}
// 選択されているカレンダーのイベントをすべて取得します
var $events:=$office365.calendar.getEvents({calendarId: $myCalendar.id; top: 100; startDateTime: $startDate; endDateTime: $endDate})

まとめ
4D 20 R9 の新しい 4D NetKit コマンドでカレンダーやイベントを管理するのは簡単です。Googleカレンダーでも Microsoft 365 でも、2つのプラットフォームの動作の違いを考慮しながら、カレンダーやイベントを素早く取得することができます。詳しくは、4D NetKit のドキュメントをご覧ください。
そして、これはほんの始まりに過ぎません。カレンダーの統合をさらに強力にするために、もっと多くのコマンドや機能が近々登場します!
