Download as Markdown llms.txt

module CalInvite

The main module for the CalInvite gem. This module provides functionality for generating calendar invites across different calendar providers.

@example Configure the gem CalInvite.configure do |config| config.timezone = ‘America/New_York’ end

@example Create and generate a calendar URL event = CalInvite::Event.new( title: “Team Meeting”, start_time: Time.now, end_time: Time.now + 3600 ) google_url = event.generate_calendar_url(:google)

lib/cal_invite/configuration.rb Configuration class for the CalInvite gem. Handles all configurable options: timezone and webhook secret.

@attr_reader [ActiveSupport::Cache::Store, nil] cache_store Deprecated, unused; removed in 0.4.0 @attr_reader [String] cache_prefix Deprecated, unused; removed in 0.4.0 @attr_reader [Integer] cache_expires_in Deprecated, unused; removed in 0.4.0 @attr_reader [String, nil] webhook_secret The secret key for webhook verification @attr_reader [String] timezone The default timezone for events

lib/cal_invite/event.rb Represents a calendar event with all its attributes and generation capabilities.

@attr_accessor [String] title The title of the event @attr_accessor [Time] start_time The start time of the event (defaults to the earliest multi_day_sessions start) @attr_accessor [Time] end_time The end time of the event (defaults to the latest multi_day_sessions end) @attr_accessor [String] description The description of the event @attr_accessor [String] location The location of the event @attr_accessor [String] url The URL associated with the event @attr_accessor [Array<String, Hash>] attendees Attendees as email strings, or hashes like { email:, name:, partstat: } for a display name and/or a specific RSVP status (:accepted, :declined, :tentative, :needs_action, :delegated) @attr_accessor [String] timezone The timezone for the event @attr_accessor [Boolean] show_attendees Whether to include attendees in calendar invites @attr_accessor [String] notes Additional notes for the event @attr_accessor [Array<Hash>] multi_day_sessions Sessions for multi-day events @attr_accessor [Boolean] all_day Whether this is an all-day event @attr_accessor [String, Hash] organizer The event organizer: an email string, or e.g. { name: “Jane Doe”, email: “jane@example.com” } @attr_accessor [String] uid Stable RFC 5545 UID identifying this event across its lifecycle @attr_accessor [Integer] sequence RFC 5545 SEQUENCE number; bump on every REQUEST/CANCEL update @attr_accessor [Array<Float>, Hash] geo Location coordinates, e.g. [37.4595, -122.1418] or { lat:, lng: } @attr_accessor [Array<Integer>] reminders Minutes-before-start values, one VALARM per entry @attr_accessor [Boolean] busy Whether this event should show as busy (true) or free (false) on free/busy lookups @attr_accessor [Symbol, String] visibility :public, :private, or :confidential @attr_accessor [String] rrule A raw RFC 5545 recurrence rule value, e.g. “FREQ=WEEKLY;COUNT=5” @attr_accessor [String] calendar_name Calendar-level display name (X-WR-CALNAME) @attr_accessor [Symbol, String] importance :low, :normal, or :high — maps to the standard PRIORITY property and, for Outlook specifically, X-MICROSOFT-CDO-IMPORTANCE @attr_accessor [Boolean] allow_counter Whether attendees may propose a new time. When set to false, emits X-MICROSOFT-DISALLOW-COUNTER — the one client-specific lever available for this; other clients don’t expose an equivalent control

lib/cal_invite/ical_timezone.rb

lib/cal_invite/providers.rb Namespace module for all calendar providers supported by CalInvite. Each provider implements the interface defined by BaseProvider.

@see CalInvite::Providers::BaseProvider

lib/cal_invite/providers/google.rb

lib/cal_invite/providers/ical.rb

lib/cal_invite/providers/ics.rb

lib/cal_invite/providers/ics_content.rb

lib/cal_invite/providers/office365.rb

lib/cal_invite/providers/outlook.rb

lib/cal_invite/providers/yahoo.rb