banner
0xMech

0xMech

Focus on various AI application sharing, Blockchain learners, web3 new leeks
twitter

GitHubでカレンダーのサブスクリプションをホストします。

イントロ#

最近、就職活動のシーズンに直面しており、多くの企業がキャンパスでプレゼンテーションを行っていますが、すべてのプレゼンテーション企業が自分が行きたい企業ではありません。毎回、行きたい企業を確認するために学校の公式ウェブサイトを再度開く必要があり、少し手間です。そのため、GitHub でカレンダーの購読をホストする方法を考えました。官公庁のウェブサイトをチェックするたびに、GitHub に行きたい求人の情報を追加することで、カレンダーソフトウェアで自動的に更新され、求職中の友人と共有することもできます。重複した開封や確認を避けることができます。

カレンダーの購読#

URL の購読機能は、ほとんどのカレンダーソフトウェアでサポートされていますが、一部のソフトウェア(Huawei カレンダーなど)ではサポートされていません。ただし、サードパーティのカレンダーソフトウェアをダウンロードすることで実現することもできます。リンク内のコンテンツが変更されると、カレンダーソフトウェアも自動的に更新されるため、私は時々公式ウェブサイトをチェックして、学校でプレゼンテーションを行う興味のある企業があるかどうかを確認し、それを GitHub にホストするだけで、この共有リンクを使用しているすべての友人が新しい企業の情報を見ることができます。

GitHub でのホスティング#

以下は実際の手順です。

  1. リポジトリの作成:GitHub で新しいリポジトリを作成し、「Repository name」に好きな名前を入力します(できれば英語の名前が良いです)。また、「Description」に説明を入力するか、空白のままにしておくこともできます。最後に、「Create Repository」をクリックします。

リポジトリの作成

  1. README ファイルの作成:自分で書くこともできますが、ここでは直接カレンダーファイルを作成してデモンストレーションします。

ファイルの作成
4. 以下の形式のファイルを「Edit」ボックスに入力し、「Name your file」にファイル名を入力します。ファイル名は「ics」で終わる必要があります(例:「my_calendar.ics」)。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp//iCalendar 2.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:My Calendar

BEGIN:VEVENT
UID:12345
DTSTAMP:20230901T120000Z
DTSTART:20230910T100000Z
DTEND:20230910T120000Z
SUMMARY:会議1
DESCRIPTION:プロジェクトの進捗についてのディスカッション
LOCATION:会議室A
END:VEVENT

END:VCALENDAR

  1. コードの説明:
  • BEGIN:VCALENDAREND:VCALENDARタグは、iCalendar ファイル全体の開始と終了を示します。
  • VERSIONは、iCalendar 仕様のバージョンを指定します。
  • PRODIDは、iCalendar ファイルを生成したアプリケーションを識別します。
  • CALSCALEは、日付のスケールを指定します。通常は GREGORIAN です。
  • METHODは、カレンダーデータの処理方法を指定します。通常は PUBLISH です。
  • X-WR-CALNAMEは、カレンダーの名前です。

ここでは、カレンダー名を変更するだけです。

  1. BEGIN:VEVENTEND:VEVENTの間には、イベントの定義があります。イベントには以下のプロパティが含まれます:
  • UIDは、イベントの一意の識別子です。
  • DTSTAMPは、イベントの作成または最終変更のタイムスタンプです。
  • DTSTARTは、イベントの開始時間です。
  • DTENDは、イベントの終了時間です。
  • SUMMARYは、イベントの名前またはタイトルです。
  • DESCRIPTIONは、イベントの説明です。
  • LOCATIONは、イベントの場所です。

入力

この例では、1 つのイベントのみが含まれていますが、必要に応じてさらにイベントを追加することができます。各イベントには、BEGIN:VEVENTからEND:VEVENTまでのブロックを繰り返し、各イベントに適切なプロパティを設定するだけです。各イベントには 1 つのUIDのみが必要です。

上級#

上記のファイルは正常に機能しますが、最適化する必要がある 2 つの問題があります。

  1. タイムゾーン:上記のコードでは、デフォルトで「UTC」が協定世界時として設定されており、私たちがいる東 8 区とは 8 時間の時差があります。したがって、時間を東 8 区に変更する必要があります。次のように変更します。
DTSTART;TZID=Asia/Singapore:20230910T180000  # Asia/Singaporeタイムゾーンを使用
DTEND;TZID=Asia/Singapore:20230910T200000    # Asia/Singaporeタイムゾーンを使用
  1. リンクと画像の挿入:一部のカレンダーソフトウェアでは、リンクやカバーの挿入が可能です。この機能を利用して、企業の公式ウェブサイトや応募先のリンク、および企業のプロモーション画像を挿入することができます。次のように変更します。
DESCRIPTION:<html><img src="https://example.com/image.jpg" alt="Event Image"><br>プロジェクトの進捗についてのディスカッション</html> \n詳細はこちら:<a href="https://example.com">詳細へのリンク</a>

srcの後には画像のリンクがあり、hrefの後には挿入したいリンクがあります。

インポート#

ファイルの編集が完了したら、「Commit changes」をクリックし、最後にリポジトリのソースコードを開き、上部のリンクをコピーし、「blob」を「raw」に変更してカレンダーソフトウェアにインポートします。コンテンツを追加する場合は、右側の編集ボタンをクリックして編集できます。

リンク

カレンダーをインポートするには、Google カレンダーを例に取りますが、他のカレンダーソフトウェアでも同様です。カレンダーを開き、設定を開き、カレンダーを追加し、URL で購読し、最後にリンクを入力します。

インポート

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。