Calendar Integration

Integrations

Calendar Integration

Automatically optimize your audio settings based on your calendar events. Jyv Desktop prepares your audio before meetings start.

5 min readUpdated December 2025

Overview

Jyv Desktop's calendar integration allows you to automatically activate audio profiles based on your schedule. No more scrambling to adjust audio settings right before an important meeting—Jyv Desktop prepares everything in advance.

Privacy First: Calendar data is processed locally on your computer. Event details never leave your device.

What Calendar Integration Does

  • Auto Profile Activation: Switch profiles based on meeting types
  • Pre-Meeting Prep: Activate settings 5-10 minutes before events
  • Smart Detection: Recognize meeting types from keywords and attendees
  • Notification Muting: Silence distractions during scheduled meetings
  • Post-Meeting Cleanup: Restore previous settings after events end
  • Free/Busy Awareness: Don't activate during focus time blocks

Setup & Connection

  1. Connect Your Calendar

    Open Jyv Desktop and navigate to Settings → Integrations → Calendar.

    Choose your calendar provider:

    • Google Calendar - Recommended for Google Workspace users
    • Microsoft Outlook/Office 365 - For Microsoft 365 users
    • Apple Calendar (iCloud) - For macOS users
    • CalDAV - For other calendar services
    You can connect multiple calendars. Jyv Desktop will monitor all of them for events.
  2. Grant Permissions

    You'll be prompted to grant permissions:

    • Read Events: Required to detect meetings
    • Read Event Details: Needed for keyword matching

    Note: Jyv Desktop requests read-only access. We never modify your calendar.

  3. Configure Sync Settings

    Calendar Sync Configuration
    {
      "calendarSync": {
        "enabled": true,
        "syncInterval": 15,          // Check for events every 15 minutes
        "lookAhead": 24,             // Look 24 hours ahead
        "includeAllDayEvents": false,
        "calendars": [
          {
            "name": "Work Calendar",
            "enabled": true,
            "priority": "high"
          },
          {
            "name": "Personal Calendar",
            "enabled": true,
            "priority": "medium"
          }
        ]
      }
    }
  4. Test the Connection

    Verify the integration is working:

    1. Create a test event in your calendar (10 minutes from now)
    2. In Jyv Desktop, go to Calendar tab
    3. Verify the event appears in the upcoming events list
    4. Check that the correct profile would be activated

Auto Profile Activation

Configure which audio profiles activate for different types of meetings.

Keyword-Based Matching

Jyv Desktop scans event titles and descriptions for keywords:

Keyword Matching Rules
{
  "keywordRules": [
    {
      "keywords": ["client", "customer", "demo", "presentation"],
      "profile": "Executive Calls",
      "priority": "high",
      "activateBefore": 600        // 10 minutes early
    },
    {
      "keywords": ["standup", "daily sync", "team meeting"],
      "profile": "Team Standup",
      "priority": "medium",
      "activateBefore": 120        // 2 minutes early
    },
    {
      "keywords": ["interview", "candidate"],
      "profile": "Interview",
      "priority": "high",
      "activateBefore": 300        // 5 minutes early
    },
    {
      "keywords": ["1:1", "one on one", "check-in"],
      "profile": "Casual Meeting",
      "priority": "low",
      "activateBefore": 60
    }
  ]
}

Keywords are case-insensitive and can appear anywhere in the event title or description.

Attendee-Based Matching

Activate profiles based on who's attending the meeting:

Attendee-Based Rules
{
  "attendeeRules": [
    {
      "attendees": ["ceo@company.com", "board@company.com"],
      "profile": "Executive Calls",
      "reason": "Executive attendees detected"
    },
    {
      "attendeeCount": {
        "min": 10
      },
      "profile": "Webinar/Presentation",
      "reason": "Large meeting (10+ attendees)"
    },
    {
      "attendeeCount": {
        "max": 2
      },
      "profile": "1:1 Meeting",
      "reason": "One-on-one conversation"
    }
  ]
}

Duration-Based Matching

Different audio settings for short vs. long meetings:

Duration-Based Rules
{
  "durationRules": [
    {
      "duration": {
        "max": 15
      },
      "profile": "Quick Sync",
      "muteNotifications": false
    },
    {
      "duration": {
        "min": 60
      },
      "profile": "Long Meeting",
      "muteNotifications": true,
      "enableBreakReminders": true
    },
    {
      "duration": {
        "min": 120
      },
      "profile": "Extended Session",
      "cpuMode": "efficiency"
    }
  ]
}

Calendar-Specific Rules

Apply different rules to work vs. personal calendars:

Calendar-Specific Configuration
{
  "calendarRules": [
    {
      "calendar": "Work Calendar",
      "defaultProfile": "Professional Meetings",
      "alwaysActivate": true
    },
    {
      "calendar": "Personal Calendar",
      "defaultProfile": "Casual Meeting",
      "onlyActivateForKeywords": true
    },
    {
      "calendar": "Podcast Recording",
      "defaultProfile": "Studio Recording",
      "alwaysActivate": true,
      "restoreAfter": true
    }
  ]
}

Smart Calendar Rules

Priority and Conflicts

When multiple rules match, Jyv Desktop uses priority to decide:

Priority Order (High to Low):

  1. Attendee-based rules (specific people)
  2. Keyword-based rules (meeting type)
  3. Duration-based rules (meeting length)
  4. Calendar default (fallback)

Back-to-Back Meetings

Handle consecutive meetings intelligently:

Back-to-Back Meeting Handling
{
  "backToBackMeetings": {
    "enabled": true,
    "switchProfiles": true,          // Change profiles between meetings
    "transitionTime": 30,            // 30 seconds to switch
    "maintainIfSameProfile": true,   // Don't restart if same profile
    "bufferTime": 120                // 2 min buffer for profile changes
  }
}

Focus Time Protection

Respect focus time and do-not-disturb blocks:

Focus Time Settings
{
  "focusTime": {
    "detectFromCalendar": true,
    "keywords": ["focus", "deep work", "writing time"],
    "profile": "Focus Mode",
    "muteAllNotifications": true,
    "pauseAutomation": false
  }
}

After-Hours Handling

Apply different rules outside work hours:

After-Hours Configuration
{
  "afterHours": {
    "workHours": {
      "start": "09:00",
      "end": "18:00",
      "timezone": "America/New_York"
    },
    "afterHoursProfile": "Casual Meeting",
    "requireExplicitActivation": true,
    "notifyBefore": 600              // 10 min warning for after-hours meetings
  }
}

Meeting Preparation

Configure what happens before, during, and after meetings.

Pre-Meeting Actions

  • Activate Profile: Switch to meeting-specific audio settings
  • Mute Notifications: Silence system sounds and app notifications
  • Reduce App Volumes: Lower music, games, and background apps
  • Test Audio: Run automatic audio check (optional)
  • Show Reminder: Display desktop notification that profile is active

During Meeting

  • Maintain Profile: Keep meeting settings active
  • Monitor Audio Quality: Alert if issues detected
  • Auto-Ducking: Reduce other apps when you speak
  • Break Reminders: Notify for long meetings (60+ min)

Post-Meeting Actions

Post-Meeting Configuration
{
  "postMeeting": {
    "restorePreviousProfile": true,
    "restoreDelay": 60,              // Wait 1 minute after meeting ends
    "unmuteNotifications": true,
    "restoreAppVolumes": true,
    "showSummary": false             // Show audio quality summary
  }
}

Example Configurations

Remote Worker Setup

Optimized for someone working from home with frequent meetings:

Remote Worker Config
{
  "profile": "Remote Worker",
  "calendars": ["Work Calendar"],
  "workHours": "09:00-18:00",
  "defaultProfile": "Professional Meetings",
  "keywordRules": [
    {"keywords": ["client", "demo"], "profile": "Executive Calls"},
    {"keywords": ["standup"], "profile": "Team Sync"},
    {"keywords": ["focus"], "profile": "Focus Mode"}
  ],
  "autoMuteNotifications": true,
  "activateBefore": 300,
  "restoreAfter": true
}

Executive/Manager Setup

For someone with many high-stakes meetings:

Executive Config
{
  "profile": "Executive",
  "calendars": ["Executive Calendar", "Team Calendar"],
  "defaultProfile": "Executive Calls",
  "attendeeRules": [
    {"attendees": ["board@"], "profile": "Board Meeting"},
    {"attendeeCount": {"min": 20}, "profile": "All-Hands"}
  ],
  "alwaysMuteNotifications": true,
  "activateBefore": 600,
  "showPreMeetingReminder": true,
  "audioQualitySummary": true
}

Content Creator Setup

For podcasters, streamers, and video creators:

Creator Config
{
  "profile": "Content Creator",
  "calendars": ["Recording Schedule", "Guest Calendar"],
  "keywordRules": [
    {"keywords": ["podcast"], "profile": "Podcast Recording"},
    {"keywords": ["stream"], "profile": "Live Stream"},
    {"keywords": ["interview"], "profile": "Guest Interview"}
  ],
  "activateBefore": 900,             // 15 minutes prep time
  "runAudioTest": true,
  "muteAllApps": true,
  "cpuMode": "quality"
}

Hybrid Worker Setup

Different settings for office vs. home:

Hybrid Config
{
  "profile": "Hybrid Worker",
  "locationRules": [
    {
      "location": "home",
      "defaultProfile": "Home Office",
      "noiseSuppression": "maximum"
    },
    {
      "location": "office",
      "defaultProfile": "Office Meeting Room",
      "noiseSuppression": "medium"
    }
  ],
  "detectLocationFrom": "calendar",     // Look for "Location:" in events
  "autoSwitch": true
}

Troubleshooting

Calendar Events Not Appearing

Solution:

  1. Check Connection

    Go to Settings → Integrations → Calendar and verify connection status shows "Connected".

  2. Re-authorize

    Click Disconnect then Reconnect to refresh permissions.

  3. Verify Calendar Selection

    Ensure the correct calendars are checked in the calendar list.

  4. Check Sync Interval

    Lower the sync interval from 15 minutes to 5 minutes for more frequent updates.

Wrong Profile Activating

Cause: Keyword or attendee matching not configured correctly

Solution:

  • Review your keyword rules and ensure they're specific enough
  • Check rule priority—more specific rules should have higher priority
  • Look at Jyv Desktop logs to see which rule triggered
  • Add negative keywords to exclude certain event types

Profile Not Activating Before Meeting

Solution:

  • Verify "Auto-activate profiles" is enabled in calendar settings
  • Check that the event matches at least one rule (keyword, attendee, or default)
  • Ensure the activateBefore time is reasonable (5-10 minutes recommended)
  • Verify the event hasn't already started (profiles don't activate for past events)

Profiles Not Restoring After Meetings

Solution:

  • Enable "Restore previous profile after meeting" in settings
  • Check that you don't have back-to-back meetings (profile may stay active)
  • Adjust the restoreDelay if meetings often run over time
  • Manually switch profiles if you need immediate control
For more help with calendar integration, see our Help Center or contact support.

Need more help?

Can't find what you're looking for? Our support team is here to help.