Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ In addition, display alarms can be created or cleared.
```yaml
my_calendar_name:
ical_url: https://source-calendar.com/my_calendar.ics # Source calendar
request_headers: # (optional) add headers send when requesting the ical url
- User-Agent: 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0'
api_key: myapikey # (optional) append ?key=myapikey to your URL to grant access
timezone: Europe/London # (optional) ensure all time comparisons are done in this TZ
rules:
Expand Down
7 changes: 4 additions & 3 deletions lib/ical_filter_proxy/calendar.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
module IcalFilterProxy
class Calendar
attr_accessor :ical_url, :api_key, :timezone, :filter_rules, :clear_existing_alarms, :alarm_triggers
attr_accessor :ical_url, :api_key, :timezone, :filter_rules, :clear_existing_alarms, :alarm_triggers, :request_headers

def initialize(ical_url, api_key, timezone = 'UTC')
def initialize(ical_url, api_key, timezone = 'UTC', request_headers = {})
self.ical_url = ical_url
self.api_key = api_key
self.timezone = timezone
self.request_headers = request_headers

self.filter_rules = []
self.clear_existing_alarms = false
Expand Down Expand Up @@ -58,7 +59,7 @@ def original_ics
end

def raw_original_ical
URI.open(ical_url).read
URI.open(ical_url, request_headers || {}).read
end
end
end
3 changes: 2 additions & 1 deletion lib/ical_filter_proxy/calendar_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ def build
def create_calendar
@calendar = Calendar.new(calendar_config["ical_url"],
calendar_config["api_key"],
calendar_config["timezone"])
calendar_config["timezone"],
calendar_config["request_headers"])
end

def add_rules
Expand Down